OSDN Git Service

2004-05-28 Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-05-28 Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
2
3         * prefix.c (lookup_key): Cast buffer to LPBYTE.
4
5 2004-06-30  Per Bothner  <per@bothner.com>
6
7         Conditionally compile support for --enable-mapped_location.
8         * input.h:  #include line-map.h for source_location typedef.
9         (BUILTINS_LOCATION, UNKNOWN_LOCATION, expand_location,
10         LOCATION_FILE, LOCATION_LINE):  New macros and functions.
11         (expanded_location, source_locus):  New typedefs.
12         (push_srcloc):  Change parameter list if USE_MAPPED_LOCATION.
13         * rtl.def (NOTE, ASM_OPERANDS):  Modify specifcation, if
14         USE_MAPPED_LOCATION.
15         * rtl.h (NOTE_DELETED_LABEL_NAME):  New macro.
16         (NOTE_SOURCE_LOCATION, NOTE_EXPNDED_LOCATION, SET_INSN_DELETED):
17         New conditional macros.
18         (ASM_OPERANDS_SOURCE_FILE, ASM_OPERANDS_SOURCE_LINE):  Replace
19         by ASM_OPERANDS_SOURCE_LOCATION if USE_MAPPED_LOCATION.
20         * tree.h (EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_HAS_LOCATION,
21         EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME, EXPR_LINENO,
22         DECL_IS_BUILTIN):  New macros, most depending on USE_MAPPED__LOCATION.
23         (tree_exp):  Change type of locus to use new source_locus typedef.
24         * tree.c (build1_stat):  Use SET_EXPR_LOCATION.
25         (annotate_with_locus, annotate_with_file_line):  Conditionalize.
26         (expand_location):  New function.
27         * toplev.c (unknown_location):  New static, when USE_MAPPED_LOCATION.
28         (push_srcloc, pop_loc):  Adjust parameter handling.
29         (process_options):  Don't set input_filename by itself.
30         (lang_dependent_init):  Save, set input_location to <built-in>.
31         (warn_deprecated_use):  Use expand_location.
32
33         * basic-block.h (struct edge_def):  Use new source_locus typedef.
34         * c-common.c (fname_decl):  Update save/clear/store of input_location.
35         (c_do_switch_warnings):  Update for USE_MAPPED_LOCATION case.
36         * c-decl.c:  Likewise.
37         * c-dump.c (dump_stmt):  Likewise.
38         * c-gimplify.c (c-gimplify.c):  Generalize using SET_EXPR_LOCATION.
39         * c-lex.c (cb_line_change):  If USE_MAPPED_LOCATION use token's src_loc
40         to set input_location direction, rather than using linemap_lookup.
41         (fe_file_change, cb_def_pragma):  Again use source_location directly.
42         * c-opts.c (saved_lineno):  Remove static variable.
43         (c_common_post_options, c_common_init):  Don't bothner to save,
44         clear and restore input_Location - now handled by lang_dependent_init.
45         * function.c (init_function_start):  Use new DECL_IS_BUILTIN macro.
46         * xcoffout.c (xcoff_assign_fundamental_type_number):  Likewise.
47         * tree-mudflap.c (mf_file_function_line_tree):  Take a location_t
48         rather than a pointer to one.  Use expand_location.
49         (mf_varname_tree):  Use expand_location.
50         * tree-dump.c:  Use expand_location on DECL_SOURCE_LOCATION.
51         * coverage.c:  Likewise.
52         * print-tree.c:  Likewise.
53         * c-aux-info.c (gen_aux_info_record):  Likewise.
54         * c-parse.in:  Use SET_EXPR_LOCATION macro.
55         * gimple-low.c:  Likewise.
56         * tree-mudflap.c:  Likewise.
57         * gimplify.c:  Likewise.  Also use EXPR_LOCATION and EXPR_HAS_LOCATION.
58         * c-ppoutput.c:  Use new source_location typedef instead of fileline.
59         * c-semantics.c:  Use new macros.
60         * c-typeck.c:  Likewise.
61         * cfgexpand.c:  Handle USE_MAPPED_LOCATION case for function_end_locus.
62         * cfglayout.c (insn_locators_initialize):  Const cleanup.  New macros.
63         * cfgrtl.c (delete_insn):  Use new NOTE_DELETED_LABEL_NAME macro.
64         * print-rtl.c (print_rtx):  Likewise.
65         * emit-rtl.c:  Don't clear NOTE_SOURCE_FILE if USE_MAPPED_LOCATION.
66         * combine.c:  Use new SET_INSN_DELETED macro.
67         * flow.c:  Likewise.
68         * haifa-sched.c:  Likewise.
69         * ifcvt.c:  Likewise.
70         * recog.c:  Likewise.
71         * reload1.c:  Likewise.
72         * diagnostic.c:  Use expand_location macro.
73         * pretty-print.c (pp_base_format_text):  Likewise.
74         * profile.c:  Likewise.
75         * dwarf2out.c:  Likewise.  Also use expand_location, DECL_IS_BUILTIN.
76         * dwarf2out.c (dwarf2out_decl:  Use BUILTINS_LOCATION.
77         * emit-rtl.c (emit_line_note):  Simplify if USE_MAPPED_LOCATION.
78         (force_next_line_note, insn_emit):  Handle USE_MAPPED_LOCATION case.
79         * final.c (final):  Likewise.
80         * haifa-sched.c:  Likewise.
81         * integrate.c:  Likewise.
82         * jump.c:  Likewise.
83         * rtl-error.c:  Likewise.
84         * stmt.c (check_seenlabel):  Likewise.
85         * tree-pretty-print.c:  Likewise.
86         * gengtype-lex.l:  Temporary kludge to avoid duplicate typedef.
87         * gengtype.c:  Update for now typdefs in input.h.  More kludges.
88         * modulo-sched.c (sms_schedule):  Use NOTE_EXPANDED_LOCATION macro.
89         * ra-debug.c (ra_print_rtl):  Likewise.
90         * sched-rgn.c:  Likewise.
91         * sched-vis.c:  Likewise.
92         * rtl.h (gen_rtx_ASM_OPERANDS):  Redefine if USE_MAPPED_LOCATION.
93         * stmt.c (expand_asm_operands):  Adjust calls to gen_rtx_ASM_OPERANDS.
94         * tree-cfg.c:  Use new macros and typedefs.
95         * tree-flow-inline.h:  Likewise.
96
97 2004-06-30  Richard Sandiford  <rsandifo@redhat.com>
98             Eric Christopher  <echristo@redhat.com>
99
100         * config/mips/3000.md: Improve description.
101
102 2004-06-30  Paul Brook  <paul@codesourcery.com>
103
104         * config/arm/cirrus.md (cirrus_arm_movdi, cirrus_movsf_hard_insn,
105         cirrus_movdf_hard_insn): Set pool ranges for coprocessor loads.
106
107 2004-06-30  Sebastian Pop  <pop@cri.ensmp.fr>
108
109         * Makefile.in (OBJS-common): Add tree-chrec.o.
110         (tree-chrec.o): New rule.
111         (GTFILES): Add tree-chrec.h.
112         * gengtype.c (open_base_files): Add tree-chrec.h.
113         * tree-chrec.c: New file.
114         * tree-chrec.h: New file.
115         * tree.def (SCEV_KNOWN, SCEV_NOT_KNOWN, POLYNOMIAL_CHREC): New nodes.
116
117 2004-06-30  Roger Sayle  <roger@eyesopen.com>
118
119         * combine.c: Include "output.h" to define dump_file.
120         (uid_insn_cost, last_insn_cost): New global variables.
121         (combine_insn_cost): New function to estimate cost of an insn.
122         (combine_validate_cost): New function to determine whether a
123         try_combine replacement sequence is cheaper than the original.
124         (combine_instructions): Allocate and populate uid_insn_cost
125         array at the start of the combine pass, and deallocate it after.
126         (try_combine): Check combine_validate_cost to determine whether
127         a "recombination" should be rejected as being more expensive.
128         * Makefile.in (combine.o): Add dependency upon output.h.
129
130 2004-06-30  Roger Sayle  <roger@eyesopen.com>
131
132         * config/rs6000/rs6000.c (rs6000_rtx_costs) <MINUS_EXPR>: Handle
133         subtractions identically to additions, always COSTS_N_INSNS (1).
134
135 2004-06-30  J"orn Rennecke <joern.rennecke@superh.com>
136
137         * expmed.c (expand_smod_pow2): Fix sign of mask.
138
139 2004-06-29  Diego Novillo  <dnovillo@redhat.com>
140
141         * tree-ssa-pre.c (phi_trans_add): Use is_gimple_min_invariant
142         to check for constants.
143         (set_remove): Likewise.
144         (value_replace_in_set): Likewise.
145         (find_leader): Likewise.
146         * tree-vn.c (set_value_handle): Likewise.
147         (vn_lookup): Likewise.
148         (vn_lookup_or_add): Likewise.
149
150 2004-06-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
151
152         RTL prologue/epilogue for SPARC
153         * config/sparc/sparc-protos.h (sparc_emitting_epilogue): Delete.
154         (sparc_skip_caller_unimp): Likewise.
155         (load_pic_register): Likewise.
156         (leaf_return_peephole_ok): Likewise.
157         (compute_frame_size): Rename into sparc_compute_frame_size.
158         (sparc_expand_prologue): New prototype.
159         (sparc_expand_epilogue): Likewise.
160         (output_return): Likewise.
161         (eligible_for_epilogue_delay): Rename into eligible_for_return_delay.
162         * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Adjust call to
163         compute_frame_size.  Move comment up.
164         (DELAY_SLOTS_FOR_EPILOGUE): Delete.
165         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
166         (EPILOGUE_USES): Return true for %g1 if the function uses EH return.
167         * config/sparc/sparc.md (UNSPECV_SAVEW): New constant.
168         (type attribute): Add 'return' and 'savew'.
169         (eligible_for_return_delay): New attribute.
170         (return): New delay_slot.
171         (sibcall_epilogue): Call sparc_expand_epilogue.
172         (prologue): Likewise.  Move up.
173         (save_register_window): New expander.
174         (save_register_windowsi): New pattern.
175         (save_register_windowdi): Likewise.
176         (epilogue): New expander.
177         (return_internal): New pattern.
178         (Return peepholes): Delete.
179         * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): New macro.
180         (sparc_emitting_epilogue): Delete.
181         (sparc_skip_caller_unimp): Likewise.
182         (sparc_sr_alias_set): New global variable.
183         (frame_base_name): Delete.
184         (frame_base_reg): New global variable.
185         (sparc_override_options): Get new alias set for save/restore.
186         (leaf_return_peephole_ok): Delete.
187         (eligible_for_epilogue_delay): Rename into eligible_for_return_delay.
188         Factor out code into eligible_for_restore_insn_delay.
189         (eligible_for_restore_insn_delay): New function extraced from above.
190         Use IN_UNCOND_BRANCH_DELAY_TRUE instead of IN_BRANCH_DELAY_TRUE.
191         (eligible_for_sibcall_delay): Use SIBCALL_SLOT_EMPTY_P.
192         Factor out code into eligible_for_restore_insn_delay.
193         (load_pic_register): Make static.  Remove check.
194         (save_regs): Delete.
195         (restore_regs): Likewise.
196         (compute_frame_size): Rename into sparc_compute_frame_size.
197         Rename leaf_function into leaf_function_p.
198         (build_big_number): Delete.
199         (save_or_restore_regs): New function.
200         (emit_save_regs): Likewise.
201         (emit_restore_regs): Likewise.
202         (emit_stack_pointer_increment ): Likewise.
203         (emit_stack_pointer_decrement): Likewise.
204         (sparc_expand_prologue): Likewise.
205         (sparc_function_prologue): Rename into sparc_asm_function_prologue.
206         Remove all code to emit instructions.
207         (sparc_expand_epilogue): New function.
208         (sparc_function_epilogue): Rename into sparc_asm_function_epilogue.
209         Remove all code to emit instructions.
210         (output_restore): New function.
211         (output_return): Likewise.
212         (output_sibcall): Factor out code into output_restore.
213         (print_operand): Adjust for frame_base_reg.
214         * target.h (struct gcc_target): New field 'late_rtl_prologue_epilogue'.
215         * target-def.h (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): New define.
216         (TARGET_INITIALIZER): Add it.
217         * passes.c (rest_of_compilation): Set the conditional predicate
218         'current_function_uses_only_leaf_regs' before sched2.  If target
219         has 'late_rtl_prologue_epilogue', emit RTL prologue/epilogue right
220         before sched2.
221         * reorg.c (return_insn_p): New predicate.
222         (find_end_label): Use it.
223         (relax_delay_slots): Do not thread an unconditional jump that points
224         to the end return label.
225         * doc/tm.texi (Registers) <Leaf Functions>: Clarify the validity
226         domain of 'current_function_uses_only_leaf_regs'.
227         (Stack and Calling) <Function Entry>: Document new target hook
228         TARGET_LATE_RTL_PROLOGUE_EPILOGUE.
229
230 2004-06-30  Jakub Jelinek  <jakub@redhat.com>
231
232         * simplify-rtx.c (simplify_binary_operation): Simplify
233         ((A & N) + B) & M -> (A + B) & M if M is pow2 minus 1 constant and
234         N has at least all bits in M set as well.
235
236         PR tree-optimization/15310
237         * expr.c (expand_assignment): Optimize += or -= on a bit field in
238         most significant bits.
239
240 2004-06-30  Steven Bosscher  <stevenb@suse.de>
241
242         * config/c4x/c4x.md: Fix comment.
243
244 2004-06-30  Akos Kiss  <akiss@inf.u-szeged.hu>
245
246         * arm.md (cond_return_inverted): Add "length" attribute.
247
248 2004-06-29  Per Bothner  <per@bothner.com>
249
250         * config/i386/winnt.c (i386_pe_encode_section_info):  Smash rtlname's
251         XSTR in place, so we don't lose SYMBOL_REF_DECL info.
252
253 2004-06-29  Zack Weinberg  <zack@codesourcery.com>
254
255         * config/ia64/hpux.h: Target does too support thread-local storage.
256
257 2004-06-29  Zack Weinberg  <zack@codesourcery.com>
258
259         * combine.c (distribute_notes): Don't look at global_regs for
260         pseudos.
261
262 2004-06-29  Richard Henderson  <rth@redhat.com>
263
264         * gimplify.c (gimplify_modify_expr_rhs): Move immediately before
265         gimplify_modify_expr.
266         (gimplify_init_constructor): Likewise.  Gimplify the null
267         CONSTRUCTOR assignment.
268         (gimplify_modify_expr_to_memcpy): New.
269         (gimplify_modify_expr_to_memset): New.
270         (gimplify_modify_expr): Use them.
271
272 2004-06-29  Roman Zippel <zippel@linux-m68k.org>
273
274         * web.c (union_defs): use all defs of an instruction to create a
275         union with a read/write use
276
277 2004-06-29  Richard Henderson  <rth@redhat.com>
278
279         PR middle-end/16216
280         * builtins.c (gimplify_va_arg_expr): Check for valist being
281         an error_mark_node.
282
283 2004-06-29  Jakub Jelinek  <jakub@redhat.com>
284
285         PR target/16195
286         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
287         r30 fixed if TARGET_TOC && TARGET_MINIMAL_TOC.
288         (first_reg_to_save): Pretend call_used_regs[30] is 0 if
289         TARGET_TOC && TARGET_MINIMAL_TOC.
290         (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise.
291
292 2004-06-29  J"orn Rennecke <joern.rennecke@superh.com>
293
294         Fix gcc.dg/builtin-apply2.c failures:
295         * sh.h (TARGET_VARARGS_PRETEND_ARGS): Define.
296         * sh.c (extra_push): Delete.
297         (sh_expand_prologue): Don't do extra stack adjustment for
298         current_function_pretend_args_size if it comes from varargs setup.
299         Use TARGET_VARARGS_PRETEND_ARGS.  Don't set extra_push.
300         (sh_expand_epilogue): Don't use extra_push.
301         (sh_setup_incoming_varargs): Set pretend_arg_size when necessary.
302
303 2004-06-29  Roger Sayle  <roger@eyesopen.com>
304
305         * expmed.c (expand_smod_pow2): Provide alternate implementations
306         that avoid conditional jumps, and choose between them based upon
307         the target's rtx_costs.
308
309 2004-06-29  Andrew Pinski  <apinski@apple.com>
310
311         * tree-sra.c: Include expr.h for definition of MOVE_RATIO.
312         * Makefile.in (tree-sra.c): Update dependencies.
313
314 2004-06-29  Richard Henderson  <rth@redhat.com>
315
316         * tree-sra.c: Rewrite from scratch.  Handle nested aggregates.
317
318 2004-06-29  Nathan Sidwell  <nathan@codesourcery.com>
319
320         * vec.h (VEC_T_safe_push, VEC_T_safe_insert): Tweak for when
321         size_t is bigger than int.
322
323 2004-06-29  Paul Brook  <paul@codesourcery.com>
324
325         * target-def.h (TARGET_CXX_GET_COOKIE_SIZE,
326         TARGET_CXX_COOKIE_HAS_SIZE): Define.
327         (TARGET_CXX): Use them.
328         * target.h (struct gcc_target): Add cxx.get_cookie_size and
329         cxx.cookie_has_size.
330         * targhooks.c (default_cxx_get_cookie_size): New fucntion.
331         * targhooks.h (default_cxx_get_cookie_size): Add prototype.
332         * config/arm/arm.c (TARGET_CXX_GET_COOKIE_SIZE,
333         TARGET_CXX_COOKIE_HAS_SIZE): Define.
334         (arm_get_cookie_size, arm_cookie_has_size): New functions.
335         * Make-lang.in (cp/init.o): Add dependency on $(TARGET_H).
336         * doc/tm.texi: Document TARGET_CXX_GET_COOKIE_SIZE and
337         TARGET_CXX_COOKIE_HAS_SIZE.
338
339 2004-06-29  J"orn Rennecke <joern.rennecke@superh.com>
340
341         * cfglayout.c (fixup_reorder_chain): Don't do anything for
342         e_fall->dest == EXIT_BLOCK_PTR.
343
344 2004-06-28  Richard Henderson  <rth@redhat.com>
345
346         * tree-cfg.c (verify_stmt): Add last_in_block parameter.  Verify
347         that eh stmts can throw.
348         (verify_stmts): Update verify_stmt call.
349         (tree_purge_dead_eh_edges, tree_purge_all_dead_eh_edges): New.
350         * tree-eh.c (remove_stmt_from_eh_region): New.
351         (lower_eh_constructs): Fix throw_stmt_table delete routine.
352         (tree_could_trap_p): Match may_trap_p.
353         (maybe_clean_eh_stmt): New.
354         * tree-flow.h: Update decls.
355         * tree-ssa-ccp.c (pass_ccp): Add TODO_verify_stmts.
356         (substitute_and_fold): Clean eh edges.
357         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Handle
358         empty basic blocks.
359         * tree-ssa-dom.c (need_eh_cleanup): New.
360         (tree_ssa_dominator_optimize): Allocate it.  Cleanup eh edges.
361         (optimize_stmt): Cleanup eh stmts; set need_eh_cleanup.
362
363 2004-06-29  Alan Modra  <amodra@bigpond.net.au>
364
365         * function.c (assign_parms): Don't abort with zero size stack
366         parm failing the PARM_BOUNDARY check.
367
368 2004-06-28  Diego Novillo  <dnovillo@redhat.com>
369
370         * common.opt (ftree-fre): New flag.
371         * flags.h (flag_tree_fre): Declare.
372         * opts.c (decode_options): Set.
373         * timevar.def (TV_TREE_FRE): Define.
374         * tree-flow-inline.h (may_propagate_copy): Re-arrange for
375         readability.  Handle destinations that are not SSA_NAMEs.
376         * tree-flow.h (struct ptr_info_def): Move from tree.h
377         (cprop_into_stmt, cprop_into_successor_phis): Remove.
378         (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Add
379         vuse_optype parameter.
380         * tree-pass.h (pass_fre): Declare.
381         * tree-ssa-copy.c (cprop_operand): Move to tree-ssa-dom.c
382         (cprop_into_stmt): Likewise.
383         (cprop_into_successor_phis): Likewise.
384         * tree-ssa-dom.c (eliminate_redundant_computations): Fix
385         argument ordering in call to may_propagate_copy.
386         * tree-ssa-pre.c (is_undefined_value): Assume hard registers
387         to be always defined.
388         (add_to_sets): New local function.
389         (create_value_expr_from): New local function.
390         (compute_avail): Call them.
391         (eliminate): Don't ignore statements with virtual operands.
392         (init_pre): New local function.
393         (fini_pre): New local function.
394         (execute_pre): Call them.
395         Add argument DO_FRE.  Don't do insertion if DO_FRE is true.
396         (do_pre): New function.
397         (do_fre): New function.
398         (gate_fre): New function.
399         (pass_fre): Declare.
400         * tree-ssa.c (init_tree_ssa): Don't call vn_init.
401         (delete_tree_ssa): Don't call vn_delete.
402         * tree-vn.c (val_expr_pair_d): Add documentation.
403         (vn_compute): Add VUSES argument to incorporate in computing
404         hash values.  Update all callers.
405         (expressions_equal_p): Call operand_equal_p with
406         OEP_PURE_SAME.
407         (vn_add): Add VUSES argument.  Update all callers.
408         (vn_lookup): Likewise.
409         (vn_lookup_or_add): Likewise.
410         * doc/invoke.texi: Document -ftree-fre and -fdump-tree-fre.
411
412 2004-06-28  Steven Bosscher  <stevenb@suse.de>
413
414         * config/m32r/m32r.c (m32r_sched_odd_word_p, m32r_adjust_cost,
415         m32r_sched_init, m32r_sched_reorder, m32r_variable_issue): Remove.
416         (TARGET_SCHED_ADJUST_COST, TARGET_SCHED_VARIABLE_ISSUE,
417         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Don't define.
418         * config/m32r/m32r.md: Rewrite the pipeline description as a DFA.
419
420 2004-06-28  Richard Henderson  <rth@redhat.com>
421
422         * tree.def (REALPART_EXPR, IMAGPART_EXPR): Change class to 'r'.
423         * fold-const.c (operand_equal_p <case 'r'>): Add REALPART_EXPR,
424         IMAGPART_EXPR.
425         * tree-dump.c (dequeue_and_dump): Handle REALPART_EXPR and
426         IMAGPART_EXPR explicitly.
427         * tree-inline.c (estimate_num_insns_1): Don't handle REALPART_EXPR
428         and IMAGPART_EXPR specially.
429         * tree.c (build1_stat): Copy TREE_THIS_VOLATILE into class 'r'.
430
431 2004-06-28  J"orn Rennecke <joern.rennecke@superh.com>
432
433         * config.gcc (sh*-*elf*): Remove dead assignment of sh_multilibs.
434
435 2004-06-28  Joseph S. Myers  <jsm@polyomino.org.uk>
436
437         * builtins.def (execl, execlp, execle, execv, execvp, execve,
438         fork): Change to DEF_EXT_LIB_BUILTIN.
439
440 2004-06-28  Roger Sayle  <roger@eyesopen.com>
441
442         * expmed.c (expand_smod_pow2): New function to expand signed
443         remainder by a constant power of 2, such as "x % 16".
444         (expand_divmod): Call new expand_smod_pow2 when appropriate.
445         Minor corrections to comments, e.g. wrapping long lines.
446
447 2004-06-28  Ulrich Weigand  <uweigand@de.ibm.com>
448
449         * Makefile.in (vec.o): Fix dependencies.
450
451 2004-06-28  Andreas Tobler <a.tobler@schweiz.ch>
452
453         * Makefile.in: Fix parallel make dependency problem on vec.o.
454
455 2004-06-28  Dhananjay Deshpande  <dhananjayd@kpitcummins.com>
456
457         PR target/14041
458         * config/h8300/h8300.h (ASM_OUTPUT_ALIGNED_BSS): Define.
459
460 2004-06-28  Nathan Sidwell  <nathan@codesourcery.com>
461
462         * tree.h (tree_check_failed): Make varadic.
463         (tree_not_check_failed): New prototype.
464         (tree_check2_failed, tree_check3_failed,
465         tree_check4_failed, tree_check5_failed): Remove.
466         (TREE_CHECK, TREE_CHECK2, TREE_CHECK3, TREE_CHECK4,
467         TREE_CHECK5): Adjust.
468         (TREE_NOT_CHECK, TREE_NOT_CHECK2, TREE_NOT_CHECK3, TREE_NOT_CHECK4,
469         TREE_NOT_CHECK5): New.
470         (TREE_VEC_ELT_CHECK, PHI_NODE_ELT_CHECK, TREE_OPERAND_CHECK_CODE,
471         TREE_RTL_OPERAND_CHECK): Adjust.
472         * tree.c (tree_check_failed): Make varadic.
473         (tree_not_check_failed): New.
474         (tree_check2_failed, tree_check3_failed,
475         tree_check4_failed, tree_check5_failed): Remove.
476
477 2004-06-28  Ulrich Weigand  <uweigand@de.ibm.com>
478
479         * combine.c (can_combine_p): Do not prevent building insns that use
480         and clobber the same fixed hard register.
481         (reg_dead_at_p): Likewise.
482
483 2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
484
485         * tree-sra.c (is_sra_candidate_ref): Remove second arg; all callers
486         changed.
487         (is_sra_candidate_complex_ref): New function.
488         (scalarize_modify_expr): Call it and check for LHS also.
489
490         * tree-pretty-print.c (dump_function_declaration): New.
491         (dump_generic_node, case FUNCTION_TYPE): Call it.
492         (dump_generic_node, case RECORD_TYPE): Don't output dup semicolon.
493         (dump_generic_node, case DECL_EXPR): New case.
494         (dump_generic_node, case PLACEHOLDER_EXPR): Handle.
495         (print_declaration): Handle type and function declarations.
496
497         * tree-nested.c (create_tmp_var_for): Allow ARRAY_TYPE.
498         (convert_nonlocal_reference, convert_local_reference): Properly
499         convert nest of handled component references.
500
501 2004-06-28  Nathan Sidwell  <nathan@codesourcery.com>
502
503         * vec.h, vec.c: New, type safe vector API.
504         * Makefile.in (OBJS-common): Add vec.o.
505         (vec.o): New target.
506         (gengtype-lex.o): Depend on vec.h.
507
508 2004-06-28  Paolo Bonzini  <bonzini@gnu.org>
509
510         * fold-const.c (fold_cond_expr_with_comparison): Add ARG1
511         parameter.  Use it instead of ARG00 to produce the result.
512
513 2004-06-28  Alexandre Oliva  <aoliva@redhat.com>
514
515         * config/mn10300/mn10300-protos.h (legitimate_address_p): Declare.
516         * config/mn10300/mn10300.c (legitimate_address_p): New.  Test that
517         index is legitimate, compared with code moved from...
518         * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): here.
519         (REG_STRICT): Define, according to REG_OK_STRICT.
520         (REGNO_IN_RANGE_P, REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P,
521         REGNO_EXTENDED_P, REGNO_AM33_P, REGNO_FP_P): Introduce strict
522         argument.
523         (REGNO_STRICT_OK_FOR_BASE_P, REGNO_STRICT_OK_FOR_BIT_BASE_P,
524         REGNO_STRICT_OK_FOR_INDEX_P): New.
525         (REGNO_OK_FOR_BASE_P, REG_OK_FOR_BASE_P, REGNO_OK_FOR_BIT_BASE_P,
526         REG_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P,
527         RTX_OK_FOR_BASE_P): Use them.
528
529 2004-06-28  Ben Elliston  <bje@au.ibm.com>
530
531         * doc/cfg.texi (Basic Blocks): Define dominators.
532
533 2004-06-27  Andrew Pinski  <pinskia@physics.uc.edu>
534
535         PR c++/16205
536         * c-common.c (warn_for_collisions_1): Warn for only decls which
537         have a name.
538
539         PR c++/15145
540         * c.opt (Wsequence-point): Enable for C++ and ObjC++.
541
542         PR c/14963
543         * c-decl.c (start_decl): Check for null types.
544
545 2004-06-27  David Edelsohn  <edelsohn@gnu.org>
546
547         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
548         Accept TOC addresses.
549
550 2004-06-27  Ulrich Weigand  <uweigand@de.ibm.com>
551
552         * config/s390/s390-protos.h (s390_load_got): Update prototype.
553         * config/s390/s390.c (struct machine_function): Add member base_reg.
554         (s390_decompose_address): Accept UNSPEC_LTREF.  Simplify logic.
555         (s390_split_branches): Annotate late pool references.
556         (annotate_constant_pool_refs): New function.
557         (find_constant_pool_ref): Work on annotated pool references.
558         (replace_constant_pool_ref): Likewise.  Use explicit base.
559         (replace_ltrel_base): Use explicit base.
560         (s390_mainpool_start): Reflect main_pool pattern change.
561         (s390_mainpool_finish): Use base register from main_pool.
562         Update calls to replace_ltrel_base and replace_constant_pool_ref.
563         (s390_chunkify_start): Use base_reg from struct machine_function.
564         (s390_chunkify_finish): Remove base_reg argument.  Update calls
565         to replace_ltrel_base and replace_constant_pool_ref.
566         (s390_reorg): Don't decide upon base register.  Update calls.
567         (s390_load_got): Remove MAYBE_DEAD handling.  Do not emit insns
568         but return sequence instead.
569         (s390_emit_prologue): Decide upon base register to use.  Annotate
570         all literal pool references.  Adapt to main_pool pattern change.
571         Update s390_load_got call; move MAYBE_DEAD handling here.
572         (s390_emit_epilogue): Annotate late literal pool references.
573         Remove barrier before register restore instruction.
574         * config/s390/s390.md (UNSPEC_LTREF): New constant.
575         ("builtin_setjmp_receiver"): Update s390_load_got call.
576         ("main_pool"): Explicitly reference base register.
577
578 2004-06-27  Roger Sayle  <roger@eyesopen.com>
579
580         * fold-const.c (fold) <BIT_IOR_EXPR>: Optimize ~X|X and X|~X as -1.
581         <BIT_XOR_EXPR>: Optimize ~X|X and X|~X as -1.
582         <BIT_AND_EXPR>: Optimize ~X&X and X&~X as 0.
583         <TRUTH_AND_EXPR, TRUTH_ANDIF_EXPR>: Optimize !X&&X and X&&!X as false.
584         <TRUTH_OR_EXPR, TRUTH_ORIF_EXPR>: Optimize !X||X and !X||X as true.
585         <TRUTH_XOR_EXPR>: Optimize !X^X and X^X! as true.  Now that
586         TRUTH_XOR_EXPR is a commutative tree code, don't test whether arg0
587         is a constant.
588
589 2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
590
591         * c-common.c (c_safe_from_p, c_walk_subtrees): Deleted.
592         * c-common.def (DECL_STMT): Remove.
593         * c-common.h (DECL_STMT_DECL): Deleted.
594         (COMPOUNT_LITERAL_EXPR_DECL): Use DECL_EXPR_DECL.
595         (c_safe_from_p, c_walk_subtrees): Deleted.
596         * c-decl.c, c-parse.in, c-pretty-print.c: DECL_STMT now DECL_EXPR.
597         * c-dump.c (c_dump_tree, case DECL_STMT): Deleted.
598         * c-gimplify.c (gimplify_decl_stmt): Deleted.
599         (gimplify_compound_literal_expr): Use DECL_EXPR_DECL
600         and gimplify_and_add.
601         (c_gimplify_expr, case DECL_EXPR): New case.
602         (c_gimplify_expr, case DECL_STMT): Deleted.
603         * c-lang.c (LANG_HOOKS_SAFE_FROM_P): Likewise.
604         (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise.
605         * expr.c (safe_from_p, case 's'): New case.
606         * gimplify.c (gimplify_decl_expr): New function.
607         (gimplify_expr, case DECL_EXPR): New case.
608         * tree-inline.c (walk_tree): Walk into all fields of a type and
609         decl only if they are in a DECL_EXPR.
610         (mark_local_for_remap_r): Minor code cleanup.
611         * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Add else.
612         * tree.c (has_cleanups, case DECL_EXPR): New case.
613         * tree.def (DECL_EXPR): New code.
614         * tree.h (DECL_EXPR_DECL): New macro.
615
616         * objc/objc-lang.c (LANG_HOOKS_SAFE_FROM_P): Deleted.
617
618 2004-06-26  Andrew Pinski  <pinskia@physics.uc.edu>
619
620         PR 13334
621         * doc/install.texi: Document non-standard CFLAGS and bootstrap
622         failures and warnings.
623
624 2004-06-26  Andrew Haley  <aph@redhat.com>
625
626         * emit-rtl.c (set_mem_attributes_minus_bitpos): Check
627         TREE_THIS_NOTRAP when setting MEM_NOTRAP_P.
628         * tree-eh.c (tree_could_trap_p): Check TREE_THIS_NOTRAP.
629         * tree.h (TREE_THIS_NOTRAP): New.
630
631 2004-06-26  Kaz Kojima  <kkojima@gcc.gnu.org>
632
633         * genattrtab.c (write_test_expr): Put a unsigned cast before
634         the first operand for GEU, GTU, LEU and LTU.
635
636 2004-06-26  Kazu Hirata  <kazu@cs.umass.edu>
637
638         * c-typeck.c, cfgexpand.c, ddg.c, ddg.h, df.c, fold-const.c,
639         gcov.c, gimplify.c, modulo-sched.c, passes.c, tree-cfg.c,
640         tree-mudflap.c, tree-nrv.c, tree-outof-ssa.c, tree-ssa-dom.c,
641         tree-ssa-dse.c, tree-ssa-operands.c, tree-ssa-pre.c,
642         tree-tailcall.c: Fix comment typos.  Follow spelling
643         conventions.
644
645 2004-06-25  Eric Christopher  <echristo@redhat.com>
646
647         * config/mips/mips.md: Add back scheduling exclusion info.
648
649 2004-06-25  Roger Sayle  <roger@eyesopen.com>
650
651         * ifcvt.c (seq_contains_jump): Delete function.
652         (end_ifcvt_sequence): Replace call to seq_contains_jump with an
653         inline test for a jump instruction in the existing "insn" loop.
654         (block_fallthru): Document function.
655
656 2004-06-25  Philip Blundell  <philb@gnu.org>
657
658         PR wrong-code/15089
659         * loop.c (scan_loop): Do not move user-specified register
660         assignments.
661
662 2004-06-25  DJ Delorie  <dj@redhat.com>
663
664         * c-common.h (warn_cast_qual, warn_missing_format_attribute,
665         warn_pointer_arith, warn_missing_prototypes, warn_parentheses,
666         warn_missing_braces, warn_sign_compare, warn_long_long,
667         warn_redundant_decls, warn_float_equal, warn_char_subscripts,
668         warn_conversion, warn_format_y2k, warn_format_extra_args,
669         warn_format_zero_length, warn_format_nonliteral,
670         warn_format_security, mesg_implicit_function_declaration,
671         warn_bad_function_cast, warn_traditional,
672         warn_declaration_after_statement, warn_strict_prototypes,
673         warn_missing_declarations, warn_nested_externs,
674         warn_sequence_point, warn_init_self, warn_div_by_zero,
675         warn_implicit_int, warn_nonnull, warn_old_style_definition,
676         warn_selector, warn_undeclared_selector, warn_protocol,
677         warn_abi, warn_invalid_offsetof, warn_ctor_dtor_privacy,
678         warn_overloaded_virtual, warn_nonvdtor, warn_reorder,
679         warn_synth, warn_pmf2ptr, warn_ecpp, warn_sign_promo,
680         warn_old_style_cast, warn_nontemplate_friend,
681         warn_deprecated): Remove explicit declarations.
682         * c-common.c: Likewise, remove explicit definitions.
683         * c-opts.c: Likewise, remove explicit assignments.
684         * c.opts: Likewise, add implicit declare/define/assign.
685
686 2004-06-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
687
688         * gimplify.c (lookup_tmp_var): Set TREE_READONLY in is_formal case.
689         (build_addr_expr_with_type): Deleted.
690         (build_addr_expr): Deleted; callers changed to build_fold_addr_expr.
691         (gimplify_compound_lval): Make two passes over reference nest.
692
693         * tree-nested.c (build_addr): Merge real/imagpart with
694         handled_component_p.
695         (convert_nonlocal_reference, convert_local_reference): Process extra
696         args to COMPONENT_REF and ARRAY_REF.
697         * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Check for
698         lower bound and field offset being constant.
699
700 2004-06-25  Mark Mitchell  <mark@codesourcery.com>
701
702         PR wrong-code/16129
703         * alias.c (get_alias_set): Adjust setting of
704         DECL_POINTER_ALIAS_SET for pointers to aggregates.
705
706 2004-06-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
707
708         * tree-inline.c (remap_type): Arrange to have just one pointer type
709         for each type, mode, and 'can alias' value.
710         (setup_one_parameter): Remap type when making VAR_DECL for PARM_DECL.
711         (estimate_num_insns_1): Minor code reformatting.
712         (inline_forbidden_p_1): Likewise; add; missing return statement.
713
714 2004-06-25  Roger Sayle  <roger@eyesopen.com>
715
716         PR middle-end/15825
717         * ifcvt.c (unshare_ifcvt_sequence): Rename to end_ifcvt_sequence.
718         Use get_isns and end_sequence instead of accepting a seq argument.
719         Scan the instruction sequence for unrecognizable or jump insns.
720         (noce_try_move, noce_try_store_flag, noce_try_store_flag_constants,
721         noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove,
722         noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
723         noce_try_sign_mask): Use end_ifcvt_sequence to factor common code.
724
725 2004-06-24  Jeff Law  <law@redhat.com>
726
727         * gimplify.c (gimplify_compound_lval): Reset TREE_SIDE_EFFECTS
728         after gimplifying the innermost component.
729
730 2004-06-25  Richard Sandiford  <rsandifo@redhat.com>
731
732         PR target/16176
733         * config/mips/mips.c (mips_expand_unaligned_load): Use a temporary
734         register for the destination of the lwl or ldl.
735
736 2004-06-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
737
738         * tree-dfa.c (get_virtual_var): Merge real/imaginary parts with
739         handled_component_p handling.
740         * tree-gimple.c (get_base_address): Likewise and fix typo that
741         caused both recursion and looping.
742
743         * tree-cfg.c (verify_expr): Add macro CHECK_OK.
744         Properly test for nest of handled_components in LHS context.
745
746 2004-06-25  Devang Patel  <dpatel@apple.com>
747
748         * doc/tree-ssa.texi: Document info about MODIFY_EXPR's type
749
750 2004-06-25  Paul Brook  <paul@codesourcery.com>
751
752         * target-def.h (TARGET_CXX_GUARD_TYPE, TARGET_CXX_GUARD_MASK_BIT,
753         TARGET_CXX): Define.
754         (TARGET_INITIALIZER): Use TARGET_CXX.
755         * target.h (struct gcc_target): Add struct cxx.
756         * targhooks.h (default_cxx_guard_type): Add prototype.
757         * targhooks.c (default_cxx_guard_type): New function.
758         * config/arm/arm.c (TARGET_CXX_GUARD_TYPE, TARGET_CXX_GUARD_MASK_BIT):
759         Define.
760         (arm_cxx_guard_type, arm_cxx_guard_mask_bit): New functions.
761         * doc/tm.texi: Document TARGET_CXX_GUARD_TYPE and
762         TARGET_CXX_GUARD_MASK_BIT.
763
764 2004-06-25  Devang Patel  <dpatel@apple.com>
765
766         * config/rs6000/darwin.h (CC1_SPEC): Handle -gused and -gfull.
767         * config/i386/darwin.h (CC1_SPEC): Same.
768
769 2004-06-25  Mark G. Adams  <mark.g.adams@sympatico.ca>
770
771         * dbxout.h: Add include guards
772
773 2004-06-25  Paul Brook  <paul@codesourcery.com>
774
775         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_EABI__.
776
777 2004-06-25  Richard Earnshaw  <rearnsha@arm.com>
778
779         * arm.c (arm_arch4t): New variable.
780         (arm_override_options): Initialize it.  If compiling for armv5 or
781         higher clear TARGET_INTERWORK.
782         (output_call): Abort if called for armv5.  Use BX if it's available.
783         (output_call_mem): Use BLX if available and ensure that all armv5
784         code is interworking safe.
785         (output_return_instruction): Always use BX in preference to MOV if
786         it's available.
787         (arm_output_epilogue): Likewise.
788         (arm_final_prescan_insn): Never conditionally call a subroutine
789         on armv5.
790         * arm.h (arm_arch4t): Declare.
791         * arm.md (call_reg_armv5, call_value_reg_armv5): New.
792         (call_reg_arm, call_value_reg_arm): Renamed from call_reg and
793         call_value_reg respectively.
794         (call_reg_thumb_v5, call_value_reg_thumb_v5): New.
795         (call_reg_thumb, call_value_reg_thumb): Renamed from call_indirect
796         and call_value_indirect respectively.
797
798 2004-06-25  Richard Sandiford  <rsandifo@redhat.com>
799
800         * config/mips/mips.c (reg_or_const_float_1_operand): Reimplement
801         in terms of const_float_1_operand.
802
803 2004-06-25  Richard Sandiford  <rsandifo@redhat.com>
804
805         PR target/16144
806         * config/mips/mips.md (divsf, divdf): Don't FAIL if the first operand
807         is 1.0; force it into a register instead.
808
809 2004-06-25  Bernardo Innocenti  <bernie@develer.com>
810
811         * config/m68k/m68k.h: Restore valid comment removed by mistake with
812         the recent m68k comments cleanup.
813
814 2004-06-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
815
816         * c-gimplify.c (gimplify_for_stmt): Use gimplify_and_add.
817         * gimplify.c (internal_get_tmp_var, gimplify_return_expr): Likewise.
818         (gimplify_loop_expr, gimplify_init_constructor): Likewise.
819         (gimplify_self_mod_expr, gimplify_cond_expr): Likewise.
820
821         PR/16131
822         * gimplify.c (voidify_wrapper_expr): Allow TARGET_EXPR.
823
824         * gimplify.c: Remove unneeded forward declarations.
825
826         * gimplify.c (append_to_compound_expr): Deleted.
827         * tree-gimple.h (append_to_compound_expr): Deleted.
828
829         * fold-const.c (fold_addr_expr_with_type): Look through all
830         valid LHS modifiers to find a base to mark addressable.
831
832         * tree.h (debug_find_tree): Add declaration.
833         * tree-inline.c (debug_find_tree): Remove extern declaration.
834
835 2004-06-24  Eric Christopher  <echristo@redhat.com>
836
837         * config/rs6000/rs6000.md: Apply change mistakenly
838         deleted with 2004-06-22 patch.
839
840 2004-06-24  Richard Henderson  <rth@redhat.com>
841
842         * c-decl.c (c_in_iteration_stmt, c_in_case_stmt): Remove.
843         (c_break_label, c_cont_label): New.
844         (start_function): Update initializations.
845         (c_push_function_context): Update saves.
846         (c_pop_function_context): Update restores.
847         * c-parse.in: Update expected conflicts.
848         (stmt_count, compstmt_count): Remove.  Remove all updates.
849         (if_prefix, simple_if, do_stmt_start): Remove.
850         (lineno_labeled_stmt): Remove.
851         (lineno_labels): New.
852         (c99_block_lineno_labeled_stmt): Use it.
853         (lineno_stmt, lineno_label): Don't clear EXPR_LOCUS before calling
854         annotate_with_locus.
855         (select_or_iter_stmt): Replace by ...
856         (condition, if_statement_1, if_statement_2, if_statement,
857         start_break, start_continue, while_statement, do_statement,
858         for_cond_expr, for_incr_expr, for_statement, switch_statement): New.
859         (stmt): Split out ...
860         (stmt_nocomp): ... this.  Use c_finish_bc_stmt, c_finish_goto_label,
861         c_finish_goto_ptr.
862         * c-semantics.c (add_stmt): Don't add line numbers to labels.
863         * c-tree.h: Update prototypes.
864         (struct language_function): Remove x_in_iteration_stmt, x_in_case_stmt;
865         add x_break_label, x_cont_label, x_switch_stack.
866         (c_switch_stack): Declare.
867         * c-typeck.c (c_finish_goto_label, c_finish_goto_ptr): New.
868         (c_finish_return): Return the statement.
869         (c_switch_stack): Rename from switch_stack; export.
870         (if_elt, if_stack, if_stack_space, if_stack_pointer): Remove.
871         (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_begin_else,
872         c_finish_else): Remove.
873         (c_finish_if_stmt): Rewrite to perform the entire operation.
874         (c_begin_while_stmt, c_finish_while_stmt_cond, c_finish_while_stmt,
875         c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
876         c_finish_for_stmt_incr, c_finish_for_stmt): Remove.
877         (c_finish_loop): New.
878         (c_finish_bc_stmt): New.
879         (c_finish_expr_stmt): Return the statement.  Split out...
880         (c_process_expr_stmt): ... this.  Don't add locus to error marks.
881         * gimplify.c (gimplify_cond_expr): Accept NULL type statements.
882         * tree-gimple.c (is_gimple_stmt): Likewise.
883         * tree-pretty-print.c (dump_generic_node <COND_EXPR>): Likewise.
884         (print_struct_decl): Delete empty compound statement.
885         * objc/objc-act.c (objc_build_throw_stmt): Return the statement.
886         * objc/objc-act.h: Update decl.
887
888 2004-06-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
889
890         * tree-pretty-print.c (dump_generic_node, case TYPE_DECL):
891         Don't look at TYPE_METHODS unless RECORD_TYPE or UNION_TYPE.
892
893 2004-06-24  Andrew Pinski  <apinski@apple.com>
894
895         * objc-act.c (build_objc_method_call): Save the lookup_object
896         so we do not call it twice.
897
898 2004-06-24  Richard Henderson  <rth@redhat.com>
899
900         * tree-ssa-dom.c (real_avail_expr_hash): New.
901         (tree_ssa_dominator_optimize): Use it in the htab.
902
903 2004-06-24  Frank Ch. Eigler  <fche@redhat.com>
904
905         * tree-mudflap.c (mx_register_decls): Add third (type) argument
906         to synthesized __mf_unregister call.
907
908 2004-06-24  Roger Sayle  <roger@eyesopen.com>
909
910         PR middle-end/15239
911         * expmed.c (expand_mult): Remove artificial restriction on the
912         maximum cost of a synthetic multiplication sequence.
913
914 2004-06-24  Eric Christopher  <echristo@redhat.com>
915
916         * combine.c (distribute_notes): Don't delete sets to
917         global register variables.
918
919 2004-06-24  Jakub Jelinek  <jakub@redhat.com>
920
921         * config/i386/i386.md (ffsdi2, clzdi2): New expanders.
922         (ffs_rex64): New splitter.
923         (ffsdi_1, ctzdi2, bsr_rex64): New instructions.
924
925 2004-06-24  Andrew Pinski  <apinski@apple.com>
926
927         * config/darwin7.h (MATH_LIBRARY): Remove.
928         (LIB_SPEC): Define.
929         * config/darwin.h (MATH_LIBRARY): Define always to empty.
930         (LIB_SPEC): Only define if not already defined.
931
932 2004-06-24  Revital Eres  <eres@il.ibm.com>
933
934         * loop-iv.c (iv_analyze, simple_set_p): Support for identifying
935         shifts of induction variable.
936         (iv_shift): New function.
937
938 2004-06-24  Richard Henderson  <rth@redhat.com>
939
940         * gimplify.c (gimplify_body): Watch for body vanishing.
941
942 2004-06-24  Jeff Law  <law@redhat.com>
943
944         * tree-ssa-dom.c (record_dominating_conditions): New function.
945         (dom_opt_finalize_block, get_eq_expr_value): Use it.
946
947 2004-06-24  Richard Sandiford  <rsandifo@redhat.com>
948
949         * calls.c (shift_returned_value): Fix handling of non-integer
950         TYPE_MODEs.
951
952 2004-06-24  Ulrich Weigand  <uweigand@de.ibm.com>
953
954         * c-decl.c (finish_function): Do not check for DEFAULT_MAIN_RETURN.
955         * system.h (DEFAULT_MAIN_RETURN): Poison.
956         * doc/tm.texi (DEFAULT_MAIN_RETURN): Remove documentation.
957
958 2004-06-24  Ben Elliston  <bje@au.ibm.com>
959
960         * doc/cfg.texi (Edges): Fix typo.
961
962 2004-06-24  Paul Brook  <paul@codesourcery.com>
963
964         * config/arm/arm.c (arm_output_epilogue): Remove excess checks.
965
966 2004-06-23  Andrew Pinski  <apinski@apple.com>
967
968         PR middle-end/15988
969         * fold-const.c (fold_convert): Types which are compatible
970         can be converted with only a NOP_EXPR.
971
972 2004-06-24  Alan Modra  <amodra@bigpond.net.au>
973
974         * calls.c (expand_call): Call INIT_CUMULATIVE_ARGS earlier, and
975         pass raw n_named_args to it.
976         * targhooks.c: Formatting.
977         (hook_bool_CUMULATIVE_ARGS_false): Correct comment.
978
979 2004-06-23  Richard Henderson  <rth@redhat.com>
980
981         * c-gimplify.c (gimplify_decl_stmt): Push gimplify_one_sizepos inside
982         non-constant size check.  Gimplify the type too.  Tidy building
983         BUILT_IN_STACK_ALLOC call.
984
985 2004-06-23  Roger Sayle  <roger@eyesopen.com>
986
987         * c-common.c (expand_unordered_cmp): Delete.
988         (expand_tree_builtin): Delete.
989         * c-common.h (expand_tree_builtin): Delete function prototype.
990         * c-typeck.c (build_function_call): Don't call expand_tree_builtin.
991
992 2004-06-23  Richard Henderson  <rth@redhat.com>
993
994         * gimplify.c (gimplify_compound_lval): Don't set ARRAY_REF or
995         COMPONENT_REF variable fields unless they're non-constant.
996
997 2004-06-23  Robert Millan  <robertmh@gnu.org>
998
999         * config.gcc: Merge kfreebsd*-gnu with linux* and add knetbsd*-gnu.
1000         * config/i386/linux.h: Allow overriding of LINK_EMULATION,
1001           DYNAMIC_LINKER and register names in sc_ structure.
1002         * config/kfreebsd-gnu.h: New. kfreebsd-gnu followup for linux.h.
1003         * config/i386/kfreebsd-gnu.h: New. Ditto for i386-kfreebsd-gnu.
1004         * config/knetbsd-gnu.h: New. Ditto for knetbsd-gnu.
1005         * config/i386/knetbsd-gnu.h: New. Ditto for i386-knetbsd-gnu.
1006
1007         * config/kfreebsdgnu.h: Remove.
1008         * config/t-kfreebsd-gnu: Likewise.
1009         * config/i386/kfreebsdgnu.h: Likewise.
1010
1011 2004-06-23  Eric Christopher  <echristo@redhat.com>
1012
1013         * fold-const.c (make_range): Cleanup type checking through function.
1014         Remove orig_type. Replace with checks to exp_type and arg0_type.
1015         Clarify comment when converting from unsigned to signed.
1016
1017 2004-06-23  Eric Christopher  <echristo@redhat.com>
1018
1019         * config/mips/mips.c (mips_use_dfa_pipeline_interface): Add R3000.
1020         * config/mips/mips.md: Remove R3000 scheduling description.
1021         * config/mips/3000.md: New file.
1022
1023 2004-06-23  Ulrich Weigand  <uweigand@de.ibm.com>
1024
1025         * config/s390/s390-protos.h (s390_emit_compare): Add prototype.
1026         (s390_emit_jump): Likewise.
1027         * config/s390/s390.c (s390_emit_compare): New function.
1028         (s390_emit_jump): Likewise.
1029         * config/s390/s390.md ("beq", "bne", "bgt", "bgtu", "blt", "bltu",
1030         "bge", "bgeu", "ble", "bleu", "bunordered", "bordered", "buneq",
1031         "bungt", "bunlt", "bunge", "bunle", "bltgt"): Use s390_emit_compare
1032         and s390_emit_jump.
1033         ("cjump"): Remove, replace by ...
1034         ("*cjump_64", "*cjump_31"): ... these insns.  Improve length default.
1035         ("icjump", "*icjump_64", "*icjump_31"): Likewise.
1036         ("trap"): Fix type attribute.
1037         ("conditional_trap"): Use s390_emit_compare.
1038         ("doloop_si"): Remove, replace by ...
1039         ("doloop_si64", "doloop_si31"): ... these new insn_and_split.
1040         Merge existing splitter into insn_and_split.  Improve length default.
1041         ("doloop_di"): Merge with existing splitter into insn_and_split.
1042         ("doloop"): Adapt.
1043         ("jump"): Convert to expander.  Use s390_emit_jump.
1044         ("*jump_64", "*jump_31"): New insns.  Improve length default.
1045
1046 2004-06-23  Wu Yongwei  <adah@sh163.net>
1047
1048         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
1049         (__gthr_i486_lock_cmp_xchg): New inline assembly function.
1050         (__GTHR_W32_InterlockedCompareExchange): New macro to choose a
1051         suitable function for interlocked compare-and-exchange.
1052         (__gthread_mutex_trylock): Use
1053         __GTHR_W32_InterlockedCompareExchange.
1054         (__gthread_mutex_init_function, __gthread_mutex_lock,
1055         __gthread_mutex_trylock, __gthread_mutex_unlock): Adjust the
1056         initial counter value to work correctly under Windows 95.
1057         * config/i386/gthr-win32.c: Adjust include order.
1058         Define __GTHREAD_I486_INLINE_LOCK_PRIMITIVES before including
1059         gthr-win32.h.
1060         (__gthr_win32_mutex_init_function, __gthr_win32_mutex_lock,
1061         __gthr_win32_mutex_trylock, __gthr_win32_mutex_unlock): Adjust
1062         to match inline versions in gthr-win32.h.
1063
1064 2004-06-23  David Edelsohn  <edelsohn@gnu.org>
1065
1066         * config/rs6000/rs6000.c (rs6000_use_dfa_pipeline_interface): Delete.
1067         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Redefine a hook_int_void_1.
1068         (insvdi_rshift_rlwimi_p): New function.
1069         * config/rs6000/rs6000.md (insvdi_internal2/3): New patterns.
1070         (extendsfdf2): Convert to define_insn_and_split.
1071         * config/rs6000/rs6000-protos.h (insvdi_rshift_rlwimi_p): Prototype.
1072
1073 2004-06-23  Andrew Pinski  <apinski@apple.com>
1074
1075         * c-typeck.c (composite_type, <case ARRAY_TYPE>): Abort if we have
1076         type qualifiers at all.
1077         If both of the type domains are null and the new element type is
1078         the same as one of the, return the one which the element type.
1079         matches.
1080         Do not call qualify_type on the new type.
1081
1082 2004-06-23  Ulrich Weigand  <uweigand@de.ibm.com>
1083
1084         * config/s390/s390.h (DEFAULT_MAIN_RETURN): Remove.
1085
1086 2004-06-23  Roger Sayle  <roger@eyesopen.com>
1087
1088         * convert.c (strip_float_extension): Skip both NOP_EXPR and
1089         CONVERT_EXPR floating point extensions.
1090
1091 2004-06-23  Diego Novillo  <dnovillo@redhat.com>
1092
1093         * Makefile.in (tree-vn.o): New.
1094         (tree-ssa-pre.o): Don't depend on RTL_H.
1095         * tree-dfa.c (find_referenced_vars): Don't call init_tree_ssa.
1096         * tree-flow.h (struct var_ann_d): Remove field expr_set.
1097         (add_to_value, expressions_equal_p, get_value_handle, vn_compute,
1098         vn_lookup_or_add, vn_add, vn_lookup, vn_init, vn_delete): Declare.
1099         * tree-optimize.c (execute_init_datastructures): New local function.
1100         (pass_init_datastructures): New local variable.
1101         (init_tree_optimization_passes): Sequence pass_init_datastructures.
1102         * tree-pretty-print.c (MASK_POINTER): Remove.
1103         (dump_generic_node): Handle VALUE_HANDLE.
1104         * tree-ssa-pre.c: Move all value numbering routines to tree-vn.c.
1105         Update callers to use new function names.
1106         Use VALUE_HANDLE_ID and VALUE_HANDLE_EXPR_SET instead of
1107         variable annotations.
1108         * tree-ssa.c (init_tree_ssa): Call vn_init.
1109         (delete_tree_ssa): Call vn_delete.
1110         * tree-vn.c: New file.
1111         * tree.c (tree_size): Handle VALUE_HANDLE.
1112         (tree_node_structure): Likewise.
1113         (iterative_hash_expr): Likewise.
1114         * tree.def (VALUE_HANDLE): New code.
1115         * tree.h (struct tree_value_handle): New.
1116         (VALUE_HANDLE_ID): Define.
1117         (VALUE_HANDLE_EXPR_SET): Define.
1118         (enum tree_node_structure_enum): Add TS_VALUE_HANDLE.
1119         (union tree_node): Add struct tree_value_handle.
1120
1121 2004-06-23  Andrew Pinski  <apinski@apple.com>
1122
1123         * c-typeck.c (composite_type):
1124         <case POINTER_TYPE>: Build a qualified type of
1125         the new type.
1126         <case ARRAY_TYPE>: Likewise.
1127         <case FUNCTION_TYPE>: Likewise.
1128
1129 2004-06-23  Pat Haugen  <pthaugen@us.ibm.com>
1130
1131         PR optimization/15633
1132         * value-prof.c (divmod_fixed_value_transform): Compute probability
1133         of taking optimal path and pass along to gen_ routine.
1134         (mod_pow2_value_transform): Same.
1135         (mod_subtract_transform): Same.
1136         (gen_divmod_fixed_value): Add new probability parameter.
1137         Add probability to newly created jump.
1138         (gen_mod_pow2): Same.
1139         (gen_mod_subtract): Same.
1140
1141 2004-06-23  Richard Earnshaw  <rearnsha@arm.com>
1142
1143         * PR target/15948
1144         * arm.md (bicsi3_cbranch): Add alternative to handle tying operands
1145         one and two.
1146
1147 2004-06-23  Richard Earnshaw  <rearnsha@arm.com>
1148
1149         PR target/15927
1150         * arm.h (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Don't need a secondary
1151         reload if CLASS is BASE_REGS.
1152
1153 2004-06-23  Richard Sandiford  <rsandifo@redhat.com>
1154
1155         * gengtype-yacc.y (option): Avoid use of non-constant struct
1156         initializer.
1157
1158 2004-06-23  Nathan Sidwell  <nathan@codesourcery.com>
1159
1160         * doc/extend.texi (Function Attributes): Alphabetize.
1161
1162 2004-06-23  Richard Henderson  <rth@redhat.com>
1163
1164         * c-gimplify.c (gimplify_decl_stmt): Update gimplify_type_sizes call.
1165         Use gimplify_and_add.
1166         * c-typeck.c (c_finish_if_stmt): Use NULL instead of empty stmt.
1167         * gimplify.c (build_and_jump, gimplify_exit_expr,
1168         gimplify_init_constructor, gimplify_save_expr, gimple_push_cleanup,
1169         gimplify_stmt, gimplify_expr): Likewise.
1170         (shortcut_cond_expr): Handle NULL arms of COND_EXPR.
1171         (gimplify_statement_list): Remove NULL entries.
1172         (gimplify_to_stmt_list): Handle NULL results.
1173         (gimplify_type_sizes): Add list_p argument.
1174         (gimplify_one_sizepos): Don't use internal pre/post queue.
1175         * tree-gimple.h (gimplify_type_sizes): Update.
1176
1177 2004-06-22  Eric Christopher  <echristo@redhat.com>
1178
1179         * config/rs6000/rs6000.md (*insvsi_internal5/6): New patterns.
1180
1181 2004-06-22  Pat Haugen  <pthaugen@us.ibm.com>
1182
1183         * cfghooks.c (make_forwarder_block): Decrement count on fallthru edge
1184         when redirecting back edges.
1185
1186         * cfghooks.c (split_block): Call make_single_succ_edge so that edge
1187         count/probability are set correctly.
1188
1189 2004-06-22  Richard Henderson  <rth@redhat.com>
1190
1191         * c-typeck.c (emit_side_effect_warnings): Ignore error marks.
1192         (c_finish_stmt_expr): Likewise.
1193
1194         * config/i386/i386.c (TARGET_STRUCT_VALUE_RTX): New.
1195         (ix86_return_in_memory): Move SSE vector return warning ...
1196         (ix86_struct_value_rtx): ... here.  New.
1197
1198 2004-06-22  Richard Henderson  <rth@redhat.com>
1199
1200         * tree.def (VTABLE_REF): Remove.
1201         (OBJ_TYPE_REF): New.
1202         (TRY_CATCH_EXPR, TRY_FINALLY_EXPR): Set type 's'.
1203         * expr.c (expand_expr_real_1): Replace VTABLE_REF with OBJ_TYPE_REF.
1204         * fold-const.c (non_lvalue): Likewise.
1205         * gimplify.c (gimplify_expr): Likewise.
1206         (gimplify_call_expr): Use is_gimple_call_addr.
1207         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): New.
1208         * langhooks.h (fold_obj_type_ref): New.
1209         * tree-gimple.c (is_gimple_call_addr): New.
1210         * tree-gimple.h (is_gimple_call_addr): Declare.
1211         * tree-inline.c (inlinable_function_p): Fix merge error.
1212         (estimate_num_insns_1): Replace VTABLE_REF with OBJ_TYPE_REF.
1213         * tree-pretty-print.c (dump_generic_node): Likewise.
1214         (print_call_name): Handle OBJ_TYPE_REF.
1215         * tree-ssa-ccp.c (fold_stmt): Fold OBJ_TYPE_REF.
1216         * tree-ssa-operands.c (get_expr_operands): Handle OBJ_TYPE_REF.
1217         * tree.h (OBJ_TYPE_REF_EXPR): New.
1218         (OBJ_TYPE_REF_OBJECT, OBJ_TYPE_REF_TOKEN): New.
1219         * doc/c-tree.texi (VTABLE_REF): Remove.
1220         * objc/objc-act.c (build_objc_method_call): Build an OBJ_TYPE_REF.
1221
1222 2004-06-22  Richard Henderson  <rth@redhat.com>
1223
1224         PR middle-end/16026
1225         * function.c (assign_parms): Don't abort for overaligned PARALLEL.
1226
1227 2004-06-22  Joseph S. Myers  <jsm@polyomino.org.uk>
1228
1229         * Makefile.in (distclean): Don't try to remove empty directories.
1230
1231 2004-06-22  Richard Sandiford  <rsandifo@redhat.com>
1232
1233         PR target/15869
1234         * config/mips/mips.c (mips_avoid_hazards): Call split_all_insns_noflow.
1235
1236 2004-06-22  Alexandre Oliva  <aoliva@redhat.com>
1237
1238         * config/mn10300/mn10300.md (movdi, movdf): Use high/low for movu
1239         operands.
1240
1241 2004-06-22  Dale Johannesen  <dalej@apple.com>
1242
1243         * config/rs6000/rs6000.c (legitimate_offset_address_p): Make
1244         global, rename rs6000_legitimate_offset_address_p.
1245         (rs6000_legitimate_address_p): Adjust calls to it.
1246         (lmw_operation): Ditto.
1247         (stmw_operation): Ditto.
1248         * config/rs6000/rs6000-protos.h: Declare it.
1249         * config/rs6000/rs6000.md (*movdf_hardfloat32): Use it
1250         instead of offsettable_memref_p.
1251
1252 2004-06-22  Dale Johannesen  <dalej@apple.com>
1253
1254         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
1255         [reg+reg] mode for TFmode memory accesses.
1256         (rs6000_eliminate_indexed_memrefs): New.
1257         (rs6000_emit_move): Call preceding for TImode and TFmode.
1258
1259 2004-06-22  Paolo Bonzini  <bonzini@gnu.org>
1260
1261         * tree-cfg.c (pass_warn_function_return): It needs
1262         CFG, not SSA.
1263
1264 2004-06-22  Nathan Sidwell  <nathan@codesourcery.com>
1265
1266         * doc/invoke.texi (Machine Dependent Options): Alphabetize.
1267         (Submodel Options): Likewise.
1268
1269 2004-06-21  Andrew Pinski  <apinski@apple.com>
1270
1271         Radar #: 3701874
1272         * c-decl.c (push_file_scope): Return early if we already
1273         have a file scope.
1274
1275 2004-06-21  Geoffrey Keating  <geoffk@apple.com>
1276
1277         * c-opts.c (c_common_handle_option): Handle -fpch-preprocess.
1278         * c-common.h (flag_pch_preprocess): Declare.
1279         (c_common_pch_pragma): Likewise.
1280         * c-common.c (flag_pch_preprocess): New.
1281         * c-pch.c (c_common_read_pch): Support -fpreprocess-only.
1282         (c_common_pch_pragma): New.
1283         * c-ppoutput.c (cb_read_pch): New.
1284         (init_pp_output): Support -fpch-preprocess.
1285         * c-pragma.c (init_pragma): Support #pragma GNUC pch_preprocess.
1286         * c.opt (fpch-preprocess): New.
1287         * gcc.c (cpp_options): When save-temps, pass -fpch-preprocess.
1288         * doc/cppopts.texi: Document -fpch-preprocess.
1289         * doc/invoke.texi (Precompiled Headers): Mention that
1290         -fpreprocessed is safe for PCH.  Mention that if an option is
1291         listed as safe that doesn't mean it does what you expect.
1292
1293 2004-06-22  Ben Elliston  <bje@au.ibm.com>
1294
1295         * tree-ssa.c (ssa_redirect_edge): Correct leading comment.
1296
1297 2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1298
1299         * Makefile.in (gimplify.o): Add cgraph.h.
1300         * alias.c (adjust_offset_for_component_ref): Use
1301         component_ref_field_offset.
1302         * c-decl.c (build_array_declarator): Add news args for ARRAY_REF.
1303         * c-gimplify.c (gimplify_expr_stmt): Use alloc_stmt_list.
1304         (gimplify_decl_stmt): Call gimplify_type_sizes for type.
1305         For decl, call gimplify_one_sizepos and use statement list.
1306         (gimplify_compound_literal_expr): New arg PRE_P.
1307         Add statement to PRE_P list and return DECL.
1308         (c_gimplify_expr, case COMPOUND_LITERAL_EXPR): Add arg to
1309         gimplify_compound_literal_expr.
1310         * c-tree.h (getdecls): Deleted.
1311         * c-typeck.c (build_component_ref): Add operand for COMPONENT_REF.
1312         (build_array_ref): Add two operands for ARRAY_REF.
1313         (build_unary_op): Set TREE_INVARIANT and TREE_CONSTANT for
1314         COMPOUND_LITERAL_EXPR.
1315         * coverage.c (tree_coverage_counter_ref): Add new operands
1316         for ARRAY_REF.
1317         * emit-rtl.c (component_ref_for_mem_expr): Add new operand
1318         for COMPONENT_REF.
1319         (set_mem_attributes_minus_bitpos): Use array_ref_low_bound
1320         and array_ref_element_size.
1321         (widen_memory_access):Use component_ref_field_offset.
1322         * explow.c (update_nonlocal_goto_save_area): Add two operands
1323         for ARRAY_REF.
1324         * expr.c (array_ref_element_size, array_ref_low_bound): New functions.
1325         (component_ref_field_offset): Likewise.
1326         (get_inner_reference): Use them.
1327         (expand_expr_real_1, case ARRAY_REF): Use array_ref_low_bound.
1328         * fold-const.c (fold, case EQ_EXPR): Properly handle DECL_SIZE.
1329         (fold_read_from_constant_string): Use array_ref_low_bound.
1330         Verify that result is a character type.
1331         (build_fold_indirect_ref): Add two operands for ARRAY_REF.
1332         * function.c (expand_function_start): Likewise.
1333         * gimple-low.c (expand_var_p): Delete duplicated line.
1334         * gimplify.c: Add static decls for local functions.
1335         (cgraph.h): Now included.
1336         (create_tmp_var): Remove check for ARRAY_TYPE.
1337         (copy_if_shared_r): Look at bounds and sizes of types.
1338         (build_and_jump): Return alloc_stmt_list instead of build_empty_stmt.
1339         (gimplify_exit_expr, shortcut_cond_expr): Likewise.
1340         (gimplify_save_expr, gimple_push_cleanup): Likewise.
1341         (gimplify_init_constructor): Likewise.
1342         WANT_VALUE now bool.
1343         If empty list with no result wanted, return GS_UNHANDLED.
1344         Add additional operands for ARRAY_REF and COMPONENT_REF.
1345         (canonicalize_component_ref): Convert to &array[L].
1346         (gimplify_array_ref_to_plus): Use array_ref_element_size and
1347         array_ref_lower_bound.
1348         (build_addr_expr_with_type, build_addr_expr): New functions.
1349         (gimplify_compound_lval): WANT_LVALUE now bool.
1350         Major rework to allow handle_component_p and initialize and
1351         gimplify new operands for ARRAY_REF, ARRAY_RANGE_REF, and
1352         COMPONENT_REF.
1353         (gimplify_array_ref): Deleted.
1354         (gimplify_self_mod_expr): WANT_VALUE now bool.
1355         (gimplify_modify_expr): Gimplify to_p and from_p later.
1356         Factor out code into gimplify_modify_expr_rhs and call twice.
1357         Move variable-size code earlier and handle PLACEHOLDER_EXPR.
1358         (gimplify_modify_expr_rhs, gimplify_variable_sized_compare): New fns.
1359         (gimplify_addr_expr, case VIEW_CONVERT_EXPR): New case.
1360         (gimplify_expr, case ARRAY_REF): Delete special case.
1361         Instead handle like COMPONENT_REF; also do ARRAY_RANGE_REF,
1362         IMAGPART, and REALPART the same way.
1363         (gimplify_expr, case VIEW_CONVERT_EXPR): New case.
1364         (gimplify_expr): Call gimplify_variable_sized_compare if applicable.
1365         Call alloc_stmt_list instead of build_empty_stmt.
1366         Deal with _REF that's volatile.
1367         (gimplify_type_sizes, gimplify_one_sizepos): New functions.
1368         (unshare_body, unvisit_body): New functions.
1369         (gimplify_body): Call them.
1370         * stmt.c (expand_stack_alloc): Don't expand TYPE_MAX_VALUE.
1371         * stor-layout.c (get_pending_sizes): Don't change SAVE_EXPR_CONTEXT.
1372         * tree-alias-common.c (get_alias_var): Also skip ARRAY_RANGE_REF.
1373         * tree-cfg.c (tree_node_can_be_shared): Treat ARRAY_RANGE_REF
1374         like ARRAY_REF.
1375         (verify_expr, case ADDR_EXPR): Use handled_component_p.
1376         * tree-dfa.c (get_virtual_var): Likewise.
1377         * tree-dump.c (dequeue_and_dump, case COMPONENT_REF, ARRAY_REF):
1378         New cases to dump new operands; likewise for ARRAY_RANGE_REF.
1379         * tree-eh.c (tree_could_trap, case ARRAY_RANGE_REF): Like ARRAY_REF.
1380         * tree-gimple.c (is_gimple_addr_expr_arg): Add ARRAY_RANGE_REF
1381         and INDIRECT_REF.
1382         (get_base_address): Use handled_component_p.
1383         * tree-gimple.h (gimplify_type_sizes, gimplify_one_sizepos): New.
1384         * tree-inline.c (walk_tree): Walk more things for types and decls.
1385         * tree-mudflap.c (mf_build_check_statement_for): Add new operands
1386         for ARRAY_REF and COMPONENT_REF.
1387         (mx_xform_derefs_1): Clean up usage of decl sizes.
1388         * tree-nested.c (build_addr): Use handled_component_p.
1389         (walk_stmts, case CATCH_EXPR): Add missing "break".
1390         (get_static_chain, get_frame_field): Add new operand for COMPONENT_REF.
1391         (finalize_nesting_tree_1): Likewise.
1392         (convert_nonlocal_reference, case ARRAY_RANGE_REF): Like ARRAY_REF
1393         and process additional operands.
1394         (convert_local_reference): Likewise.
1395         * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Treat
1396         ARRAY_RANGE_REF similarly to ARRAY_REF.
1397         * tree-pretty-print.c (dump_generic_node, case QUAL_UNION_TYPE): Handle
1398         like RECORD_TYPE.
1399         (dump_generic_node, case COMPONENT_REF): Print offset operand.
1400         (dump_generic_node, case ARRAY_RANGE_REF): Treat like ARRAY_REF
1401         and print lower bound and element size for both.
1402         (op_prio, case ARRAY_RANGE_REF): Like ARRAY_REF.
1403         * tree-sra.c (csc_build_component_ref): Add new operand.
1404         (scalarize_call_expr): Use get_base_address.
1405         * tree-ssa-ccp.c (widen_bitfield): Clean up size handling.
1406         (maybe_fold_offset_to_array_ref): Rework to handle input having an
1407         ARRAY_REF, refine handling of lower bound, and add new operands
1408         for ARRAY_REF.
1409         (maybe_fold_to_component_ref): Add new operand for COMPONENT_REF.
1410         (maybe_fold_stmt_indirect): Only fold *&B to B if types match.
1411         (maybe_fold_stmt_addition): Only handle constant lower bound.
1412         * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
1413         Treat ARRAY_REF and ARRAY_RANGE_REF the same; look at extra operands.
1414         Look at new offset operand of COMPONENT_REF.
1415         * tree-ssa.c (set_is_used): Use handled_component_p.
1416         * tree.c (substitute_in_expr, case COMPONENT_REF): Add new operand.
1417         (stabilize_reference, case COMPONENT_REF): Likewise.
1418         (stabilize_reference, case ARRAY_RANGE_REF, ARRAY_REF): Similarly.
1419         (recompute_tree_invariant_for_addr_expr): Completely rework to
1420         be more precise.  Also set TREE_SIDE_EFFECTS.
1421         (build1_stat, case ARRAY_EXPR): Don't handle TREE_SIDE_EFFECTS here.
1422         (build2_stat, build3_stat, build4_stat): For references,
1423         propagate TREE_THIS_VOLATILE.
1424         (get_unwidened): Add new operand for COMPONENT_REF.
1425         (get_narrower): Likewise; use host_integerp for DECL_SIZE.
1426         * tree.def (COMPONENT_REF): Add new operand.
1427         (ARRAY_REF, ARRAY_RANGE_REF): Add two new operands.
1428         * tree.h (array_ref_element_size, array_ref_low_bound): New decls.
1429         (component_ref_field_offset): Likewise.
1430         * config/alpha/alpha.c (alpha_va_start): Add new op for COMPONENT_REF.
1431         (alpha_gimplify_va_arg): Likewise.
1432         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
1433         * config/i860/i860.c (i860_va_start, i860_va_arg): Likewise.
1434         * config/iq2000/iq2000.c (iq2000_va_arg): Likewise.
1435         * config/mips/mips.c (mips_va_start, mips_va_arg): Likewise.
1436         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
1437         Likewise.
1438         * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
1439         * config/sh/sh.c (sh_va_start, sh_va_arg): Likewise.
1440         * config/stormy16/stormy16.c (xstormy1_expand_builin_va_start):
1441         Likewise.
1442         (xstormy16_expand_builtin_va_arg): Likewise.
1443         * config/xtensa/xtensa.c (xtensa_va_start, xtensa_va_arg): Likewise.
1444         * objc/objc-act.c (generate_static_references): Likewise.
1445         (generate_strings, build_method_prototype_list_template): Likewise.
1446         (generate_protocol_list): Likewise.
1447
1448 2004-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1449
1450         PR rtl-optimization/14782
1451         * pa.c (emit_move_sequence): Use SFmode for 4-byte modes when doing
1452         the address checks for secondary reloads for loads from and stores
1453         to floating-point registers.
1454         * pa.h (EXTRA_CONSTRAINT, case T): Use SFmode for 4-byte modes
1455         in the address check.  Move work around for ELF32 targets to
1456         GO_IF_LEGITIMATE_ADDRESS.
1457         (GO_IF_LEGITIMATE_ADDRESS): Require constant offsets to be
1458         correctly aligned for DImode loads and stores.  Don't allow long
1459         SFmode displacements on ELF32.
1460
1461 2004-06-21  Richard Henderson  <rth@redhat.com>
1462
1463         PR rtl-opt/16114
1464         * cse.c (merge_equiv_classes): Also rehash in response to
1465         delete_reg_equiv changes.
1466         (rehash_using_reg): Don't exclude REGs from rehashing.
1467
1468 2004-06-21  Richard Henderson  <rth@redhat.com>
1469
1470         * c-common.def (RETURN_STMT): Remove.
1471         * c-common.h (RETURN_STMT_EXPR): Remove.
1472         (c_expand_return, build_return_stmt): Remove.
1473         (c_common_stmt_codes): Remove RETURN_STMT.
1474         * c-dump.c (dump_next_stmt): Remove.
1475         (c_dump_tree): Remove RETURN_STMT.
1476         * c-decl.c (finish_function): Use c_finish_return.
1477         * c-parse.in (stmt): Likewise.
1478         * c-gimplify.c (gimplify_return_stmt): Remove.
1479         (c_gimplify_expr): Remove RETURN_STMT.
1480         * c-pretty-print.c (pp_c_statement): Likewise.
1481         * c-semantics.c (build_return_stmt): Remove.
1482         * c-tree.h (c_finish_return): Declare.
1483         * c-typeck.c (c_finish_return): Rename from c_expand_return.
1484         Return void.  Build RETURN_EXPR directly.
1485         * tree-dump.h (dump_next_stmt): Remove.
1486
1487 2004-06-21  Zack Weinberg  <zack@codesourcery.com>
1488
1489         * c-decl.c (start_function): Don't call make_decl_rtl.  Don't
1490         look at TREE_ADDRESSABLE of symbol name.
1491
1492 2004-06-21  Kelley Cook  <kcook@gcc.gnu.org>
1493
1494         PR target/15551
1495         * config/i386/i386.md: Change UNSPEC_STACK_PROBE to UNSPECV_STACK_PROBE.
1496         (allocate_stack_worker): Make unspec_volatile.
1497         (allocate_stack_worker_rex64):  Likewise.
1498         (allocate_stack_worker_postreload):  Likewise.
1499         (allocate_stack_worker_rex64_postreload):  Likewise.
1500
1501 2004-06-21  Daniel Berlin  <dberlin@dberlin.org>
1502
1503         Fix PR optimization/15982
1504         * tree-ssa-pre.c: Update a few comments and todos to
1505         reflect constants change.
1506         (get_value_handle): Constants now value number to themselves.
1507         (lookup): Constants lookup to themselves.
1508         (add_to_value): Adjust to always be on.
1509         (set_contains_value): Adjust for constants change.
1510         (find_leader): Ditto.
1511         (phi_translate): 'r' nodes are never ANTIC right now.
1512         (valid_in_set): Ditto.
1513         (get_expr_set): New function.
1514         (find_or_generate_expression): New function, broken out from
1515         insert_aux.
1516         (create_expression_by_pieces): Ditto, plus additional
1517         machinery to handle complex values.
1518         (compute_avail): Remove dead RETURN_EXPR handling.
1519
1520 2004-06-21  Steven Bosscher  <stevenb@suse.de>
1521
1522         * config/i386/i386.c: Include insn-codes.h
1523         * config/i386/i386.h (FLAGS_REG, FPSR_REG, DIRFLAG_REG): Don't
1524         define here.
1525         * config/i386/i386.md (BP_REG, SP_REG, FLAGS_REG, FPSR_REG,
1526         DIRFLAG_REG): New define_constants.  Use them everywhere.
1527
1528 2004-06-21  Kaz Kojima  <kkojima@gcc.gnu.org>
1529
1530         * config/sh/t-linux (MULTILIB_OPTIONS): Remove.
1531
1532 2004-06-21  J"orn Rennecke <joern.rennecke@superh.com>
1533
1534         * sh.h (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4): Conditionally define.
1535         (SUPPORT_SH4_SINGLE): Likewise.
1536         (TARGET_SWITCHES): Break out switches for cpu subtargets:
1537         (TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E): Define.
1538         (TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E): Likewise.
1539         (TARGET_SWITCH_SH4_SINGLE_ONLY, TARGET_SWITCH_SH4_SINGLE): Likewise.
1540         (TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4): Likewise.
1541         (TARGET_SWITCH_SH5_64MEDIA, TARGET_SWITCH_SH5_64MEDIA_NOFPU): Likewise.
1542         (TARGET_SWITCHES_SH5_32MEDIA): Likewise.
1543         (TARGET_SWITCHES_SH5_32MEDIA_NOFPU): Likewise.
1544         (SELECT_SH5_64, SELECT_SH5_64_NOFPU): Rename to:
1545         (SELECT_SH5_64MEDIA, SELECT_SH5_64MEDIA_NOFPU)
1546         (SELECT_SH5_32, SELECT_SH5_32_NOFPU): Rename to:
1547         (SELECT_SH5_32MEDIA, SELECT_SH5_32MEDIA_NOFPU).
1548         (SH_MULTILIB_CPU_DEFAULT, MULTILIB_DEFAULTS): Define.
1549         (ASM_ISA_SPEC_DEFAULT, ASM_ISA_DEFAULT_SPEC): Likewise.
1550         * sh64.h (ASM_SPEC, LINK_DEFAULT_CPU_EMUL): Don't redefine.
1551         (TARGET_DEFAULT): Likewise.
1552         * config/sh/t-elf: Amend comment.
1553         * config/sh/t-1e, config/sh/t-mlib-sh1: New files.
1554         * config/sh/t-mlib-sh2, config/sh/t-mlib-sh2e: Likewise.
1555         * config/sh/t-mlib-sh3, config/sh/t-mlib-sh3e: Likewise.
1556         * config/sh/t-mlib-sh4, config/sh/t-mlib-sh4-nofpu: Likewise.
1557         * config/sh/t-mlib-sh4-single: Likewise.
1558         * config/sh/t-mlib-sh4-single-only: Likewise.
1559         * config/sh/t-mlib-sh5-32media: Likewise.
1560         * config/sh/t-mlib-sh5-32media-nofpu: Likewise.
1561         * config/sh/t-mlib-sh5-64media: Likewise.
1562         * config/sh/t-mlib-sh5-64media-nofpu: Likewise.
1563         * config/sh/t-mlib-sh5-compact: Likewise.
1564         * config/sh/t-mlib-sh5-compact-nofpu: Likewise.
1565         * config/sh/t-sh: (MULTILIB_ENDIAN): Add mb.
1566         (MULTILIB_CPUS): Define.
1567         (MULTILIB_OPTIONS): Use MULTILIB_CPUS.
1568         (MULTILIB_MATCHES): Use some shell code to calculate it.
1569         (MULTILIB_EXCEPTIONS): Change to ml/m1.
1570         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Use ASM_ISA_DEFAULT_SPEC.
1571         * config/sh/netbsd-elf.h: Update code which sets TARGET_VERSION_CPU.
1572         (LINK_DEFAULT_CPU_EMUL): Don't redefine.
1573         (NO_PROFILE_COUNTERS): Define to 1.
1574         * config/sh/t-netbsd (MULTILIB_OPTIONS): Don't append to.
1575         (MULTILIB_DIRNAMES, MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap.
1576         * config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Don't redefine.
1577         (MULTILIB_MATCHES): Don't zap.
1578         (MULTILIB_DIRNAMES): Use MULTILIB_RAW_DIRNAMES.
1579         * config/sh/t-sh64 (MULTILIB_OPTIONS): Don't redefine.
1580         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap.
1581         (MULTILIB_RAW_DIRNAMES): Define.
1582         (MULTILIB_DIRNAMES): Use it.
1583         * config.gcc: Also set cpu_type / need_64bit_hwint for sh[be]*-*-*.
1584         (sh*linux configurations): Merge into:
1585         (sh*elf / sh*kaos configurations).  Support --with-endian, --with-cpu,
1586         --with-multilib-list options.  Support sh-superh-elf configuration.
1587         (sh*-netbsd*): Use SELECT_SH* macros.
1588         (supported_defaults): sh[123456ble]-*-* | sh-*-* support "cpu".
1589         Merge sh*-*-netbsd* configurations into sh-elf configurations.
1590         * config/sh/t-netbsd-sh5, config/sh/t-be, config/sh/t-le: Delete.
1591         * config/sh/t-monolib: Likewise.
1592
1593 2004-06-21  Paul Brook  <paul@codesourcery.com>
1594
1595         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Soft-float need
1596         not imply FPA.
1597
1598 2004-06-21  Roger Sayle  <roger@eyesopen.com>
1599
1600         * fold-const.c (operand_equal_p): Pass flags in recursive calls for
1601         binary and relational operations.  Add support for TRUTH_ANDIF_EXPR,
1602         TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR.
1603         * tree.c (commutative_tree_code): Also list UNORDERED_EXPR,
1604         ORDERED_EXPR, UNEQ_EXPR, LTGT_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR
1605         and TRUTH_XOR_EXPR.
1606
1607 2004-06-21  Paolo Bonzini  <bonzini@gnu.org>
1608
1609         * rtlanal.c (may_trap_p): Mark LTGT as trapping.
1610
1611 2004-06-21  Joseph S. Myers  <jsm@polyomino.org.uk>
1612
1613         * tree-alias-common.h (struct tree_alias_ops): Change ip and
1614         ip_partial to unsigned int.
1615
1616 2004-06-21  Richard Henderson  <rth@redhat.com>
1617
1618         * c-common.c (verify_sequence_points): Export.
1619         (c_expand_expr_stmt): Move to c-typeck.c.
1620         * c-common.h (c_expand_expr_stmt): Remove.
1621         (verify_sequence_points): Declare.
1622         * c-mudflap.c (mflang_flush_calls): Use c_finish_expr_stmt.
1623         * c-parse.in (for_init_stmt, stmt): Likewise.
1624         * c-tree.h (c_finish_expr_stmt): Declare.
1625         (c_tree_expr_nonnegative_p): Remove.
1626         * c-typeck.c (c_tree_expr_nonnegative_p): Remove.
1627         (build_conditional_expr, build_binary_op): Use tree_expr_nonnegative_p.
1628         (emit_side_effect_warnings): New.
1629         (c_finish_expr_stmt): Rename from c_expand_expr_stmt.  Use it.
1630         (c_finish_stmt_expr): Work without EXPR_STMT.  Handle eh regions.
1631         Use emit_side_effect_warnings.
1632         (push_cleanup): Copy STATEMENT_LIST_STMT_EXPR.
1633         * fold-const.c (tree_expr_nonnegative_p): Handle TARGET_EXPR.
1634         * gimplify.c (gimplify_modify_expr): Don't discard TARGET_EXPR
1635         with void initializer.
1636         (gimplify_target_expr): Handle void BIND_EXPR initializer.
1637         * tree-inline.c (estimate_num_insns_1): Fix type lookup for
1638         INIT_EXPR and MODIFY_EXPR.
1639         * objc/objc-act.c (build_module_descriptor): Use add_stmt
1640         instead of c_expand_expr_stmt.
1641
1642 2004-06-21  Paolo Bonzini  <bonzini@gnu.org>
1643
1644         * fold-const.c (fold_cond_expr_with_comparison):
1645         New function, extracted from fold.
1646         (fold): Extract code to fold A op B ? A : C, use
1647         it to fold A op B ? C : A.  Really optimize
1648         A & N ? N : 0 where N is a power of two.  Avoid
1649         relying on canonicalization and recursion for
1650         foldings of COND_EXPR to happen.
1651
1652 2004-06-20  David Ayers  <d.ayers@inode.at>
1653
1654         * objc/objc-act.h (get_object_reference): Rename to
1655         get_protocol_reference.
1656         (super_type): Rename to objc_super_type.
1657         (selector_type): Rename to objc_selector_type.
1658         (id_type): Rename to objc_id_type.
1659         (instance_type): Rename to objc_instance_type.
1660         (protocol_type): Rename to objc_protocol_type.
1661         (IS_ID): Update reference to id_type.
1662         * objc/objc-act.c (get_object_reference): Rename to
1663         get_protocol_reference; add documentation; update references to
1664         id_type.
1665         (lookup_method_in_protocol_list): Rename class_meth to
1666         is_class; add documentation.
1667         (finish_message_expr): Rename is_class to class_tree.
1668         (synth_module_prologue, objc_is_object_ptr, objc_build_exc_ptr,
1669         next_sjlj_build_try_catch_finally, objc_begin_catch_clause,
1670         build_next_objc_exception_stuff, get_arg_type_list,
1671         build_objc_method_call): Update references to id_type.
1672         (synth_module_prologue, build_objc_symtab_template,
1673         build_selector_reference_decl, build_selector,
1674         build_selector_translation_table, build_typed_selector_reference,
1675         get_arg_type_list, synth_self_and_ucmd_args, get_arg_type_list,
1676         synth_self_and_ucmd_args): Update references to selector_type.
1677         (build_private_template, build_ivar_reference): Update references
1678         to instance_type.
1679         (synth_module_prologue, build_protocol_reference,
1680         build_protocol_expr, start_protocol): Update references to
1681         protocol_type.
1682         (synth_module_prologue, get_arg_type_list, build_objc_method_call):
1683         Update references to super_type.
1684         * c-parse.in: (typespec_nonreserved_nonattr): Update
1685         references to get_object_reference.
1686         * objc/objc-tree.def: Add C mode identifier sequence.
1687
1688 2004-06-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1689
1690         * loop-invariant.c: New file.
1691         * Makefile.in (loop-invariant.o): New.
1692         * cfgloop.h (global_cost_for_size, init_set_costs,
1693         move_loop_invariants): Declare.
1694         * cfgloopanal.c (seq_cost, init_set_costs, global_cost_for_size): New
1695         functions.
1696         (avail_regs, res_regs, small_cost, pres_cost, spill_cost): New
1697         variables.
1698         * common.opt (floop-optimize2, fmove-loop-invariants): New options.
1699         * loop-init.c (loop_optimizer_init): Call init_set_costs.
1700         * passes.c (rest_of_handle_loop2): Call move_loop_invariants.
1701         (rest_of_compilation): Check flag_loop_optimize2.
1702         * toplev.c (process_options): Handle flag_loop_optimize2.
1703         * doc/invoke.texi (-floop-optimize2, -fmove-loop-invariants): Document.
1704         * doc/passes.texi (loop-invariant.c): Document.
1705
1706 2004-06-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1707
1708         * tree-ssa-pre.c (compute_antic): Keep BB_VISITED flag zeroed.
1709
1710 2004-06-20  Richard Henderson  <rth@redhat.com>
1711
1712         * stmt.c (warn_if_unused_value): Add locus argument.
1713         * tree.h (warn_if_unused_value): Update decl.
1714         * c-typeck.c (internal_build_compound_expr): Update call.
1715         * c-gimplify.c (gimplify_expr_stmt): Likewise.
1716
1717 2004-06-20  Andrew Pinski  <pinskia@physics.uc.edu>
1718
1719         PR middle-end/16089
1720         * builtins.c (entry_of_function): Move to ...
1721         * cfgrtl.c (entry_of_function): Here and make non-static.
1722         * integrate.c (emit_initial_value_sets): Use entry_of_function.
1723         * rtl.h (entry_of_function): Prototype.
1724
1725 2004-06-20  Roger Sayle  <roger@eyesopen.com>
1726
1727         * config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3.
1728         (ix86_rtx_costs) <ASHIFT, PLUS>: Consider ix86_cost->lea even when
1729         TARGET_DECOMPOSE_LEA.
1730
1731 2004-06-20  Richard Henderson  <rth@redhat.com>
1732
1733         * c-common.h (add_decl_stmt): Move to cp-tree.h.
1734         * c-decl.c (finish_decl): Don't use add_decl_stmt.
1735         * c-parse.in: Likewise.
1736         * c-gimplify.c (gimplify_expr_stmt): Don't build CLEANUP_POINT_EXPR.
1737         (gimplify_c_loop, gimplify_return_stmt, gimplify_decl_stmt): Likewise.
1738         * c-semantics.c (add_decl_stmt): Move to cp/semantics.c.
1739
1740 2004-06-20  Richard Henderson  <rth@redhat.com>
1741
1742         * c-common.def (IF_STMT, CLEANUP_STMT): Move to cp-tree.def.
1743         * c-common.h (IF_COND, THEN_CLAUSE, ELSE_CLAUSE, CLEANUP_BODY,
1744         CLEANUP_EXPR, CLEANUP_DECL): Move to cp-tree.h.
1745         (c_common_stmt_codes): Remove IF_STMT, CLEANUP_STMT.
1746         * c-dump.c (c_dump_tree): Move IF_STMT, CLEANUP_STMT to cp_dump_tree.
1747         * c-pretty-print.c (pp_c_statement): Similarly.
1748         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts,
1749         gimplify_if_stmt): Move to cp-gimplify.c.
1750         (c_genericize, c_gimplify_expr): Don't call them.
1751         * c-semantics.c (push_cleanup): Move to cp/semantics.c.
1752         * c-typeck.c (push_cleanup): New.
1753         (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_finish_else,
1754         c_finish_if_stmt): Use COND_EXPR.
1755         * tree.h (CLEANUP_EH_ONLY): Update documentation.
1756
1757 2004-06-20  Zack Weinberg  <zack@codesourcery.com>
1758
1759         * c-common.h (has_c_linkage): New interface.
1760         * c-cppbuiltin.c: Include target.h.
1761         (c_cpp_builtins): Define __PRAGMA_REDEFINE_EXTNAME and
1762         __PRAGMA_EXTERN_PREFIX when appropriate.
1763         * c-pragma.c: Include target.h.
1764         Document clarified semantics of symbol-renaming #pragmas.
1765         (handle_pragma_redefine_extname, handle_pragma_extern_prefix)
1766         (maybe_apply_renaming_pragma): Rewrite according to clarified
1767         semantics.  Always recognize, but do not necessarily execute.
1768         (init_pragma): Unconditionally register symbol-renaming pragmas.
1769         * system.h: Poison HANDLE_PRAGMA_REDEFINE_EXTNAME
1770         and HANDLE_PRAGMA_EXTERN_PREFIX.
1771         * target.h (struct gcc_target): Add handle_pragma_redefine_extname
1772         and handle_pragma_extern_prefix flags.
1773         * target-def.h: Add defaults for TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME
1774         and TARGET_HANDLE_PRAGMA_EXTERN_PREFIX.
1775         * Makefile.in (c-pragma.o, c-cppbuiltin.o): Update dependencies.
1776         * config/sol2.h: Define TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME,
1777         not HANDLE_PRAGMA_REDEFINE_EXTNAME.
1778         (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_REDEFINE_EXTNAME.
1779         (TRANSFER_FROM_TRAMPOLINE): Prototype mprotect.
1780         * config/alpha/osf.h: Define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX,
1781         not HANDLE_PRAGMA_EXTERN_PREFIX.
1782         (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_EXTERN_PREFIX.
1783         * doc/extend.texi (Solaris Pragmas, Tru64 Pragmas): Combine
1784         into one section "Symbol-Renaming Pragmas"; clarify; document
1785         adjusted semantics.
1786
1787         * builtins.c (expand_builtin): Do not issue error for a builtin
1788         with no special case code and no DECL_ASSEMBLER_NAME; just do the
1789         library call.
1790         * c-decl.c (builtin_function): Don't call make_decl_rtl.
1791         * c-objc-common.c (has_c_linkage): Stub implementation.
1792         * cgraphunit.c (cgraph_expand_function)
1793         (cgraph_remove_unreachable_nodes): Don't clear DECL_ARGUMENTS.
1794
1795 2004-06-19  Roger Sayle  <roger@eyesopen.com>
1796
1797         * builtins.c (fold_builtin_unordered_cmp): Take an EXP argument
1798         instead of both an ARGLIST and a result TYPE.  Handle these C99
1799         comparison functions as "polymorphic" builtins.  Also handle
1800         lowering of BUILT_IN_ISUNORDERED to an UNORDERED_EXPR tree node.
1801         (fold_builtin_1): Update calls to fold_builtin_unordered_cmp.
1802         Move handling of BUILT_IN_ISUNORDERED from here to there.
1803
1804 2004-06-19  Richard Henderson  <rth@redhat.com>
1805
1806         * c-common.c, c-common.h (lang_gimplify_stmt): Remove.
1807         * c-gimplify.c: Remove unnecessary prototypes.
1808         (c_gimplify_stmt): Merge into ...
1809         (c_gimplify_expr): ... here.  Don't play with prep_stmt.
1810         * c-semantics.c (prep_stmt): Remove.
1811         * gimplify.c (annotate_one_with_locus): Break out from ...
1812         (annotate_all_with_locus): ... here.
1813         (gimplify_expr): Add locus to expressions even if pre/post queues
1814         are not present.
1815
1816 2004-06-19  Richard Henderson  <rth@redhat.com>
1817
1818         PR target/15941
1819         * function.c (assign_parms): If not padding upward or intentionally
1820         forcing upward padding, take offset_rtx into account when determining
1821         the alignment for stack_parm.
1822
1823 2004-06-19  Richard Henderson  <rth@redhat.com>
1824
1825         PR target/15550
1826         * ifcvt.c (noce_try_move): Recognize all generated instructions.
1827
1828 2004-06-19  Jan Hubicka  <jh@suse.cz>
1829
1830         * function.c (free_after_compilation): Do not free computed_goto_common*.
1831         * function.h (struct function): Kill computed_goto_common*.
1832         * stmt.c (expand_computed_goto): Do not commonize the computed gotos.
1833         * tree-cfg.c (disband_implicit_edges): Do not forward across the
1834         commonized computed goto.
1835
1836 2004-06-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1837
1838         * doc/invoke.texi: Remove obsolete comment regarding PA 2.0 support
1839         in binutils.
1840
1841 2004-06-19  Andrew Pinski  <apinski@apple.com>
1842
1843         PR c++/15721
1844         * toplev.c (wrapup_global_declarations): Do not check
1845         TREE_SYMBOL_REFERENCED of the DECL_ASSEMBLER_NAME but check
1846         cgraph_varpool_node's needed field.
1847
1848 2004-06-19  Jan Hubicka  <jh@suse.cz>
1849             Steven Bosscher  <stevenb@suse.de>
1850
1851         CFG transparent RTL expansion:
1852         * Makefile.in (cfgexpand.o): New object file.
1853         (builtins.o): Add dependency on basic-block.h
1854         * builtins.c: Include basic-block.h
1855         (entry_of_function): New function.
1856         (expand_builtin_apply_args, expand_builtin_saveargs): Use it.
1857         * cfgexpand.c: New file.
1858         * expr.c (execute_expand, pass_expand): Kill.
1859         * pass.c (rest_of_compilation): Do not build CFG unless called from
1860         coverage code.
1861         * tree-cfg.c (delete_tree_cfg): Rename to..
1862         (delete_tree_cfg_annotations): ... this one; Do not remove the CFG itself.
1863         * tree-flow.h (delete_tree_cfg_annotations): Declare.
1864         (dleete_tree_cfg): Kill.
1865         * tree-optimize.c (execute_rebuild_bind, pass_rebuild_bind): Kill.
1866         (execute_del_cfg): Rename to...
1867         (execute_free_datastructures): This one...
1868         (pass_del_cfg): Rename to...
1869         (pass_free_datastructures): ... this one; Do not kill PROP_cfg.
1870         (init_tree_optimization_passes): Make cfg build and profiling to happen
1871         unconditionally.
1872
1873 2004-06-19  Steven Bosscher  <stevenb@suse.de>
1874
1875         * tree-mudflap.c (mf_decl_cache_locals): Skip labels before
1876         inserting the cache variables.
1877
1878         * tree-mudflap.c: Include headers to make basic_block available.
1879         Move functions around such that related functions are near each
1880         other.  Add prototypes for all static functions.  Add comments
1881         briefly explaining what IR the mudflap1 and mudflap2 work on and
1882         what they do.
1883         (mudflap_function_decls): Rename to execute_mudflap_function_decls.
1884         (mudflap_function_ops): Rename to execute_mudflap_function_ops.
1885         (pass_mudflap_1, pass_mudflap_2): Update.
1886         (mf_decl_cache_locals): Make it work on the CFG instead of the saved
1887         function tree.
1888         (mf_build_check_statement_for): Make it work on the CFG.
1889         (mf_xform_derefs_1): Likewise.  Cleanup code style.
1890         (mf_xform_derefs): Likewise.
1891
1892 2004-06-19  Jan Hubicka  <jh@suse.cz>
1893
1894         * tree-cfg.c (label_to_block): Invent the label destination for
1895         undefined labels.
1896         (cleanup_dead_labels): Update table in the case label_to_block added
1897         new label.
1898
1899 2004-06-18  Richard Henderson  <rth@redhat.com>
1900
1901         PR c++/16036
1902         * gimple-low.c (lower_function_body): Generate return statement for
1903         fall off the end of the function here ...
1904         * tree-cfg.c (make_edges): ... instead of here.
1905         * gimplify.c (gimplify_return_expr): Mark return temp TREE_NO_WARNING.
1906
1907 2004-06-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1908
1909         * tree-ssa.c (raise_value): Removed.
1910         (get_eq_name, check_phi_redundancy): New functions.
1911         (kill_redundant_phi_nodes): Use standard ssa minimalization algorithm.
1912
1913 2004-06-18  Roger Sayle  <roger@eyesopen.com>
1914
1915         * fold-const.c (fold) <UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR,
1916         UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR>: Add
1917         constant folding for unordered comparison tree nodes.  If both
1918         operands are real constants, call fold_relational_const.  If either
1919         operand is a NaN, evaluate the other for side-effects and return a
1920         constant.  Optimize (double)float1 CMP (double)float2 into the
1921         equivalent float1 CMP float2.
1922         (nondestructive_fold_binary_to_constant) <UNORDERED_EXPR,
1923         ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
1924         LTGT_EXPR>: Call fold_relational_const for constant operands.
1925         (fold_relational_const): Add support for unordered comparison tree
1926         nodes.  Don't constant fold "ordered" floating point comparisons
1927         against NaN if when flag_trapping_math is set.
1928
1929 2004-06-19  Jakub Jelinek  <jakub@redhat.com>
1930
1931         * fold-const.c (build_range_check): If !in_p and recursive call
1932         fails, exit immediately.  If high - low overflows and etype is
1933         a signed type, retry with unsigned etype.
1934         (merge_ranges): If !in0_p and !in1_p, handle even range2 adjacent
1935         to range1 at TYPE_MAX_VALUE and TYPE_MIN_VALUE.
1936
1937 2004-06-18  Richard Henderson  <rth@redhat.com>
1938
1939         * c-gimplify.c (gimplify_condition): Remove.
1940         (gimplify_c_loop, gimplify_if_stmt, gimplify_switch_stmt): Don't
1941         call it.
1942
1943 2004-06-18  Richard Henderson  <rth@redhat.com>
1944
1945         * tree-eh.c (decide_copy_try_finally): Fix scaling of copy and
1946         switch estimates.
1947
1948 2004-06-18  Andrew Pinski  <pinskia@physics.uc.edu>
1949
1950         * config/i386/darwin.h (HOT_TEXT_SECTION_NAME): Define.
1951         (NORMAL_TEXT_SECTION_NAME): Define.
1952         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
1953         (SECTION_FORMAT_STRING): Define.
1954
1955 2004-06-18  Steven Bosscher  <stevenb@suse.de>
1956
1957         * config/xtensa/xtensa.c
1958         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
1959         * xtensa.md: Replace the old pipeline description with a DFA model.
1960
1961 2004-06-18  Steven Bosscher  <stevenb@suse.de>
1962             Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1963
1964         * config/s390/s390.md: Remove the generic pipeline description.
1965         * config/s390/2064.md: Make all insn reservations apply to
1966         the z900, g5 and g6.
1967         * config/s390/s390.c (s390_use_dfa_pipeline_interface): Remove.
1968         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
1969         Define to hook_int_void_1.
1970         (s390_adjust_cost): Cleanup.  Don't check address dependency here.
1971         (s390_first_cycle_multipass_dfa_lookahead): Always return 4.
1972
1973 2004-06-18  Daniel Berlin  <dberlin@dberlin.org>
1974                         Diego Novillo  <dnovillo@redhat.com>
1975
1976         * tree-dfa.c (create_var_ann): tree_ann -> tree_ann_t.
1977         (create_stmt_ann): Ditto.
1978         (create_tree_ann): New function.
1979         (create_cst_ann): Remove.
1980         (create_expr_ann): Ditto.
1981
1982         * tree-flow-inline.h (cst_ann): Remove.
1983         (get_cst_ann): Ditto.
1984         (get_expr_ann): Ditto.
1985         (expr_ann): Ditto.
1986         (get_tree_ann): New function.
1987         (tree_ann): Ditto.
1988         (ann_type): tree_ann -> tree_ann_t.
1989         * tree-flow.h (tree_ann_type): CST_ANN, EXPR_ANN removed.
1990         (struct cst_ann_d): Removed.
1991         (struct expr_ann_d): Ditto.
1992         (union tree_ann_d): Removed cst and expr.
1993         (tree_ann): Renamed to tree_ann_t.
1994         * tree-ssa-ccp.c (set_rhs): tree_ann -> tree_ann_t.
1995         * tree-ssa-pre.c (get_value_handle): Rewrite for single common
1996         annotation.
1997         (set_value_handle): Ditto.
1998         (phi_translate): Ditto.
1999         * tree-tailcall.c (adjust_return_value): tree_ann -> tree_ann_t.
2000
2001 2004-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
2002
2003         * config/sh/t-linux64: New file.
2004         * config.gcc: Add it to tmake_file for sh64*-*-linux*.
2005
2006 2004-06-18  Paolo Bonzini  <bonzini@gnu.org>
2007
2008         * emit-rtl.c (unshare_all_rtl_1): New name of unshare_all_rtl.
2009         (unshare_all_rtl_again): Call unshare_all_rtl_1.
2010         (unshare_all_rtl): New.
2011         * function.c (instantiate_virtual_regs): Remove parameters.
2012         * function.h (instantiate_virtual_regs): Add prototype.
2013         * rtl.h (unshare_all_rtl): Add prototype.
2014         * tree.h (instantiate_virtual_regs, unshare_all_rtl): Remove
2015         prototype.
2016         * passes.c: Remove assertions on the parameters to
2017         rest_of_handle_* functions.  Remove the parameters to
2018         the functions, replacing decl with current_function_decl
2019         and insns with get_insns ().
2020
2021 2004-06-17  Roger Sayle  <roger@eyesopen.com>
2022
2023         * fold-const.c (constant_boolean_node): Handle boolean_type_node
2024         directly, return either boolean_true_node or boolean_false_node.
2025
2026 2004-06-18  Kelley Cook  <kcook@gcc.gnu.org>
2027
2028         * opts.sh: Delete.  Break out generated code to next four files.
2029         * opt-gather.awk: New file.
2030         * optc-gen.awk: New file.
2031         * opth-gen.awk: New file.
2032         * opt-functions.awk: New common file.
2033         * Makefile.in: Update for above.
2034         * configure.ac: Update comment.
2035         * configure: Regenerate.
2036
2037 2004-06-17  Richard Henderson  <rth@redhat.com>
2038
2039         * c-common.c (flag_objc_sjlj_exceptions): New.
2040         * c-common.h (flag_objc_sjlj_exceptions): Declare.
2041         * c-opts.c (c_common_handle_option): Set it.
2042         (c_common_post_options): Handle interation of different
2043         objective-c exception and runtime switches.
2044         * c-decl.c (c_eh_initialized_p): New.
2045         (finish_decl): Use it instead of local eh_initialized_p.
2046         * c-parse.in (nested_function, notype_nested_function): Record
2047         the result of compstmt.
2048         (compstmt_or_error): Likewise.
2049         (compstmt): Don't add_stmt the result.
2050         (stmt): Don't return anything.  Rewrite objc try and sync rules.
2051         (objc_try_stmt, objc_catch_list): Remove.
2052         (objc_catch_block, objc_finally_block): Remove.
2053         (objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New.
2054         (objc_try_catch_clause, objc_finally_clause): New.
2055         (objc_try_catch_stmt): Rewrite.
2056         * c-tree.h (c_eh_initialized_p): Declare.
2057         * c-opt (fobjc-sjlj-exceptions): New.
2058         * except.c (output_function_exception_table): Don't call cgraph
2059         on non-decls.
2060         * objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR,
2061         UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack,
2062         catch_count_stack, exc_binding_stack, if_nesting_count,
2063         blk_nesting_count, objc_enter_block, objc_exit_block,
2064         objc_declare_variable, val_stack_push, val_stack_pop,
2065         objc_build_try_enter_fragment, objc_build_extract_expr,
2066         objc_build_try_exit_fragment, objc_build_extract_fragment,
2067         objc_build_try_prologue, objc_build_try_epilogue,
2068         objc_build_catch_stmt, objc_build_catch_epilogue,
2069         objc_build_finally_prologue, objc_build_finally_epilogue,
2070         objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
2071         objc_build_synchronized_epilogue): Remove.
2072         (objc_create_temporary_var, struct objc_try_context, cur_try_context,
2073         objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr,
2074         next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp,
2075         next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
2076         next_sjlj_build_try_catch_finally, objc_begin_try_stmt,
2077         objc_begin_catch_clause, objc_finish_catch_clause,
2078         objc_build_finally_clause, objc_finish_try_stmt,
2079         objc_build_synchronized): New.
2080         (objc_is_object_id, objc_is_class_id): New.
2081         (objc_comptypes): Use them.
2082         (build_next_objc_exception_stuff): Break NeXT sjlj out from
2083         build_objc_exception_stuff.
2084         (synth_module_prologue): Update to match.
2085         (objc_build_throw_stmt): Use cur_try_context to decide if
2086         we're in a @catch.
2087         * objc/objc-act.h: Update prototypes.
2088         (OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove.
2089
2090 2004-06-17  Andrew Pinski <apinski@apple.com>
2091
2092         * c-typeck.c (tagged_types_tu_compatible_p <case UNION_TYPE>):
2093         Use TYPE_FIELDS instead of TYPE_VALUES.
2094
2095 2004-06-17  Jason Merrill  <jason@redhat.com>
2096
2097         PR c++/16015
2098         * gimplify.c (gimplify_target_expr): Handle void initializer.
2099         * expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise.
2100         * doc/c-tree.texi (Expression trees): Update TARGET_EXPR
2101         and AGGR_INIT_EXPR.
2102
2103 2004-06-17  Roger Sayle  <roger@eyesopen.com>
2104
2105         * fold-const.c (fold_relational_const): Use constant_boolean_node.
2106
2107 2004-06-17  Jan Hubicka  <jh@suse.cz>
2108
2109         PR target/15433
2110         * i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix
2111         operand numbering in the output template.
2112         (SSE DF cmov 0 splitter): The conditional is VOIDmode.
2113
2114 2004-06-17  Jan Hubicka  <jh@suse.cz>
2115
2116         * except.c (can_throw_internal): Recognize RESX expresisons.
2117
2118 2004-06-17  Jan Hubicka  <jh@suse.cz>
2119
2120         * cfgbuild.c (make_edges): Do not use label_value_list.
2121         (find_basic_blocks_1): Do not collect label_value_list.
2122         (find_sub_basic_blocks): Update call of make_edges.
2123
2124 2004-06-17  Andrew MacLeod  <amacleod@redhat.com>
2125
2126         * tree-cfg.c (tree_make_forwarder_block):  Use SET_PHI_RESULT.
2127         * tree-flow-inline.h (get_use_op_ptr):  Return a use_operand_p.
2128         (get_use_from_ptr, get_def_from_ptr):  New.  Return operand pointers.
2129         (get_def_op_ptr):  Return a def_operand_p instead of a 'tree *'.
2130         (get_v_may_def_result_ptr):  Return a def_operand_p.
2131         (get_v_may_def_op_ptr, get_vuse_op_ptr):   Return a use_operand_p.
2132         (get_v_must_def_op_ptr):  Return a def_operand_p.
2133         (get_phi_result_ptr):  New.  Return a pointer to the result of a PHI.
2134         (get_phi_arg_def_ptr):  New.  Return a pointer to an argument of a PHI.
2135         (phi_element_for_edge):  Remove.
2136         * tree-flow.h (propagate_value, replace_exp):  Change prototype.
2137         (propagate_tree_value):  Add new prototype.
2138         (phi_element_for_edge):  Remove prototype.
2139         * tree-into-ssa.c (mark_def_sites):  Use new operand types.
2140         (prepare_operand_for_rename):  Split into two functions.
2141         (prepare_use_operand_for_rename):  Prepare use operands.
2142         (prepare_def_operand_for_rename):  Prepare def operands.
2143         (rewrite_stmt):  Use new operand types.
2144         (rewrite_operand):  Use new operand types, change parameter type.
2145         * tree-outof-ssa.c (replace_variable):  Split into two functions.
2146         (replace_use_variable):  Rewrite uses.
2147         (replace_def_variable):  Rewrite defs.
2148         (rewrite_trees, rewrite_vars_out_of_ssa):  Use new operand types.
2149         * tree-phinodes.c (make_phi_node, resize_phi_node):  Use new types.
2150         (add_phi_arg, remove_phi_arg_num):  Use new operand types.
2151         * tree-ssa-ccp.c (substitute_and_fold):  Use new operand types.
2152         (ccp_fold, replace_uses_in):  Use new operand types.
2153         * tree-ssa-copy.c (replace_ssa_names):  Rename to replace_ssa_names_ann
2154         and no longer set the value, change parameter type.
2155         (replace_exp_1):  Use new operand types.
2156         (propagate_value):  Change parameter type, use new operand types.
2157         (propagate_tree_value):  Propagate_value without SSA operands.
2158         (replace_exp, cprop_operand, cprop_into_stmt):  Use new operand types.
2159         (cprop_into_successor_phis):  Use new operand types.
2160         * tree-ssa-dom.c (thread_across_edge):  Use new operand types.
2161         (eliminate_redundant_computations):  Use new operand types.
2162         * tree-ssa-dse.c (fix_phi_uses):  Use new operand_types.
2163         (fix_stmt_v_may_defs):  Use new operand_types.
2164         * tree-ssa-live.c (create_ssa_var_map):  Use new operand_types.
2165         (build_tree_conflict_graph):  Use new operand_types.
2166         * tree-ssa-loop.c (duplicate_blocks):  Use PHI_ARG_DEF_FROM_EDGE.
2167         * tree-ssa-operands.c (struct freelist_d):  Remove.
2168         (check_optype_freelist, add_optype_freelist):  Remove.
2169         (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
2170         allocate_vuse_optype, allocate_v_must_def_optype):  Call ggc_alloc.
2171         (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
2172         Call ggc_free instead of add_optype_freelist.
2173         (init_ssa_operands, fini_ssa_operands):  Remove free list code.
2174         (finalize_ssa_defs, finalize_ssa_uses):  Set new use/def operands.
2175         * tree-ssa-operands.h (struct def_optype_d):  Change underlying type.
2176         (struct use_optype_d):  Change underlying type.
2177         (def_operand_p, use_operand_p):  New types for pointers to operands.
2178         (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP,
2179         V_MUST_DEF_OP):  Use new pointer type instead of dereferencing directly.
2180         (USE_FROM_PTR, DEF_FROM_PTR):  New macros to "dereference" operand
2181         pointer types.
2182         (SET_USE, SET_DEF):  New macros to set operands from their pointer.
2183         (SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP,
2184         SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands.
2185         (PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT):  Macros to manage the
2186         PHI result as an operand.
2187         (PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE,
2188         PHI_ARG_DEF_PTR_FROM_EDGE):  Macros to manage the PHI arguments.
2189         * tree-ssa-pre.c (eliminate):  Call propagate_tree_value.
2190         * tree-tailcall.c (independent_of_stmt_p, propagate_through_phis):  Use
2191         PHI_ARG_DEF_FROM_EDGE.
2192         * tree.h (PHI_RESULT):  Renamed to PHI_RESULT_TREE.
2193         (PHI_ARG_DEF):  Renamed to PHI_ARG_DEF_TREE.
2194
2195 2004-06-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2196
2197         PR tree-optimization/15991
2198         * tree-cfg.c (tree_block_label): Export.
2199         * tree-flow-inline.h (bsi_after_labels): New function.
2200         * tree-flow.h (bsi_after_labels, tree_block_label): Declare.
2201         * tree-ssa.c (propagate_into_addr): New function.
2202         (replace_immediate_uses): Handle propagation of pointer constants.
2203         (raise_value): Do not restrict propagation of pointer constants.
2204         * tree-ssanames.c (duplicate_ssa_name): New function.
2205         * tree.h (duplicate_ssa_name): Declare.
2206
2207 2004-06-17  David Ayers  <d.ayers@inode.at>
2208
2209         * c-parse.in: Unify Objective-C token names.
2210
2211 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
2212
2213         Bug 14610
2214         * Makefile.in (min-insn-modes.o): Correct dependencies.
2215         * real.c (encode_ieee_extended, decode_ieee_extended): Always
2216         produce/consume 12-byte little-endian Intel format.
2217         (encode_ieee_extended_128, decode_ieee_extended_128): Delete.
2218         (encode_ieee_extended_motorola, decode_ieee_extended_motorola)
2219         (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96)
2220         (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128):
2221         New functions which convert between 12-byte little-endian Intel
2222         format and the desired format.
2223         (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format)
2224         (ieee_extended_intel_96_format, ieee_extended_intel_128_format):
2225         Update.
2226
2227 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
2228
2229         * expmed.c (expand_mult_const): In sanity check, compare only
2230         the bits of val and val_so_far that are significant in the
2231         result mode.
2232
2233 2004-06-17  Daniel Berlin  <dberlin@dberlin.org>
2234
2235         * tree-ssa-pre.c:  Update comments.
2236         (val_expr_pair_eq): Factor code from here.
2237         (expr_pred_trans_eq): and here.
2238         (expressions_equal_p): To here.
2239         (print_value_set): Print value for expression.
2240         (phi_trans_lookup): Rename some variables.
2241         (lookup): Ditto.
2242         (value_exists_in_set_bitmap): Ditto.
2243         (value_remove_from_set_bitmap): Ditto.
2244         (value_insert_into_set_bitmap): Ditto.
2245
2246 2004-06-17  Ulrich Weigand  <uweigand@de.ibm.com>
2247
2248         * config/s390/s390-modes.def (CCL3mode): New machine mode.
2249         * config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode.
2250         (s390_alc_comparison, s390_slb_comparison): Likewise.
2251         (s390_branch_condition_mask): Likewise.
2252         * config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New.
2253         ("*subsi3_cc2", "*subsi3_cconly2"): New.
2254
2255         * config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and
2256         ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison.
2257         * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
2258         Handle SIGN_EXTEND and ZERO_EXTEND.
2259
2260         * config/s390/s390-protos.h (s390_expand_addcc): New prototype.
2261         * config/s390/s390.c (s390_expand_addcc): New function.
2262         * config/s390/s390.md ("adddicc", "addsicc"): New expanders.
2263         ("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns.
2264         ("sltu", "sgtu", "sleu", "sgeu"): New expanders.
2265
2266 2004-06-17  Ben Elliston  <bje@au.ibm.com>
2267
2268         * tree-alias-common.c: Add whitespace.
2269         * tree-inline.c: Correct comment about this file's purpose.
2270         * tree-optimize.c: Likewise.
2271         * tree-tailcall.c: Likewise.
2272
2273         * tree-alias-ander.h: Add standard top-of-file comment.
2274         * tree-alias-common.h: Likewise.
2275         * tree-alias-type.h: Likewise.
2276
2277 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
2278
2279         * tree-ssa-pre.c (compute_avail): Value number uses as well.
2280         Strip useless type conversions.
2281         Casts have to be treated slightly different than normal unaries.
2282
2283 2004-06-16  Richard Henderson  <rth@redhat.com>
2284
2285         * c-common.def (COMPOUND_STMT): Remove.
2286         * c-common.c (finish_fname_decls): Don't look through it.
2287         * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
2288         * c-common.h (COMPOUND_BODY): Remove.
2289         (c_common_stmt_codes): Remove COMPOUND_STMT.
2290         * c-dump.c (c_dump_tree): Likewise.
2291         * c-gimplify.c (c_gimplify_stmt): Likewise.
2292         * c-pretty-print.c (pp_c_statement): Likewise.
2293         * tree.h (DECL_SAVED_TREE): Update commentary.
2294         * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT.
2295         (CASE_LABEL_EXPR): Rename from CASE_LABEL.
2296         (GOTO_EXPR): Rename from GOTO_STMT.
2297         (GOTO_FAKE_P): Remove.
2298         (COMPOUND_STMT): Remove.
2299         (HANDLER): Update wrt COMPOUND_STMT.
2300         (STMT_EXPR): Likewise.
2301         (LABEL_EXPR): Rename from LABEL_STMT.
2302         (SCOPE_STMT): Remove.
2303         * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look
2304         through COMPOUND_STMT.
2305
2306 2004-06-16  Richard Henderson  <rth@redhat.com>
2307
2308         * c-common.h (c_begin_if_stmt, c_begin_while_stmt,
2309         c_finish_while_stmt_cond): Remove decls.
2310         * c-parse.in (if_prefix): Don't save c_begin_if_stmt result.
2311         * c-typeck.c (c_begin_if_stmt): Return void.
2312         (c_begin_else): Tidy.  Save stmt_count.
2313         * c-tree.h (c_begin_if_stmt): Update decl.
2314
2315         * objc/objc-act.c (objc_build_try_enter_fragment,
2316         objc_build_extract_fragment, objc_build_try_epilogue,
2317         objc_build_catch_stmt, objc_build_catch_epilogue,
2318         objc_build_finally_prologue, objc_build_finally_epilogue): Update
2319         for if builder function changes.
2320
2321 2004-06-16  Ulrich Weigand  <uweigand@de.ibm.com>
2322
2323         * config/s390/s390.c (struct machine_function):  New member
2324         last_restore_gpr.
2325         (s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters.
2326         Do not modify machine->save_return_addr_p or regs_ever_live.
2327         Fill in machine->last_restore_gpr.
2328         (s390_optimize_prolog): Use s390_frame_info to compute registers
2329         to save/restore, remove duplicated code.
2330         (s390_arg_frame_offset): Use s390_frame_info to compute frame
2331         size, remove duplicated code.
2332         (s390_emit_prologue): Adapt s390_frame_info call.  Update
2333         machine->save_return_addr_p and regs_ever_live.
2334         (s390_emit_epilogue): Use machine->last_restore_gpr instead of
2335         machine->last_save_gpr.
2336
2337 2004-06-16  Richard Henderson  <rth@redhat.com>
2338
2339         * c-parse.in (if_stmt_locus): Remove.
2340         (if_prefix): Increment stmt_count; pass it to c_finish_if_cond.
2341         (select_or_iter_stmt): Move empty if warnings to c-typeck.c.
2342         * c-typeck.c (if_elt): Sort by expected size.  Rename locus to
2343         empty_locus.  Add stmt_count, saw_else.
2344         (c_begin_if_stmt): Push if_stack here.
2345         (c_finish_if_cond): Rename from c_expand_end_cond.  Record stmt_count.
2346         (c_finish_then, c_finish_else): Record empty_locus.
2347         (c_begin_else): Rename from c_expand_start_else.  Record stmt_count.
2348         (c_finish_if_stmt): Rename from c_expand_end_cond.  Warn for empty
2349         if or else body.
2350         * c-tree.h: Update prototypes.
2351
2352 2004-06-16  Steven Bosscher  <stevenb@suse.de>
2353
2354         * tree.h (PHI_CHAIN): New.
2355         * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c,
2356         tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c,
2357         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c,
2358         tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
2359         tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN
2360         when traversing a list of PHI_NODEs.
2361
2362 2004-06-16  Bernardo Innocenti  <bernie@develer.com>
2363
2364         PR target/13292
2365         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
2366         on -msoft-float.
2367         (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
2368         68040 and soft-float.
2369         * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
2370         in the TARGET_68040_ONLY case.
2371
2372 2004-06-16 Peter Barada  <peter@the-baradas.com>
2373
2374         * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
2375         (movsi_cf): Make named, don't match TARGET_CFV4.
2376         (pushexthisi_const): Use mov3q if possible.
2377         (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
2378         to special case mvz.w for ColdFire V4.
2379         (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
2380         to special case mvz.b for ColdFire V4.
2381         (udivmodhi4, divmodhi4): Use mvz to zero extend arg for
2382         divide.
2383         (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
2384         * config/m68k/m68k.c(valid_mov3q_const):  New function.
2385         (const_method): SWAP is valid for ColdFire.
2386         (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
2387         * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.
2388
2389 2004-06-16  Richard Henderson  <rth@redhat.com>
2390
2391         * c-common.def (CASE_LABEL): Remove.
2392         * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL.
2393         (match_case_to_enum_1): Likewise.
2394         * c-common.h (c_common_stmt_codes): Remove CASE_LABEL.
2395         * c-dump.c (c_dump_tree): Likewise.
2396         * c-gimplify.c (c_gimplify_stmt): Likewise.
2397         * c-pretty-print.c (pp_c_statement): Likewise.
2398         * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR.
2399         * tree.h (CASE_LOW): Update commentary.
2400
2401 2004-06-16  Richard Henderson  <rth@redhat.com>
2402
2403         * c-common.def (ASM_STMT): Remove.
2404         * c-common.h (c_common_stmt_codes): Remove ASM_STMT.
2405         * c-dump.c (c_dump_tree): Likewise.
2406         * c-gimplify.c (c_gimplify_stmt): Likewise.
2407         * c-pretty-print.c (pp_c_statement): Likewise.
2408         * c-typeck.c (build_asm_expr): Use ASM_EXPR.
2409         * tree.h: Fix commentary.
2410
2411 2004-06-16  Richard Henderson  <rth@redhat.com>
2412
2413         * c-common.def (GOTO_STMT, LABEL_STMT): Remove.
2414         * c-common.c (c_add_case_label): Use LABEL_EXPR.
2415         * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove.
2416         (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT.
2417         * c-dump.c (c_dump_tree): Likewise.
2418         * c-gimplify.c (c_gimplify_stmt): Likewise.
2419         * c-pretty-print.c (pp_c_statement): Likewise.
2420         * c-parse.in (stmt): Use GOTO_EXPR.
2421         (label): Use LABEL_EXPR.
2422         * c-semantics.c (build_stmt): Set TREE_TYPE to void.
2423         * tree-inline.c (copy_body_r): Don't build empty BLOCKs.
2424
2425 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
2426
2427         * cfgcleanup.c (try_simplify_condjump): Update test to make
2428         sure we have a conditional branch around am unconditional branch.
2429
2430 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
2431
2432         * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.
2433
2434 2004-06-16  Dale Johannesen  <dalej@apple.com>
2435
2436         * loop.c (loop_givs_reduce): Avoid miscompilation of
2437         loops entered at bottom.
2438
2439 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
2440
2441         * cfglayout.c (fixup_reorder_chain): Handle case where the
2442         destination of E_FALL is EXIT_BLOCK_PTR.
2443
2444 2004-06-16  Vladimir Makarov  <vmakarov@redhat.com>
2445
2446         PR target/15653
2447         * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
2448         after shifts before asm.
2449
2450 2004-06-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2451
2452         PR tree-optimization/15993
2453         * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
2454         destination is unchanged.
2455
2456 2004-06-16  Andreas Jaeger  <aj@suse.de>
2457
2458         * doc/install.texi (Configuration): Update description for
2459         --enable-version-specific-runtime-libs.
2460
2461 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
2462
2463         * doc/install.texi: boehm-gc now uses automake 1.8.5.
2464
2465 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
2466
2467         * toplev.h (rest_of_compilation): Adjust prototype.
2468
2469 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
2470
2471         * coverage.c: Remove argument to rest_of_compilation.
2472         * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
2473         * passes.c (rest_of_compilation): Remove argument.
2474         (pass_rest_of_compilation): New.
2475         (rest_of_handle_final, rest_of_handle_delay_slots,
2476         rest_of_handle_stack_regs, rest_of_handle_variable_tracking
2477         rest_of_handle_machine_reorg, rest_of_handle_regrename
2478         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
2479         rest_of_handle_regmove, rest_of_handle_tracer
2480         rest_of_handle_if_conversion, rest_of_handle_if_after_combine
2481         rest_of_handle_web, rest_of_handle_branch_prob
2482         rest_of_handle_value_profile_transformations, rest_of_handle_cfg
2483         rest_of_handle_addressof, rest_of_handle_jump_bypass
2484         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
2485         Check that the two arguments are actually superfluous.
2486         * tree-optimize.c (register_dump_files): Add properties argument.
2487         Track validity of passes.  Only initialize dump files for
2488         tree-based passes.  Store the full set of provided passes in
2489         the pass.
2490         (init_tree_optimization_passes): Register pass_expand and
2491         pass_rest_of_compilation.
2492         (execute_one_pass): Do not track the presence of required properties
2493         here.  Set in_gimple_form.  Do not update current_properties.
2494         (current_properties): Remove.
2495         (set_save_expr_context): Remove.
2496         (tree_rest_of_compilation): Do not set in_gimple_form.  Do not
2497         expand to RTL here, and do not call rest_of_compilation.  Push
2498         GGC context even before gimplification.
2499         * tree-pass.h (PROP_rtl, PROP_trees): New flags.
2500         (pass_expand, pass_rest_of_compilation): Declare.
2501
2502 2004-06-15  Jeff Law  <law@redhat.com>
2503
2504         * fold-const.c (swap_tree_comparison): No longer static.
2505         (tree_swap_operands_p): Similarly.  Return true if both operands
2506         are SSA_NAMEs and the first operand has a higher version number than
2507         the second operand.
2508         * tree.h (swap_tree_comparison): Prototype.
2509         (tree_swap_operands_p): Prototype.
2510         * tree-ssa-operands.c (get_expr_operands): For commutative
2511         operators and relational comparisons, canonicalize the
2512         order of the operands.
2513
2514 2004-06-15  Richard Henderson  <rth@redhat.com>
2515
2516         * c-common.c (lang_gimplify_stmt): Remove next_p argument.
2517         (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
2518         c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
2519         c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
2520         (finish_fname_decls, fname_decl): Use statement_lists.
2521         (c_expand_expr_stmt): Don't set last_expr_type.
2522         (c_type_hash): Fix indentation.
2523         (c_safe_from_p): Don't follow TREE_CHAIN.
2524         (c_tree_chain_matters_p): Remove.
2525         * c-common.def (SCOPE_STMT): Remove.
2526         (CLEANUP_STMT): Redefine to contain its own body.
2527         * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
2528         x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
2529         Add x_cur_stmt_list.
2530         (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
2531         (cur_stmt_list): New.
2532         (STATEMENT_LIST_STMT_EXPR): New.
2533         (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
2534         SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
2535         (CLEANUP_BODY): New.
2536         (CLEANUP_DECL): Move to operand 2.
2537         (c_common_stmt_codes): Remove SCOPE_STMT.
2538         (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
2539         * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
2540         (c_push_function_context, c_pop_function_context): Don't save it.
2541         (finish_decl): Set TREE_USED on the decl for a cleanup.
2542         Use push_cleanup.
2543         (store_parm_decls): Use statement lists.
2544         (finish_function): Remove compstmt rule workaround.  Use statement
2545         lists.  Call finish_fname_decls after finalizing the body.
2546         (c_begin_compound_stmt): Move to c-typeck.c.
2547         * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
2548         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
2549         (c_genericize): Invoke them.
2550         (c_gimplify_stmt): Don't look through TREE_CHAIN.  Kill SCOPE_STMT.
2551         (c_build_bind_expr): Export.
2552         (gimplify_block, gimplify_cleanup): Remove.
2553         (gimplify_condition): Use gimplify_stmt.
2554         (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
2555         (gimplify_if_stmt): Remove recursion hack.
2556         (c_gimplify_expr): Remove STMT_EXPR handling.
2557         (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
2558         (is_last_stmt_of_scope): Remove.
2559         * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
2560         * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
2561         c_end_compound_stmt.
2562         * c-objc-common.c (build_cdtor): Likewise.
2563         * c-parse.in (primary): Use c_finish_stmt_expr.
2564         (push_scope, pop_scope): Remove.
2565         (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
2566         (c99_block_end, compstmt): Use c_end_compound_stmt.
2567         (c99_block_lineno_labeled_stmt): Likewise.
2568         (compstmt_primary_start): Use c_begin_stmt_expr.
2569         (simple_if, select_or_iter_stmt): Update calls to stmt builders.
2570         (do_stmt_start): Fill in body directly.
2571         (lineno_stmt): Avoid setting lineno on constants.
2572         * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
2573         Remove SCOPE_STMT.
2574         * c-semantics.c (begin_stmt_tree): Remove.
2575         (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
2576         (add_stmt): Use statement lists.
2577         (add_scope_stmt, finish_stmt_tree): Remove.
2578         (push_cleanup): New.
2579         * c-tree.h: Move some decls from c-common.h.
2580         * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
2581         (do_case, c_finish_case): Likewise.
2582         (c_finish_then): Take body for then as argument.
2583         (c_finish_else): Similarly.
2584         (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
2585         c_finish_for_stmt_incr, c_finish_for_stmt): New.
2586         (c_begin_stmt_expr, c_finish_stmt_expr): New.
2587         (c_begin_compound_stmt): Do scope management.
2588         (c_end_compound_stmt): New.
2589         * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
2590         * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
2591         Look through exception handling constructs.
2592         (gimplify_bind_expr): Accept temporary argument.
2593         (gimplify_target_expr): Special case BIND_EXPR bodies.
2594         (gimplify_expr): Handle fallback == fb_none like a statement.
2595         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
2596         * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
2597         * langhooks.h (tree_chain_matters_p): Remove.
2598         * stub-objc.c (objc_clear_super_receiver): New.
2599         * tree-gimple.h (voidify_wrapper_expr): Update decl.
2600         (append_to_statement_list, append_to_statement_list_force): Move
2601         to tree-iterator.h.
2602         * tree-inline.c (expand_call_inline): Update call.
2603         (clone_body): Use statement lists.
2604         (walk_tree): Don't check tree_chain_matters_p.
2605         (copy_tree_r): Likewise.
2606         * tree-iterator.c (alloc_stmt_list): Clear lang bits.
2607         (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
2608         * tree-iterator.h (append_to_statement_list,
2609         append_to_statement_list_force): Moved from tree-gimple.h.
2610         * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
2611         * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
2612         (objc_enter_block): Likewise.
2613         (objc_exit_block): Use c_end_compound_stmt.
2614         (objc_build_try_enter_fragment): Add #error and comment for
2615         rewriting for OBJCPLUS.
2616         (objc_build_extract_fragment, objc_build_try_epilogue,
2617         objc_build_catch_stmt, objc_build_finally_prologue,
2618         objc_build_finally_epilogue): Update for C statement builders.
2619         * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
2620         Remove.
2621
2622 2004-06-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2623
2624         * df.c (df_reg_clobber_gen): Removed.
2625         (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
2626         Make more effective for hard regs.
2627         * ra-build.c (livethrough_conflicts_bb): Check contains_call.
2628
2629 2004-06-15  Alexandre Oliva  <aoliva@redhat.com>
2630
2631         * c-pragma.h (c_lex_string_translate): Change type to int.
2632         * c-parse.in: Change all assignments of c_lex_string_translate
2633         to true and false to 1 and 0.
2634         * c-lex.c (c_lex_string_translate): Likewise.
2635         (lex_string): Convert string without translation in the -1
2636         case.
2637
2638 2004-06-15  Mark G. Adams  <mark.g.adams@sympatico.ca>
2639
2640         * convert.h: Add include guards
2641
2642 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
2643
2644         * tree-flow-inline.h: Document all functions.
2645
2646 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
2647
2648         * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
2649         * tree-dfa.c (create_stmt_ann): Ditto.
2650         * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
2651         * tree-inline.c (estimate_num_insns_1): Ditto.
2652         * tree.c (tree_size): Ditto.
2653         (make_node_stat): Ditto.
2654         (tree_node_structure): Ditto.
2655         (ephi_node_elt_check_failed): Remove.
2656         (is_essa_node): Ditto.
2657         * tree.def (EPHI_NODE): Ditto.
2658         (EEXIT_NODE): Ditto.
2659         (EUSE_NODE): Ditto.
2660         (EKILL_NODE): Ditto.
2661         * tree.h (EREF_NODE_CHECK): Remove.
2662         (EPHI_NODE_ELT_CHECK): Ditto.
2663         (struct tree_eref_common): Ditto.
2664         (struct tree_euse_node): Ditto.
2665         (struct ephi_arg_d): Ditto.
2666         (struct tree_ephi_node): Ditto.
2667         (ephi_node_elt_check_failed): Remove prototype.
2668         (is_essa_node): Ditto.
2669         (enum tree_node_structure_enum): Remove TS_E*_NODE.
2670         (union tree_node): Remove E*_NODE uses.
2671
2672 2004-06-15  Jerry Quinn  <jlquinn@optonline.net>
2673
2674         * alias.c (record_set, record_base_value, canon_rtx, get_addr,
2675         nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
2676         * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
2677         Likewise.
2678         * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
2679         expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
2680         expand_builtin_strcmp, expand_builtin_strncmp,
2681         expand_builtin_frame_address): Likewise.
2682         * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
2683         insert_one_insn): Likewise.
2684         * calls.c (prepare_call_address, precompute_register_parameters,
2685         precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
2686         * cfganal.c (flow_active_insn_p): Likewise.
2687         * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
2688         combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
2689         subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
2690         make_extraction, recog_for_combine, gen_lowpart_for_combine,
2691         simplify_comparison, record_dead_and_set_regs_1,
2692         record_dead_and_set_regs, record_promoted_value,
2693         check_promoted_subreg, get_last_value_validate, get_last_value,
2694         reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
2695         unmentioned_reg_p_1): Likewise.
2696         * conflict.c (mark_reg): Likewise.
2697         * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
2698         mention_regs, insert_regs, lookup, lookup_for_remove, insert,
2699         merge_equiv_classes, flush_hash_table, invalidate,
2700         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
2701         invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
2702         cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
2703         record_jump_cond, cse_insn, addr_affects_sp_p,
2704         invalidate_from_clobbers, cse_process_notes, cse_around_loop,
2705         cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
2706         cse_cc_succs, cse_condition_code_reg): Likewise.
2707         * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
2708         cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
2709         cselib_record_set, cselib_record_sets): Likewise.
2710         * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
2711         dbxout_block): Likewise.
2712         * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
2713         * dojump.c (do_jump): Likewise.
2714         * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
2715         is_based_loc, rtl_for_decl_location): Likewise.
2716         * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
2717         set_decl_incoming_rtl, mark_user_reg): Likewise.
2718         * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
2719         copy_to_suggested_reg, allocate_dynamic_stack_space,
2720         probe_stack_range, hard_function_value): Likewise.
2721         * expmed.c (store_bit_field, store_fixed_bit_field,
2722         store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
2723         extract_split_bit_field, expand_divmod, emit_store_flag_force):
2724         Likewise.
2725         * expr.c (convert_move, convert_modes,
2726         block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
2727         use_group_regs, emit_move_insn, emit_move_insn_1,
2728         compress_float_constant, push_block, emit_single_push_insn,
2729         emit_push_insn, get_subtarget, expand_assignment, store_expr,
2730         store_constructor, store_field, force_operand, safe_from_p,
2731         expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
2732         Likewise.
2733         * final.c (profile_function, final_scan_insn, alter_subreg,
2734         get_mem_expr_from_op, output_asm_operand_names, output_operand,
2735         only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
2736         * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
2737         find_regno_partial, propagate_one_insn, init_propagate_block_info,
2738         insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
2739         attempt_auto_inc, find_auto_inc, mark_used_regs,
2740         count_or_remove_death_notes_bb): Likewise.
2741         * function.c (find_temp_slot_from_address, update_temp_slot_address,
2742         preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
2743         fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
2744         put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
2745         purge_single_hard_subreg_set, instantiate_decl,
2746         instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
2747         promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
2748         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
2749         expand_function_start, diddle_return_value, clobber_return_register,
2750         expand_function_end, keep_stack_depressed, handle_epilogue_set,
2751         update_epilogue_consts): Likewise.
2752         * genemit.c (gen_exp, gen_insn): Likewise.
2753         * genrecog.c (make_insn_sequence): Likewise.
2754         * global.c (global_conflicts, expand_preferences, mark_reg_store,
2755         mark_reg_conflicts, set_preference, reg_becomes_live,
2756         build_insn_chain, mark_reg_change): Likewise.
2757         * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
2758         Likewise.
2759         * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
2760         Likewise.
2761         * integrate.c (copy_rtx_and_substitute, try_constants,
2762         subst_constants, mark_stores, allocate_initial_values): Likewise.
2763         * jump.c (reversed_comparison_code_parts, delete_prior_computation,
2764         delete_computation, rtx_renumbered_equal_p, true_regnum,
2765         reg_or_subregno): Likewise.
2766         * lcm.c (reg_dies, reg_becomes_live): Likewise.
2767         * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
2768         update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
2769         wipe_dead_reg, no_conflict_p): Likewise.
2770         * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
2771         iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
2772         simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
2773         * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
2774         move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
2775         find_single_use_in_loop, count_one_set, loop_bivs_init_find,
2776         loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
2777         valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
2778         loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
2779         maybe_eliminate_biv_1, record_initial, update_reg_last_use,
2780         canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
2781         try_swap_copy_prop): Likewise.
2782         * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
2783         expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
2784         Likewise.
2785         * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
2786         reload_cse_simplify_operands, reload_combine,
2787         reload_combine_note_store, reload_combine_note_use,
2788         reload_cse_move2add, move2add_note_store): Likewise.
2789         * print-rtl.c (print_rtx): Likewise.
2790         * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
2791         contains_pseudo, handle_asm_insn): Likewise.
2792         * ra-debug.c (ra_print_rtx_object, dump_constraints,
2793         dump_static_insn_cost): Likewise.
2794         * ra-rewrite.c (slots_overlap_p, emit_colors,
2795         remove_suspicious_death_notes): Likewise.
2796         * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
2797         register_operand, scratch_operand, nonmemory_operand,
2798         constrain_operands): Likewise.
2799         * reg-stack (check_asm_stack_operands, remove_regno_note,
2800         emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
2801         subst_asm_stack_regs): Likewise.
2802         * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
2803         record_address_regs, reg_scan_mark_refs): Likewise.
2804         * regmove.c (discover_flags_reg, replacement_quality,
2805         copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
2806         fixup_match_1): Likewise.
2807         * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
2808         kill_set_value, copyprop_hardreg_forward_1): Likewise.
2809         * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
2810         reload_inner_reg_of_subreg, can_reload_into, push_reload,
2811         combine_reloads, find_dummy_reload, hard_reg_set_here_p,
2812         operands_match_p, decompose, find_reloads, find_reloads_toplev,
2813         find_reloads_address, subst_indexed_address, find_reloads_address_1,
2814         find_reloads_subreg_address, find_replacement,
2815         refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
2816         refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
2817         * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
2818         find_reg, delete_dead_insn, alter_reg, eliminate_regs,
2819         elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
2820         forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
2821         emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
2822         do_output_reload, emit_reload_insns, gen_reload,
2823         delete_address_reloads_1, inc_for_reload): Likewise.
2824         * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
2825         update_reg_unused_notes, fill_slots_from_thread): Likewise.
2826         * resource.c (update_live_status, mark_referenced_resources,
2827         mark_set_resources, mark_target_live_regs): Likewise.
2828         * rtlanal.c (nonzero_address_p, get_jump_table_offset,
2829         global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
2830         reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
2831         note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
2832         find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
2833         parms_set, find_first_parameter_load, keep_with_call_p,
2834         hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
2835         num_sign_bit_copies1): Likewise.
2836         * rtlhooks.c (gen_lowpart_general): Likewise.
2837         * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
2838         sched_analyze): Likewise.
2839         * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
2840         Likewise.
2841         * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
2842         * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
2843         simplify_binary_operation, simplify_const_relational_operation,
2844         simplify_subreg): Likewise.
2845         * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
2846         expand_end_stmt_expr, expand_return, expand_decl,
2847         expand_anon_union_decl): Likewise.
2848         * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
2849         find_splittable_regs, find_splittable_givs, find_common_reg_term,
2850         loop_iterations): Likewise.
2851         * var-tracking.c (variable_union, variable_part_different_p,
2852         variable_different_p, count_uses, add_uses, add_stores,
2853         compute_bb_dataflow, set_variable_part, delete_variable_part,
2854         emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
2855         Likewise.
2856         * varasm.c (assemble_variable): Likewise.
2857
2858 2004-06-15  Chris Demetriou  <cgd@broadcom.com>
2859
2860         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
2861         definition.
2862         * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
2863         #undef and #if 0'd definition.
2864
2865 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
2866
2867         * combine.c (distribute_notes): Comment typo fix.
2868
2869 2004-06-15  Roger Sayle  <roger@eyesopen.com>
2870
2871         * expmed.c (synth_mult): Mask bits of the multiplier to the
2872         machine mode of the multiplication.  Don't consider shifts
2873         by more than (or equal to) the width of the operation's mode.
2874
2875 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2876
2877         * doc/install.texi: Yet another update for autoconf
2878         and automake versions.
2879
2880 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2881
2882         * function.h (struct function): Remove cannot_inline field.
2883         (current_function_cannot_inline): Remove.
2884         * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
2885         Simplify conditionals to ignore warn_return_type.
2886         * tree-optimize.c (tree_rest_of_compilation): Do not reset
2887         DECL_DEFER_OUTPUT.
2888         * objc/objc-act.c (build_module_descriptor, finish_method_def):
2889         Do not set current_function_cannot_inline.
2890
2891 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
2892
2893         * cfglayout.c (fixup_reorder_chain): Handle case where the
2894         destination of E_TAKEN is EXIT_BLOCK_PTR.
2895
2896 2004-06-15  Diego Novillo  <dnovillo@redhat.com>
2897
2898         * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
2899
2900 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2901
2902         * fold-const.c (operand_equal_p): Update comment.
2903
2904 2004-06-15  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
2905
2906         * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
2907         (INCOMING_RETURN_ADDR_RTX): Define.
2908         * config/m32r/m32r-protos.h (m32r_return_addr): Added.
2909         * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
2910         __builtin_return_address(0).
2911         (m32r_return_addr): Added for __builtin_return_address(0).
2912         (m32r_reload_lr): Ditto.
2913
2914         * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
2915
2916 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2917
2918         * doc/install.texi (Prerequisites): Update libbanshee,
2919         fastjar, libcpp, libjava/libltdl entries to
2920         automake 1.8.5.
2921
2922 2004-06-15  Eric Botcazou  <ebotcazou@act-europe.fr>
2923             Olivier Hainque  <hainque@act-europe.fr>
2924
2925         * function.c (fixup_var_refs): Also adjust the start of sequence
2926         after fixing up the insns.
2927
2928 2004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
2929
2930         * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
2931
2932 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
2933
2934         * doc/install.texi (Prerequisites): Update libstdc++ entry to
2935         automake 1.8.5.
2936
2937 2004-06-14  Eric Christopher  <echristo@redhat.com>
2938
2939         * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
2940         to -mtpf-trace (-mno-tpf-trace).
2941         * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
2942         documentation.
2943
2944 2004-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
2945
2946         * real.c: Fix bit count in head comment.
2947
2948 2004-06-14  Jeff Law  <law@redhat.com>
2949
2950         * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
2951         PHIs where the destination or an argument is marked with
2952         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
2953
2954 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
2955
2956         PR middle-end/15945
2957         * simplify-rtx.c (simplify_binary_operation): Don't optimize out
2958         Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
2959
2960 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2961
2962         * opts.sh (var_args): Fix regexp.
2963
2964 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
2965
2966         PR target/15178
2967         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
2968
2969 2004-06-14  Paul Brook  <paul@codesourcery.com>
2970
2971         * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
2972
2973 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2974
2975         * Makefile.in (FLAGS_H): New.
2976         (flags.h): Replace by FLAGS_H.
2977         * c.opt: Document Var, VarExists, Init and Report attributes.
2978         * common.opt: Fill the values of the attributes.
2979         * diagnostic.c (flag_fatal_errors): Do not define.
2980         * except.c (flag_non_call_exceptions): Do not define.
2981         * flags.h: Include options.h.  Remove declarations conflicting with
2982         the automatically defined ones.
2983         * opts.c: Remove automatically defined variables.
2984         (handle_option): Perform default initialization.
2985         (common_handle_option): Do not handle options covered by the
2986         default initialization.
2987         * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
2988         fields.
2989         (CL_REPORT): New.
2990         * opts.sh: Generate variable declarations, handle CL_REPORT.
2991         * toplev.c: Remove automatically defined variables.
2992         (f_options): Removed.
2993         (print_switch_values): Use cl_options instead of f_options.
2994         * toplev.h (version_flag): Declaration removed.
2995
2996 2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>
2997
2998         * config/sparc/sparc.h: Correct comment about availability of
2999         little endian option.
3000
3001         * config.gcc: Remove sparc64-*-aout*.
3002         * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
3003         * config/sparc/sp64-aout.h: Remove.
3004         * config/sparc/aout.h: Remove.
3005
3006 2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
3007
3008         * config/s390/s390.c: Include "tree-gimple.h".
3009         (s390_gimplify_va_arg): New function.
3010         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3011         (s390_va_arg): Remove.
3012         * config/s390/s390-protos.h (s390_va_arg): Remove.
3013         * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
3014
3015 2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>
3016
3017         * basic-block.h (could_fall_through): Declare.
3018         * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
3019         Fail if the source already has a fallthrough edge to the exit
3020         block pointer.
3021         (could_fall_through): New function.
3022         * cfgbuild.c (make_edges): Check if we already have a fallthrough
3023         edge to the exit block pointer.
3024         * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
3025         not called before reload has completed.
3026         Handle special case of first block having a fall-through exit edge.
3027         (cfg_layout_finalize): Don't call it before reload or if we have
3028         rtl epilogues.
3029         (fixup_reorder_chain): A fall through to the exit block does not
3030         require the block to come last.  Add sanity checks.
3031         * cfgrtl.c (rtl_split_edge): Add special handling of fall through
3032         edges to the exit block.
3033         * function.c (cfglayout.h): #include.
3034         (thread_prologue_and_epilogue_insns): If we have neither return nor
3035         epilogue, but a fall through to the exit block from mid-function,
3036         force a non-fall-through exit.
3037         * Makefile.in (function.o): Depend on CFGLAYOUT_H.
3038
3039 2004-06-14  Alan Modra  <amodra@bigpond.net.au>
3040
3041         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
3042         for power5 and rs64a.  Correct condition for default.  Correct power3,
3043         620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
3044
3045 2004-06-13  Steven Bosscher <stevenb@suse.de>
3046
3047         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
3048         Revert previous change, don't use CALL_P.
3049
3050 2004-06-13  Jason Merrill  <jason@redhat.com>
3051
3052         * tree.h: Move std_gimplify_va_arg_expr protoype here.
3053         * tree-gimple.h: From here.
3054
3055 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
3056
3057         Fix PR tree-optimization/15979
3058         Fix PR tree-optimization/15981
3059         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
3060         try to insert values undefined along some path.
3061
3062 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
3063
3064         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
3065         are available everywhere too.
3066
3067 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
3068
3069         * fold-const.c (fold_checksum_tree <case 't'>): Only
3070         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
3071         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
3072         EXPR is an INTEGERAL_TYPE or a scalar float type.
3073
3074 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
3075
3076         * tree-sra.c (tree_sra): Update documentation.
3077
3078 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
3079
3080         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
3081         function_types_compatible_p, type_lists_compatible_p): Remove
3082         flags parameter.
3083         * c-tree.h (comptypes): Likewise.
3084         (COMPARE_STRICT): Remove.
3085         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
3086         callers changed.
3087
3088 2004-06-13  Eric Christopher  <echristo@redhat.com>
3089
3090         * c-decl.c (diagnose_mismatched_decls): Improve error message.
3091         Remove unused code.
3092         * c-typeck.c (comptypes): Add location in standard we're checking.
3093
3094 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
3095
3096         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
3097         version 3.3.4.
3098
3099 2004-06-12  Roger Sayle  <roger@eyesopen.com>
3100
3101         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
3102         index by machine mode.
3103         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
3104         tables inside the loop over machine modes.
3105         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
3106         expand_divmod): Index shift*_cost by the appropriate machine mode.
3107
3108 2004-06-12  Eric Christopher  <echristo@redhat.com>
3109
3110         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
3111         * config/s390/s390.md: Ditto.
3112         * config/s390/s390.c: Ditto.
3113         (s390_frame_info): Conditionalize frame and setup info on
3114         TARGET_TPF_PROFILING.
3115         (s390_arg_frame_offset): Ditto.
3116
3117 2004-06-12  Roger Sayle  <roger@eyesopen.com>
3118
3119         * fold-const.c (omit_two_operands): New function.
3120         * tree.h (omit_two_operands): Prototype here.
3121         * builtins.c (fold_builtin_unordered_cmp): New function to lower
3122         C99 unordered comparison builtins to the appropriate tree nodes.
3123         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
3124         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
3125         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
3126         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
3127         (simplify_builtin_memcmp, simplify_builtin_strncmp,
3128         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
3129         omit_two_operands function to build the required COMPOUND_EXPRs.
3130
3131 2004-06-12  Steven Bosscher <stevenb@suse.de>,
3132             Andreas Jaeger  <aj@suse.de>
3133
3134         * gcse.c (record_set_info): Use predicates like REG_P.
3135         (mems_conflict_for_gcse_p): Likewise.
3136         (load_killed_in_block_p): Likewise.
3137         (hash_expr_1): Likewise.
3138         (insert_set_in_table): Likewise.
3139         (gcse_constant_p): Likewise.
3140         (hash_scan_set): Likewise.
3141         (hash_scan_insn): Likewise.
3142         (canon_list_insert): Likewise.
3143         (record_last_mem_set_info): Likewise.
3144         (record_last_set_info): Likewise.
3145         (compute_hash_table_work): Likewise.
3146         (mark_set): Likewise.
3147         (mark_clobber): Likewise.
3148         (mark_oprs_set): Likewise.
3149         (compute_transp): Likewise.
3150         (find_avail_set): Likewise.
3151         (cprop_insn): Likewise.
3152         (do_local_cprop): Likewise.
3153         (cprop): Likewise.
3154         (find_implicit_sets): Likewise.
3155         (find_bypass_set): Likewise.
3156         (bypass_conditional_jumps): Likewise.
3157         (insert_insn_end_bb): Likewise.
3158         (pre_insert_copy_insn): Likewise.
3159         (compute_transpout): Likewise.
3160         (next_ls_expr): Likewise.
3161         (invalidate_any_buried_refs): Likewise.
3162         (compute_ld_motion_mems): Likewise.
3163         (reg_set_info): Likewise.
3164         (reg_clear_last_set): Likewise.
3165         (find_moveable_store): Likewise.
3166         (compute_store_table): Likewise.
3167         (find_loads): Likewise.
3168         (store_killed_in_insn): Likewise.
3169         (insert_insn_start_bb): Likewise.
3170         (reg_set_between_after_reload_p): Likewise.
3171         (reg_used_between_after_reload_p): Likewise.
3172         (is_jump_table_basic_block): Likewise.
3173         (gcse_after_reload): Likewise.
3174         (hash_scan_set_after_reload): Likewise.
3175         (compute_hash_table_after_reload): Likewise.
3176
3177 2004-06-12  Steven Bosscher  <stevenb@suse.de>
3178
3179         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
3180         (INSN_P): Don't look at the rtx code class, just explicitly
3181         check for one of the tree RTX_INSN codes.
3182
3183 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
3184
3185         * c-typeck.c (default_function_array_conversion): Use
3186         build_pointer_type not TYPE_POINTER_TO.
3187
3188 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
3189
3190         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
3191         * configure, config.in: Regenerate.
3192         * system.h: Unconditionally define bool as unsigned char,
3193         BOOL_BITFIELD as unsigned int.
3194         * domwalk.h: Use BOOL_BITFIELD.
3195
3196 2004-06-12  Andreas Jaeger  <aj@suse.de>
3197
3198         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
3199         * libgcc-darwin.ver: Likewise.
3200
3201 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
3202
3203         * reload.c (find_reloads): Force reload for pseudo registers on big
3204         endian machines.
3205
3206 2004-06-11  Steven Bosscher <stevenb@suse.de>
3207
3208         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
3209         Don't try to mark anything control dependent on the entry or
3210         exit blocks.
3211
3212 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
3213
3214         Fix Bug 15899
3215         Fix Bug 15460
3216         * tree.h (SSA_NAME_VALUE): New macro.
3217         (struct tree_ssa_name): Add value_handle member.
3218         * tree-ssa-pre.c: Replaced.
3219         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
3220         (struct cst_ann_d): New.
3221         (struct expr_ann_d): New.
3222         (union tree_ann_d): Add cst_ann, expr_ann.
3223         * tree-dfa.c (create_cst_ann): New function.
3224         (create_expr_ann): Ditto.
3225         * tree-flow-inline.h (cst_ann): New function.
3226         (expr_ann): Ditto.
3227         (get_cst_ann): Ditto.
3228         (get_expr_ann): Ditto..
3229
3230 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3231
3232         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
3233         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
3234         _U_Qfcmp library function.
3235         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
3236         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
3237
3238         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
3239         unspec used for loading address from DLT.
3240         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
3241         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
3242         Don't use short code sequence when loading the address of a nonlocal
3243         label.
3244         (nonlocal_goto): New expander.
3245         (indirect_goto): New jump pattern for nonlocal gotos.
3246         (short_jump): Remove extra whitespace.
3247         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
3248         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
3249         pattern.
3250
3251 2004-06-11  Roger Sayle  <roger@eyesopen.com>
3252
3253         * expmed.c (synth_mult): Add an additional MODE argument for the
3254         machine mode of the multiplication.  Update recursive calls.  Use
3255         mode instead of word_mode for determining operation costs.
3256         (choose_mult_variant): Update calls to synth_mult with "mode".
3257
3258 2004-06-11  Richard Henderson  <rth@redhat.com>
3259
3260         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
3261         and makes_aliased_stores.
3262
3263 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
3264
3265         * doc/install.text (--enable-shared): Fix typo.
3266
3267 2004-06-11  Richard Henderson  <rth@redhat.com>
3268
3269         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
3270         argument.  Use internal post for call to gimplify_expr.  Tidy
3271         rounded type size computation.
3272         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
3273         get_initialized_tmp_var.
3274
3275 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
3276
3277         * doc/install.texi (--enable-shared): Update libobjc's shared library
3278         status.  Remove reference to libf2c.
3279
3280 2004-06-11  Jason Merrill  <jason@redhat.com>
3281
3282         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
3283         * config/i386/i386.c (ix86_va_arg): Remove.
3284         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
3285         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
3286         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
3287         * config/alpha/alpha.c (alpha_va_arg): Remove.
3288         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
3289         * config/sparc/sparc.c (sparc_va_arg): Remove.
3290
3291         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
3292         assignment might throw.
3293         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
3294         expressions.
3295
3296 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
3297
3298         PR 15886:
3299         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
3300
3301 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
3302
3303         * doc/install.texi (Prerequisites): Update documentation of
3304         required versions of autoconf and automake.  Remove mention of
3305         libf2c.
3306
3307 2004-06-11  Jason Merrill  <jason@redhat.com>
3308
3309         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
3310         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3311
3312 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
3313
3314         * typeclass.h: Add GPL plus exception license.  Add include
3315         guard.
3316
3317 2004-06-10  Jason Merrill  <jason@redhat.com>
3318
3319         * gimplify.c (gimplify_modify_expr): Don't force a temporary
3320         of an aggregate_value_p type.
3321
3322 2004-06-10  Jeff Law  <law@redhat.com>
3323
3324         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
3325         code when we are in gimple form.
3326
3327 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
3328
3329         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
3330         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
3331         (highest_ssa_version): Remove.
3332         * tree-outof-ssa.c (new_temp_expr_table): Replace
3333         highest_ssa_version with num_ssa_names.
3334         (dump_replaceable_exprs): Likewise.
3335         (rewrite_vars_out_of_ssa): Likewise.
3336         * tree-ssa-ccp.c (initialize): Likewise
3337         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
3338         * tree-ssa-dce.c (tree_dce_init): Likewise.
3339         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
3340         * tree-ssa-live.c (create_ssa_var_map): Likewise.
3341         (dump_var_map): Likewise.
3342         * tree-ssa.c (verify_ssa): Likewise.
3343         (kill_redundant_phi_nodes): Likewise.
3344         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
3345         * tree-ssanames.c: Include tree-flow.h
3346         (ssa_names): New varray.
3347         (init_ssa_names): Initialize ssa_names.
3348         Reserve the first slot of the ssa_names table.
3349         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
3350         Assign version numbers using num_ssa_names.
3351
3352 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
3353
3354         * doc/sourcebuild.texi (Front End): Add details of more
3355         installation documentation required.
3356
3357 2004-06-10  Brian Booth  <bbooth@redhat.com>
3358
3359         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
3360         of V_MAY_DEF and V_MUST_DEF.
3361         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
3362         num_vdefs to num_v_may_defs.
3363         (compute_immediate_uses_for_stmt): Rename occurences of vdef
3364         to v_may_def.
3365         (redirect_immediate_uses): Ditto.
3366         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
3367         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
3368         Also add code to sum up the number of v_must_defs.
3369         (vdefs_disappeared_p): Replace with...
3370         (v_may_defs_disappeared_p): This.
3371         (v_must_defs_disappeared_p): New function.
3372         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
3373         Also add code to mark new variables found in V_MUST_DEFs for
3374         renameing.
3375         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
3376         vdef_ops to v_may_def_ops.
3377         (get_vdef_ops): Replace with...
3378         (get_v_may_def_ops): This.
3379         * tree-flow-inline.h (get_vdef_ops): Replace with...
3380         (get_v_may_def_ops): This.
3381         (get_v_must_def_ops): New function.
3382         (get_vdef_result_ptr): Replace with...
3383         (get_v_may_def_result_ptr): This.
3384         (get_vdef_op_ptr): Ditto with...
3385         (get_v_may_def_op_ptr); This.
3386         (get_v_must_def_op_ptr): New function.
3387         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
3388         to v_may_def. Also add code to mark statements with
3389         V_MUST_DEFs as definition sites.
3390         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
3391         add code to register new V_MUST_DEFs made by the statement.
3392         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
3393         (check_replaceable): Rename occurences of vdef to v_may_def. Also
3394         add check for V_MUST_DEFs.
3395         (find_replaceable_in_bb): Ditto.
3396         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
3397         to v_may_def. Also add code to dump V_MUST_DEFs.
3398         * tree-sra.c (mark_all_vdefs): Replace with...
3399         (mark_all_v_may_defs): This.
3400         (mark_all_v_must_defs): New function.
3401         (create_scalar_copies): Replace call to mark_all_vdefs with
3402         calls to mark_all_v_may_defs and mark_all_v_must_defs.
3403         (scalarize_structures): Rename occurences of vdef to v_may_def.
3404         Also add a check for V_MUST_DEFs.
3405         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
3406         * tree-ssa-alias.c (global_var): Update comment.
3407         (compute_may_aliases): Ditto.
3408         (compute_points_to_and_addr_escape): Rename occurences of vdef
3409         to v_may_def. Also add code to mark variables in V_MUST_DEF
3410         operands as being written to.
3411         (group_aliases): Update comment.
3412         (maybe_create_global_var): Ditto.
3413         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
3414         Also add a check for V_MUST_DEFs on GIMPLE registers.
3415         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
3416         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
3417         to v_may_def. Also add code to mark all V_MUST_DEF operands
3418         VARYING.
3419         (initialize): Ditto.
3420         (set_rhs): Rename occurences of vdef to v_may_def. Also add
3421         code to update SSA_NAMEs in V_MUST_DEFs.
3422         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
3423         to v_may_def.
3424         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
3425         occurences of vdef to v_may_def. Also add code to mark statements
3426         with V_MUST_DEFs as necessary.
3427         (propagate_necessity): Rename occurences of vdef to v_may_def.
3428         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
3429         occurences of vdef to v_may_def. Also add code to mark operands
3430         in V_MUST_DEFs for renaming.
3431         (eliminate_redundant_computations): Rename occurences of vdef
3432         to v_may_def.
3433         (record_equivalences_from_stmt): Rename occurences of vdef
3434         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
3435         (optimize_stmt): Remove unnesessary variable vdefs. Update
3436         comment.
3437         (register_definitions_for_stmt): Rename occurences of vdef
3438         to v_may_def. Also add code to register definitions made with
3439         V_MUST_DEFs.
3440         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
3441         (fix_stmt_v_may_defs): This.
3442         (fix_phi_uses): Rename occurences of vdef to v_may_def.
3443         (dse_optimize_stmt): Ditto.
3444         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
3445         to v_may_def. Also add code to mark V_MUST_DEF operands as being
3446         used in virtual operators.
3447         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
3448         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
3449         renaming.
3450         * tree-ssa-operands.c (opf_kill_def): New flag for killing
3451         definitions.
3452         (build_vdefs): Renamed to...
3453         (build_v_may_defs): This.
3454         (build_v_must_defs): New variable.
3455         (voperands_d): Add v_must_def_ops and replace vdef_ops with
3456         v_may_def_ops.
3457         (append_vdef): Replace with...
3458         (append_v_may_def): This.
3459         (append_v_must_def): New function.
3460         (NUM_FREE): Increment for V_MUST_DEF
3461         (optype_freelist): Increment its size for V_MUST_DEF
3462         (allocate_vdef_optype): Replace with...
3463         (allocate_v_may_def_optype): This.
3464         (allocate_v_must_def_optype): New function.
3465         (free_vdefs): Replace with...
3466         (free_v_may_defs): This.
3467         (free_v_must_defs): New function.
3468         (remove_vdefs): Replace with...
3469         (remove_v_may_defs): This.
3470         (remove_v_must_defs): New function.
3471         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
3472         add code to initialize build_v_must_defs.
3473         (finalize_ssa_vdefs): Replace with...
3474         (finalize_ssa_v_may_defs): This.
3475         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
3476         (finalize_ssa_v_must_defs): New function.
3477         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
3478         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
3479         (verify_start_operands): Rename occurences of vdef to v_may_def.
3480         Also add check for build_v_must_defs.
3481         (get_stmt_operands): Rename occurences of vdef to v_may_def.
3482         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
3483         killing definitions.
3484         (get_expr_operands): Update comment and use opf_kill_def for
3485         killing definitions.
3486         (add_stmt_operand): Replace code that appends VDEFs with code
3487         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
3488         otherwise.
3489         (add_call_clobber_ops): Update comments.
3490         * tree-ssa-operands.h (vdef_optype_d): Replace with...
3491         (v_may_def_optype_d): This.
3492         (v_must_def_optype_d): New structure.
3493         (VDEF_OPS): Replace with...
3494         (V_MAY_DEF_OPS): This.
3495         (STMT_VDEF_OPS): Same with...
3496         (STMT_V_MAY_DEF_OPS): This.
3497         (NUM_VDEFS): And...
3498         (NUM_V_MAY_DEFS): This.
3499         (VDEF_RESULT_PTR): As well as...
3500         (V_MAY_DEF_RESULT_PTR): This.
3501         (VDEF_RESULT): Same goes for...
3502         (V_MAY_DEF_RESULT): This.
3503         (VDEF_OP_PTR): And...
3504         (V_MAY_DEF_OP_PTR): This.
3505         (VDEF_OP): And...
3506         (V_MAY_DEF_OP): This.
3507         (V_MUST_DEF_OPS): New macro.
3508         (STMT_V_MUST_DEF_OPS): Ditto.
3509         (NUM_V_MUST_DEFS): Ditto.
3510         (V_MUST_DEF_OP_PTR): Ditto.
3511         (V_MUST_DEF_OP): Ditto.
3512         (remove_vdefs): Replace signature with...
3513         (remove_v_may_defs): This.
3514         (remove_v_must_defs): New function signature.
3515         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
3516         with calls to remove_v_may_defs and remove_v_must_defs.
3517         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
3518         Also add code that marks left occurences of operands in V_MUST_DEFs.
3519         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
3520         to v_may_def. Also add check for V_MUST_DEFs.
3521         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
3522
3523 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
3524
3525         PR target/15653
3526         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
3527         insn.
3528
3529 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3530
3531         PR web/15263
3532         * doc/install.texi: Remove superfluous linebreak.
3533
3534 2004-06-10  Roger Sayle  <roger@eyesopen.com>
3535
3536         * builtins.c (expand_builtin): Fall back to library function call for
3537         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
3538         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
3539         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
3540         IMAGPART_EXPR respectively.
3541
3542 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
3543
3544         * sh.c (dump_table): New argument start.  Changed caller.
3545         (fixup_mova): New function.
3546         (find_barrier): Use it.
3547         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
3548         If the label a mova refers to is above the mova itself, change
3549         the mova into a load.
3550         * sh.md (*casesi_worker): Rename to:
3551         (casesi_worker_1).
3552         (casesi_worker_2): New insn.
3553
3554 2004-06-10  Jason Merrill  <jason@redhat.com>
3555
3556         * target.h (struct gcc_target): Change gimplify_va_arg_expr
3557         hook signature.
3558         * tree-gimple.h: Adjust.
3559         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
3560         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
3561         Use fold_convert.
3562         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
3563         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
3564         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
3565         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
3566         (gimplify_va_arg_expr): Return GS_ERROR in error case.
3567         Gimplify valist rather than calling stabilize_va_list.
3568
3569 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3570
3571         * Makefile.in (df.o): Remove fibheap dependency.
3572         * df.h: Do not include sbitmap.h.
3573         (struct ref): New field "data".
3574         (DF_REF_DATA): New accessor macro.
3575         (struct df): Field "dom" removed.
3576         (df_analyze_subcfg): New function.
3577         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
3578         (transfer_function): ... new type.
3579         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
3580         (iterative_dataflow): ... new function.
3581         (enum set_representation, struct dataflow): New.
3582         * df.c: Do not include fibheap.h.
3583
3584         (df_reg_def_chain_clean, df_reg_use_chain_clean,
3585         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
3586         prune_to_subcfg, df_bb_modify): New functions.
3587         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
3588         df_refs_update, df_reg_table_realloc, df_ref_create,
3589         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
3590         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
3591         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
3592
3593         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
3594         (df_rd_transfer_function, df_ru_transfer_function,
3595         df_lr_transfer_function): Type of bitmaps changed to void *.
3596         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
3597         (hybrid_search): ... new function.
3598         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
3599         (iterative_dataflow): ... new function. Avoid use of fibheaps for
3600         a worklist.  Do not process basic blocks unnecessarily.
3601
3602 2004-06-10  Roger Sayle  <roger@eyesopen.com>
3603
3604         * fold-const.c (fold_abs_const): Make extern.
3605         * tree.h (fold_abs_const): Prototype here.
3606         * builtins.c (fold_builtin_fabs): New function to transform
3607         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
3608         (fold_builtin_abs): New function to transform abs, labs, llabs
3609         and imaxabs builtins into ABS_EXPR tree nodes.
3610         (expand_builtin): Fall back to a function call for abs, labs,
3611         llabs and imaxabs builtins that survive constant folding.
3612         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
3613         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
3614
3615 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
3616
3617         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
3618         leaf function without unwind info at RP 0.
3619
3620 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
3621
3622         PR c++/14791
3623         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
3624         (fileptr_type_node): Define.
3625         * tree.c (build_common_tree_nodes_2): Initialize
3626         fileptr_type_node to ptr_type_node.
3627         * c-common.c (c_common_nodes_and_builtins): For C++, make
3628         fileptr_type_node a distinct type copy.
3629         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
3630         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
3631         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
3632         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
3633         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
3634         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
3635         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
3636         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
3637         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
3638         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
3639         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
3640         the above *FILEPTR* types instead of *PTR*.
3641
3642 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
3643
3644         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
3645         match.
3646
3647 2004-06-09  Roger Sayle  <roger@eyesopen.com>
3648
3649         * fold-const.c (fold_not_const): New function.
3650         (fold) <ABS_EXPR>: Don't bother testing wins.
3651         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
3652         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
3653
3654 2004-06-09  Richard Henderson  <rth@redhat.com>
3655
3656         PR middle-end/15228
3657         * function.c (assign_parms): Always set_mem_align with the computed
3658         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
3659
3660 2004-06-09  Richard Henderson  <rth@redhat.com>
3661
3662         PR opt/15108
3663         * tree-tailcall.c (find_tail_calls): Don't check early for
3664         tail_recursion failure.
3665
3666 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
3667
3668         Move SSA_NAME annotations into tree_ssa_name.
3669
3670         * tree-dfa.c (create_ssa_name_ann): Remove.
3671         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
3672         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
3673         (struct ssa_name_ann_d): Remove.
3674         (union tree_ann_d): Update.
3675         (ssa_name_ann_t): Remove.
3676         * tree-ssa-alias.c: (get_ptr_info): New local function.
3677         Replace references to ssa_name_ann_t with struct ptr_info_def.
3678         * tree-ssa-operands.c (get_expr_operands): Likewise.
3679         * tree.h (SSA_NAME_PTR_INFO): Define.
3680         (struct ptr_info_def): Declare.
3681         (struct tree_ssa_name): Add field 'ptr_info'.
3682
3683 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
3684
3685         * config/i386/winnt.c (i386_pe_output_labelref): Correct
3686         misplaced ')'.
3687
3688 2004-06-09  Steven Bosscher  <stevenb@suse.de>
3689
3690         * config/i386/k6.md: Rewrite using the DFA model.
3691         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
3692         cost of load-operation insns for the K6.
3693         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
3694         (ia32_multipass_dfa_lookahead): Likewise.
3695
3696 2004-06-09  Richard Henderson  <rth@redhat.com>
3697
3698         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
3699         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
3700
3701 2004-06-09  Richard Henderson  <rth@redhat.com>
3702
3703         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
3704
3705 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
3706
3707         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
3708         (CPP_ID_DATA_H): New.
3709         (gtype-desc.o): Update dependencies.
3710         (GTFILES): Use CPP_ID_DATA_H.
3711
3712 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
3713
3714         Revert:
3715         PR c++/15815
3716         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
3717         * doc/extend.texi: Deprecate #pragma interface and #pragma
3718         implementation.
3719
3720 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
3721
3722         * config/sparc/sparc.h (MOVE_RATIO): New definition.
3723
3724 2004-06-09  Richard Henderson  <rth@redhat.com>
3725
3726         * basic-block.h (struct edge_def): Add goto_locus.
3727         * tree-cfg.c (make_goto_expr_edges): Set it.
3728         (disband_implicit_edges): Use it.
3729         * tree-pretty-print.c (dump_implicit_edges): Print it.
3730
3731 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
3732
3733         * h8300.md (ldm_h8300s_4): Fix condition for expander.
3734
3735 2004-06-08  Jason Merrill  <jason@redhat.com>
3736
3737         Gimplify VA_ARG_EXPR into simpler forms.
3738         * target.h: Add gimplify_va_arg_expr hook.
3739         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
3740         * fold-const.c (build_fold_addr_expr)
3741         (build_fold_addr_expr_with_type): Move from gimplify.c.
3742         * tree.h: Declare them.
3743         * gimplify.c (gimplify_and_add): New fn.
3744         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
3745         (gimplify_array_ref_to_plus, gimplify_modify_expr)
3746         (gimplify_expr): Use build_fold_*.
3747         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
3748         don't know how to gimplify it.
3749         * builtins.c (std_gimplify_va_arg_expr): New fn.
3750         (dummy_object): New static fn.
3751         (gimplify_va_arg_expr): New fn.
3752         (stabilize_va_list): Use build_fold_*.
3753         * tree-gimple.h: Declare new fns.
3754         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3755         (ix86_gimplify_va_arg): New fn.
3756         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3757         (ia64_gimplify_va_arg): New fn.
3758         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
3759         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3760         * alias.c (get_varargs_alias_set): Just return 0 for now.
3761
3762         * c-objc-common.c (c_tree_printer): Improve handling of %T.
3763
3764 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
3765
3766         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
3767         of convert.
3768         * tree-inline.c (setup_one_parameter): Likewise.
3769         * tree-sra.c (csc_build_component_ref): Likewise.
3770         * tree-ssa-ccp.c (ccp_fold): Likewise.
3771         * tree-ssa-copy.c (cprop_operand): Likewise.
3772         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
3773         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
3774
3775 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
3776
3777         PR rtl-optimization/15521:
3778         * sched-int.h (in_post_call_group_p): Change type to enum.
3779         * sched-deps.c (sched_analyze_insn):
3780         (sched_analyze): When in_post_call_group_p is post_call_initial,
3781         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
3782         and also reset in_post_call_group_p to post_call.
3783         (sched_analyze): When the previous basic block ended in a CALL_INSN,
3784         initialize in_post_call_group_p as post_call_initial.
3785         (init_deps): initialize in_post_call_group_p to not_post_call.
3786
3787 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
3788
3789         PR ada/6637
3790         * doc/install.texi: List ada, libada as options to --enable-shared
3791
3792 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
3793
3794         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
3795         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
3796         config.in entries.
3797         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
3798         if hard links are not available.
3799         * configure: Regenerate.
3800         * config.in: Regenerate.
3801
3802 2004-06-08  Per Bothner  <per@bothner.com>
3803
3804         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
3805
3806 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3807
3808         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
3809         Correct formatting.
3810
3811 2004-06-08  James E Wilson  <wilson@specifixinc.com>
3812
3813         PR target/15790
3814         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
3815
3816 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
3817
3818         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
3819         POINTER_TYPE and INTEGER_TYPE.
3820
3821 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
3822
3823         * modulo-sched.c: Compile only when INSN_SCHEDULING is
3824         defined.
3825
3826 2004-06-08  Jeff Law  <law@redhat.com>
3827
3828         * doc/contrib.texi: Add entries for Stefan Olsson and
3829         Ola Ronnerup.
3830
3831 2004-06-08  DJ Delorie  <dj@redhat.com>
3832
3833         * toplev.c (floor_log2_wide): Replace loop with faster bit
3834         operations.
3835         (exact_log2_wide): Define in terms of the above.
3836         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
3837         available.
3838
3839 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
3840
3841         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
3842         Make sure that we are in INDIRECT mode when getting the
3843         stub name.
3844
3845 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
3846
3847         * h8300.md (extendqisi2_h8300): Add constraints.
3848         (ldm_h8300s_4_normal): Fix typo.
3849
3850 2004-06-08  Richard Henderson  <rth@redhat.com>
3851
3852         * gimple-low.c (struct lower_data): Replace the_return_label and
3853         one_return_stmt with return_statements.
3854         (lower_function_body): Process the entire list of return_statements.
3855         (lower_return_expr): Check source value before unifying return_exprs.
3856         * gimplify.c (gimplify_return_expr): Force the use of a temporary
3857         for !aggregate_value_p.
3858         * tree-gimple.c: Update RETURN_EXPR grammer.
3859
3860 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
3861
3862         PR target/15598
3863         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
3864
3865 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3866
3867         PR rtl-optimization/15717
3868         * config/i386/i386.c (legitimate_constant_p): Do not allow
3869         x - symbol_ref.
3870
3871 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
3872
3873         * gimplify.c (copy_if_shared_r): Revert:
3874         2004-05-21  Richard Henderson  <rth@redhat.com>
3875         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
3876
3877 2004-06-07  Roger Sayle  <roger@eyesopen.com>
3878
3879         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
3880         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
3881         (init_expmed): Initialize these cost arrays as appropriate.
3882         (store_bit_field, extract_bit_field): Correct whitespace.
3883         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
3884         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
3885         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
3886         word_mode or compute_mode as appropriate.
3887
3888 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
3889
3890         PR target/15783
3891         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
3892         parameter.  Enumerate the registers inside the PARALLEL.
3893         (function_arg): Adjust call to function_arg_union_value.
3894         (function_value): Likewise.
3895
3896         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
3897
3898 2004-06-07  Roger Sayle  <roger@eyesopen.com>
3899
3900         * real.c (real_copysign): New function to implement libm's copysign.
3901         * real.h (real_copysign): Prototype here.
3902         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
3903         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
3904         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
3905         fold_builtin_isdigit): Add function prototypes.
3906         (fold_builtin_copysign): New function to fold copysign, copysignf
3907         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
3908         constant arguments at compile-time using real_copysign.  Fold
3909         copysign(X,Y) as fabs(X) if Y is always non-negative.
3910         (fold_builtin_1): Correct minor whitespace/style issues.  Call
3911         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
3912
3913 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
3914
3915         * tree.c (iterative_hash_expr): Use real_hash.
3916
3917 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
3918
3919         PR c/14765
3920         * c-parse.in (compstmt_primary_start): Set last_expr_type to
3921         NULL_TREE.
3922
3923 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
3924
3925         PR c++/15815
3926         * doc/extend.texi: Deprecate #pragma interface and #pragma
3927         implementation.
3928
3929 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
3930
3931         PR middle-end/15666
3932         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
3933         builtin decl as well.
3934
3935 2004-06-07  Roger Sayle  <roger@eyesopen.com>
3936
3937         PR c/14649
3938         * c-typeck.c (require_constant_value, require_constant_elements):
3939         Move declarations to the top of the file.
3940         (build_function_call): If we require a constant value, fold with
3941         fold_initializer.  If the result is a constant, and the function
3942         wasn't called using __builtin_foo, issue a pedantic warning.
3943         (build_unary_op): If we require a constant value, fold tree with
3944         fold_initializer.
3945         (build_binary_op): Use require_constant_value to determine whether
3946         to call fold or fold_initializer.
3947
3948 2004-06-07  Richard Henderson  <rth@redhat.com>
3949
3950         * gimple-low.c (struct lower_data): Add the_return_label and
3951         one_return_stmt.
3952         (lower_function_body): Initialize and use them.
3953         (lower_return_expr): New.
3954         (lower_stmt): Call it.
3955         * gimplify.c (gimplify_return_expr): Force the argument to be either
3956         null or a result_decl.
3957         * tree-gimple.c: Update gimple grammer to match.
3958         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
3959         coalescing of result_decls.
3960
3961 2004-06-07  Richard Henderson  <rth@redhat.com>
3962
3963         PR rtl-opt/15193
3964         * expmed.c (extract_bit_field): Fix vector_extract return.
3965
3966         * config/i386/i386.md (negv4sf2): New pattern.
3967
3968 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
3969
3970         PR c++/15337
3971         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
3972         message.
3973
3974 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
3975
3976         * config.in: Regenerate.
3977
3978 2004-06-06  Steven Bosscher  <stevenb@suse.de>
3979
3980         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
3981         SWITCH_LABELS are always sorted.
3982
3983 2004-06-06  Steven Bosscher  <stevenb@suse.de>
3984
3985         * hooks.c (hook_int_void_1): New generic hook.
3986         * hooks.h (hook_int_void_1): Add prototype.
3987         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
3988         Define to hook_int_void_1.
3989         * config/c4x/c4x.md: Replace dummies for the old pipeline model
3990         with dummies for the new one.
3991
3992 2004-06-06  Roger Sayle  <roger@eyesopen.com>
3993
3994         * tree.h (lvalue_or_else): Delete function prototype.
3995         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
3996
3997 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
3998
3999         PR target/14542
4000         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
4001         a live change of a register after peephole replacement.
4002
4003 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
4004
4005         PR c/13519
4006         * c-typeck.c (composite_type, common_pointer_type): New functions.
4007         (common_type): Split parts into composite_type and
4008         common_pointer_type.  Ensure that arithmetic operations return
4009         unqualified types without attributes.  Don't make composite type
4010         of signed enum and compatible integer be unsigned.
4011         (build_conditional_expr, build_binary_op): Use
4012         common_pointer_type.
4013         * c-decl.c (merge_decls): Use composite_type.
4014         * c-tree.h (composite_type): Declare.
4015
4016 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
4017
4018         PR target/14457
4019         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
4020         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
4021         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
4022         (inhibit_libc): Must define.
4023         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
4024         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
4025         ("xorhi3"): Likewise.
4026
4027 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
4028
4029         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
4030         always_inline pass.
4031
4032 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
4033
4034         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
4035         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
4036
4037 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
4038
4039         * regclass.c (init_reg_sets): Check for missing registers in target
4040         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
4041
4042 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
4043
4044         * Makefile.in (MKDEPS_H): New shorthand.
4045         (c-opts.o): Update dependencies.
4046         * c-opts.c: Include mkdeps.h.
4047         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
4048         not cpp_add_dependency_target.
4049
4050 2004-06-05  Steven Bosscher  <stevenb@suse.de>
4051
4052         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
4053         * config/v850/v850.md: Convert to DFA scheduler description.
4054
4055 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4056
4057         PR fortran/15478
4058         * doc/install.texi: Document GMP as prerequisite. Document
4059         --with-gmp and --with-gmp-dir configure options.
4060         * fortran/gfortran.texi: Remove section "Compiling and testing",
4061         remove TOC reference to it.
4062
4063 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
4064
4065         * combine.c(simplify_shift_const): Check shift amount is a
4066         CONST_INT.
4067
4068 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
4069
4070         * toplev.c (init_asm_output): Add explicit 'b' to mode when
4071         opening asm_out_file.
4072         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
4073         reading asm_out_file. Replace fflush after reading asm_out_file
4074         with fseek.
4075         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
4076         default and add to HOST_HOOKS_INITIALIZER.
4077         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
4078         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
4079         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
4080         to set mmi.offset padding.
4081          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
4082         $(srcdir)/config/i386/winnt.c.
4083         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
4084         (i[34567]86-*-uwin*): Likewise.
4085         *i[34567]86-*-interix3*): Likewise.
4086         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
4087         * config/i386/host-mingw32.c: New file.
4088         * config/i386/x-mingw32: Add rule for host-mingw32.o.
4089         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
4090         (extern_head): Likewise.
4091         (struct export_list) Likewise.
4092         (export_head): Likewise.
4093         (i386_pe_record_external_function): Use ggc_alloc.
4094         (i386_pe_record_exported_symbol): Likewise.
4095         Include "gt-winnt.h" at end.
4096         * doc/hostconfig.texi: Document
4097         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
4098
4099 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
4100
4101         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
4102         Rename 68000 and 68k to m68k for consistency in comments.  Remove
4103         trailing whitespace before EOLs and before TABs.
4104         (MAX_CODE_ALIGN): Remove unused macro.
4105         (CALL_USED_REGISTERS): Reformat and add comments.
4106
4107 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
4108
4109         * gcc.c (MFLIB_SPEC): Remove library references, to require users
4110         to enumerate -lmudflap* and dependencies when linking.
4111
4112 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
4113
4114         PR target/15822
4115         * dojump.c (do_jump): Fix uninitialized variable tcode1.
4116
4117 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
4118
4119         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
4120         * genconditions.c (write_header): Back out removal of reload.h.
4121
4122 2004-06-04  Jan Hubicka  <jh@suse.cz>
4123
4124         Re-apply hopefully fixed patch:
4125         * i386.md (UNSPECV_EH_RETURN): Kill.
4126         (eh_return): Use jump_insn.
4127         (eh_return_si, eh_return_di): Change pattern to jump instruction.
4128
4129 2004-06-04  Jeff Law  <law@redhat.com>
4130
4131         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
4132
4133 2004-06-04  Steven Bosscher  <stevenb@suse.de>
4134
4135         * except.c (for_each_eh_region): New function.
4136         * except.h (for_each_eh_region): Add a prototype for it.
4137         * tree-cfg.c (update_eh_labels): New function, callback for
4138         for_each_eh_region.
4139         (label_for_bb): Make global static, unfortunately.
4140         (cleanup_dead_labels): Also update label references for
4141         exception regions.
4142
4143 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
4144
4145         * config/mips/mips.c (struct irix_section_align_entry): Fix
4146         GTY marker.
4147
4148 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
4149
4150         * toplev.c (check_global_declarations): Don't ask for
4151         DECL_ASSEMBLER_NAME unless the function really is declared
4152         static and not defined.
4153
4154 2004-06-03  Matt Austern  <austern@apple.com>
4155
4156         PR c++/15428
4157         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
4158         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
4159         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
4160         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
4161         documentation to reflect the new macro name and to clarify its
4162         meaning.
4163
4164 2004-06-03  Steven Bosscher  <stevenb@suse.de>
4165
4166         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
4167
4168 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
4169
4170         * config/darwin.c (machopic_indirect_data_reference): Copy
4171         the SYMBOL_REF_DECL from the original RTX for the new
4172         non-lazy pointer RTX.
4173
4174 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
4175
4176         * tree.h: Remove include of version.h
4177         * c-cppbuiltin.c: Include version.h
4178         * diagnostic.c: Include version.h
4179         * dwarf2out.c: Include version.h
4180         * toplev.c: Include version.h
4181         * vmsdbgout.c: Include version.h
4182         * Makefile.in: Remove dependency on version.h from TREE_H, and
4183         add dependencies to required .o targets
4184
4185 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
4186
4187         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
4188         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
4189         (TARGET_H): Add insn-modes.h.
4190         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
4191         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
4192         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
4193         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
4194         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
4195         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
4196         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
4197         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
4198         CFGLAYOUT_H.
4199         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
4200         Replace ra.h with RA_H.
4201         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
4202         insn-recog.o): Replace resource.h with RESOURCE_H.
4203         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
4204         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
4205         with SCHED_INT_H.
4206         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
4207         ra-rewrite.o): Replace df.h with DF_H.
4208         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
4209         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
4210         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
4211         (insn-conditions.o): Remove unused reload.h.
4212         * cfglayout.h: Add include guard.  Include basic-block.h.
4213         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
4214         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
4215         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
4216         basic-block.h.
4217         * genconditions.c:  Remove reload.h.
4218         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
4219         hard-reg-set.h, insn-modes.h.
4220         * resource.h: Add include guard.  Include hard-reg-set.h.
4221         * sched-int.h:  Add include guard.  Include insn-attr.h,
4222         basic-block.h, rtl.h.
4223         * target.h: Add include guard.  Include insn-modes.h.
4224         * tree-ssa-live.h: Include partition.h.
4225
4226 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
4227                 Kenneth Zadeck <zadeck@naturalbridge.com>
4228
4229         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
4230         (add_var_to_ssa_edges_worklist): Add value argument.
4231         Update callers.
4232         Use new worklist.
4233         (process_ssa_edge_worklist): New function.
4234         (tree_ssa_ccp): Move worklist processing core to
4235         process_ssa_edge_worklist, and just call that for the two worklists.
4236
4237 2004-06-03  Steven Bosscher  <stevenb@suse.de>
4238
4239         * basic-block.c (tail_recursion_label_list): Don't declare.
4240         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
4241         accordingly.
4242         * cfgbuild.c (find_label_refs): Remove.
4243         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
4244         * cfgcleanup.c (tail_recursion_label_p): Remove.
4245         (merge_blocks_move): Do not check for tail recursion.
4246         (try_optimize_cfg): Likewise.
4247         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
4248         * cfgrtl.c (tail_recursion_label_list): Remove.
4249         * except.c (remove_unreachable_regions): Don't handle
4250         CALL_PLACEHOLDER insns.
4251         (convert_from_eh_region_ranges_1, can_throw_internal,
4252         can_throw_external): Likewise.
4253         * function.c (free_after_compilation): Don't clear
4254         x_tail_recursion_label.
4255         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
4256         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
4257         (reorder_blocks_1): Likewise.
4258         * function.h (struct function): Remove x_tail_recursion_label
4259         member.  Don't define tail_recursion_label.
4260         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
4261         * print-rtl.c (print_rtx): Likewise.
4262         * rtl.def (CALL_PLACEHOLDER): Remove.
4263         * rtl.h (sibcall_use_t): Remove enum.
4264         (optimize_sibling_and_tail_recursive_calls,
4265         replace_call_placeholder): Remove function prototypes.
4266         * stmt.c (tail_recursion_args): Remove.
4267         (optimize_tail_recursion): Remove.
4268         (expand_return): Don't check for possible tail recursion.
4269         * tree.h (optimize_tail_recursion): Remove prototype.
4270
4271 2004-06-02  Jan Hubicka  <jh@suse.cz>
4272
4273         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
4274         return_stmt.
4275
4276 2004-06-02  Jason Merrill  <jason@redhat.com>
4277
4278         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
4279         Do include c-parse.in.
4280
4281 2004-06-02  Eric Christopher  <echristo@redhat.com>
4282
4283         * c-typeck.c (common_type): Don't lose type qualifiers
4284         when creating new variants.
4285
4286 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
4287
4288         PR tree-optimization/14042
4289         PR tree-optimization/14729
4290         PR tree-optimization/14736
4291         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
4292         Check the type which the pointer points to
4293         instead of the pointer types.
4294
4295 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
4296
4297         PR tree-optimization/15738.
4298         * builtins.c (fold_builtin_strchr): Transform
4299         strrchr (s, '\0') to strchr (s, '\0').
4300
4301 2004-06-02  Steven Bosscher  <stevenb@suse.de>
4302
4303         * i386.c (ix86_adjust_cost): Don't increase the cost for
4304         load+operation for PROCESSOR_PENTIUMPRO, it is already
4305         modelled in the DFA description
4306
4307 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
4308
4309         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
4310         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
4311         (ALIAS_H, EMIT_RTL_H): New.
4312         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
4313         (cfgcleanup.o): Add EMIT_RTL_H.
4314         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
4315         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
4316         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
4317         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
4318         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
4319         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
4320         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
4321         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
4322         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
4323         set_mem_size): Move to emit-rtl.h.
4324         * emit-rtl.h: New.
4325         * alias.h: New.
4326
4327 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
4328
4329         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
4330         Call fixup_memory_subreg only if the MEM is equal to 'var'.
4331         Adjust recursive calls to self.
4332         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
4333
4334 2004-06-01  Richard Henderson  <rth@redhat.com>
4335             Andrew Pinski  <pinskia@physics.uc.edu>
4336
4337         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
4338         (primary): Handle offsetof.  Add error productions for faux functions.
4339         Move component_ref objc checking to build_component_ref.
4340         (reswords): Add offsetof.
4341         (rid_to_yy): Add offsetof.
4342         * c-tree.h (build_offsetof): Declare.
4343         * c-common.h (objc_is_public): Declare.
4344         * c-typeck.c (build_component_ref): Check objc_is_public.
4345         (build_offsetof): New.
4346         * stub-objc.c (objc_is_public): New.
4347         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
4348         from is_public.
4349         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
4350         * doc/extend.texi (Offsetof): Move from C++ section to C section
4351         and rewrite for __builtin_offsetof.
4352
4353 2004-06-01  Peter Barada  <peter@the-baradas.com>
4354             Peter Jakubek  <peter@laseranimation.com>
4355
4356         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
4357         a scratch to perform an add to memory.
4358
4359 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
4360
4361         PR target/14018
4362         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
4363         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
4364         m68k_align_funcs): Remove.
4365         (override_options): Remove code to handle -malign-* options.
4366         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
4367         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
4368         (m68k_align_loops_string, m68k_align_jumps_string,
4369         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
4370         m68k_align_funcs): Remove definitions.
4371
4372 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
4373
4374         PR target/15626
4375         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
4376         by the Sun linker in conjunction with the Sun assembler.
4377         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
4378
4379 2004-06-01  Jeff Law  <law@redhat.com>
4380
4381         * stmt.c (expand_decl): Be more selective about calling
4382         mark_reg_pointer.
4383
4384 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
4385
4386         PR objc/7993
4387         * objc-act.c (is_private): Do not emit the 'instance variable %s
4388         is declared private' error.
4389         (is_public): Emit the error after calling is_private.
4390         (lookup_objc_ivar): If the instance variable is private, return 0
4391         - the instance variable is invisible here.
4392
4393 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
4394
4395         * doc/invoke.texi (-static-libgcc): Explicitly mention
4396         non-GNU linkers.
4397
4398 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
4399
4400         PR target/12968
4401         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
4402
4403 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
4404
4405         PR c/15749
4406         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
4407         misuses of structures with flexible array members if
4408         in_system_header.
4409
4410 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
4411
4412         PR target/15693
4413         * config/sparc/sparc.c (compare_operand): New predicate.
4414         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
4415         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
4416         operand is a ZERO_EXTRACT and the second operand is not zero,
4417         force the former to a register.
4418         (cmpdi expander): Likewise.
4419
4420 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
4421
4422         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
4423         looks at.
4424         * alias.c (alias_invariant_size): Make alias_invariant_size
4425         static, fix GTY marker.
4426
4427 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
4428
4429         PR tree-optimization/15743.
4430         * builtins.c (fold_builtin_1): Fold index() and rindex().
4431
4432 2004-05-31  Roger Sayle  <roger@eyesopen.com>
4433
4434         PR middle-end/15069
4435         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
4436         into "X < 0" (where C is the signbit) if X's type is a full mode.
4437
4438 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4439
4440         * pa.md: Disable the peephole2 patterns that generate indexed
4441         floating-point stores when indexing is disabled.
4442
4443 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
4444
4445         * c-pretty-print.c (pp_c_left_bracket): Make a function.
4446         (pp_c_right_bracket): Likewise.
4447         (pp_c_star): Likewise.
4448         (pp_c_ampersand): Define.
4449         * c-pretty-print.h (pp_c_left_bracket): Declare.
4450         (pp_c_right_bracket): Likewise.
4451         (pp_c_star): Likewise.
4452         (pp_c_ampersand): Likewise.
4453
4454 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
4455
4456         * config/sol2.h (__enable_execute_stack): ANSIfy function
4457         definition.
4458
4459 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
4460
4461         * c-incpath.c (add_path): Canonicalize paths to use '/' if
4462         HAVE_DOS_BASED_FILESYSTEM.
4463
4464 2004-05-31  Steven Bosscher  <stevenb@suse.de>
4465
4466         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
4467         Only look at case labels if the immediate dominator is also
4468         the only predecessor.  Don't look for more case labels if the
4469         first seen is a case range.
4470
4471 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
4472
4473         * builtins.c: Add a prototype for fold_builtin_strchr().
4474
4475 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
4476
4477         Revert this patch:
4478         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
4479
4480         * combine.c (gen_binary): Remove.
4481         (known_cond, simplify_shift_const
4482         find_split_point, combine_simplify_rtx,
4483         simplify_if_then_else, simplify_set,
4484         simplify_logical, expand_field_assignment,
4485         extract_left_shift, force_to_mode,
4486         if_then_else_cond, apply_distributive_law,
4487         simplify_and_const_int, simplify_shift_const,
4488         gen_lowpart_for_combine, simplify_comparison,
4489         reversed_comparison): Replace with
4490         simplify_gen_binary, simplify_gen_relational or
4491         distribute_and_simplify_rtx.
4492         (distribute_and_simplify_rtx): New function.
4493
4494 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4495
4496         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
4497         when generating PIC code.
4498
4499 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
4500
4501         * c-decl.c (c_expand_body_1): Remove and fold back into ...
4502         (c_expand_body): here.
4503         (c_expand_decl): Move to ...
4504         * c-common.c (c_expand_decl): Here and remove check for nested
4505         functions.
4506         * c-common.h (c_expand_decl): Add prototype.
4507         * c-tree.h (c_expand_decl): Remove.
4508
4509 2004-05-30  Roger Sayle  <roger@eyesopen.com>
4510
4511         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
4512         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
4513         fold_mathfn_compare, fold_inf_compare, fold,
4514         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
4515         Use constant_boolean_node where appropriate.  Don't bother using
4516         fold_convert on the second argument to omit_one_operand.
4517
4518 2004-05-30  Roger Sayle  <roger@eyesopen.com>
4519
4520         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
4521         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
4522         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
4523         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
4524         Add missing (but documented) tree nodes to the index.
4525
4526 2004-05-30  Steven Bosscher  <stevenb@suse.de>
4527
4528         PR tree-optimization/14819
4529         * builtins.c (fold_builtin_strchr): New.
4530         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
4531         with fold_builtin_strchr().
4532
4533 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
4534
4535         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
4536         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
4537         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
4538         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
4539         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
4540         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
4541         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
4542         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
4543         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
4544         formatting.
4545
4546 2004-05-30  Steven Bosscher  <stevenb@suse.de>
4547
4548         * gimplify.c (sort_case_labels): New.  Split out from...
4549         (gimplify_switch_expr): ...here.  Use it.
4550         * tree-eh.c (lower_try_finally_switch): Sort the labels of
4551         the SWITCH_EXPR created here before leaving the function.
4552         * tree.c (sort_case_labels): Add prototype.
4553
4554 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
4555
4556         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
4557         of BOOLEAN_TYPE.
4558
4559 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
4560
4561         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
4562         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
4563         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
4564         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
4565         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
4566         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
4567         comment typos.  Follow spelling conventions.
4568
4569 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
4570
4571         * gengtype-yacc.y: Add NESTED_PTR token.
4572         (option): Record `nested_ptr' option.
4573         * gengtype-lex.l: Handle `nested_ptr' keyword.
4574         * gengtype.c (walk_type): Process `nested_ptr' option.
4575         * gengtype.h (struct nested_ptr_data): New.
4576         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
4577         * stringpool.c (struct string_pool_data): Make 'entries' point to
4578         ht_identifier instead of tree.
4579         (gt_pch_save_stringpool): Don't adjust pointers.
4580         (gt_pch_restore_stringpool): Call ht_load.
4581
4582 2004-05-29  Jason Merrill  <jason@redhat.com>
4583
4584         * gimplify.c (gimplify_expr): Don't build a statement list
4585         if no gimplification was necessary.
4586
4587 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
4588
4589         * pretty-print.c (pp_base_format_text): Support %< instead of %`
4590         and %> as well as %'.
4591         * c-format.c: Use %< and %>.
4592         (gcc_diag_char_table, gcc_cdiag_char_table,
4593         gcc_cxxdiag_char_table): Update.
4594
4595 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
4596
4597         * c-typeck.c (common_type): Correct comment.
4598
4599 2004-05-29  Peter Barada  <peter@the-baradas.com>
4600
4601         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
4602         * config/m68k/m68k.c (const_method): Likewise.
4603         * config/m68k/m68k.c (const_int_cost): Likewise.
4604         * config/m68k/m68k.c (const_int_cost): Likewise.
4605         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
4606
4607 2004-05-29  Peter Barada  <peter@the-baradas.com>
4608
4609         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
4610         addressing.
4611         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
4612         movsi,movhi,movqi insn patterns.
4613
4614 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
4615
4616         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
4617
4618         PR target/15720
4619         * config/darwin.c (machopic_indirect_call_target): Copy
4620         the SYMBOL_REF_DECL from the original RTX for the new
4621         stub RTX.
4622
4623 2004-05-28  DJ Delorie  <dj@redhat.com>
4624
4625         * stor-layout.c (place_field): Revert erroneous commit.
4626
4627 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
4628
4629         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
4630         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
4631         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
4632         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
4633         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
4634         vec_ste): Remove type checks for integral parameters and literals
4635         from '..._args_eq' macros.
4636
4637 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
4638
4639         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
4640
4641 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
4642
4643         * testsuite/g++.dg/charset/function.cc: New.
4644
4645         * testsuite/gcc.dg/charset/function.c: New.
4646
4647         * c-decl.c (c_make_fname_decl): Free return value from
4648         fname_as_string.
4649
4650         * cp/decl.c (cp_make_fname_decl): Free return value from
4651         fname_as_string.
4652
4653         * c-common.c (fname_as_string): Translate if necessary.
4654
4655 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
4656
4657         * stringpool.c: Add comments to PCH saving/restoring routines.
4658
4659 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
4660
4661         * c-common.c (c_estimate_num_insns_1): Kill.
4662         (c_estimate_num_insns): Kill.
4663         * c-common.h (c_estimate_num_insns): Kill.
4664
4665         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
4666         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
4667         Remove comment about not checking for
4668         _POSIX_PRIORITY_SCHEDULING.
4669         * gthr-posix.c: Likewise.
4670
4671 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
4672             Roger Sayle  <roger@eyesopen.com>
4673
4674         PR rtl-optimization/15649
4675         Add LTGT_EXPR and improve pretty-printing of unordered
4676         comparisons.
4677         * c-common.c (c_common_truthvalue_conversion):
4678         Handle LTGT_EXPR.
4679         * c-typeck.c (build_binary_op): Likewise.
4680         * dojump.c (do_jump): Likewise.
4681         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
4682         * predict.c (tree_predict_by_opcode): Likewise.
4683         * real.c (real_compare): Likewise.
4684         * tree-cfg.c (verify_expr): Likewise.
4685         * tree-inline.c (estimate_num_insns_1): Likewise.
4686         * tree-pretty-print.c (dump_generic_node): Likewise.
4687         Handle ORDERED_EXPR, UNORDERED_EXPR.
4688         (op_symbol): Print unordered comparisons differently
4689         than ordered ones.
4690         * tree.def (LTGT_EXPR): New '<' tree code.
4691         * doc/c-tree.texi (Expressions): Document floating-point
4692         comparison nodes.
4693
4694         Fold comparisons between floating point values.
4695         * fold-const.c (enum comparison_code): New, from
4696         #define'd constants.  Define compcodes for unordered
4697         comparisons and for invalid transformations.
4698         (invert_tree_comparison): Add "honor_nans" parameter.
4699         (fold_truthop): Revamp to work on floating-point types too.
4700         (comparison_to_compcode): Support unordered comparisons.
4701         Use new enum comparison_code.
4702         (compcode_to_comparison): Likewise.
4703         (combine_compcodes): New function.
4704         (invert_truthvalue): Let invert_tree_comparison decide
4705         whether it is valid to fold the comparison.  Fold ORDERED
4706         and UNORDERED even if flag_unsafe_math_optimizations is off,
4707         and the remaining even if flag_unsafe_math_optimizations
4708         is off but we are under -fno-trapping-math.
4709         (fold_relational_const): Integer modes do not honor NaNs.
4710
4711 2004-05-28  Paul Brook  <paul@codesourcery.com>
4712
4713         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
4714
4715 2004-05-28  Paul Brook  <paul@codesourcery.com>
4716
4717         * config/arm/arm.c (thumb_force_lr_save): New function.
4718         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
4719         thumb_output_function_prologue): Use it.
4720         (thumb_expand_prologue): Set lr_save_eliminated.
4721
4722 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
4723
4724         * config/mips/mips.md (extendsidi2): Tie the source and destination
4725         of the register alternative.  Split it into nothing.
4726
4727 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
4728
4729         * rtl.h (skip_consecutive_labels): Declare.
4730         * emit-rtl.c (skip_consecutive_labels): New function.
4731         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
4732         * jump.c (follow_jumps): Say what null return values mean.
4733
4734 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
4735
4736         PR target/13250
4737         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
4738
4739 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
4740
4741         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
4742         libgcc-std.ver.
4743         * config/sh/libgcc-std.ver: New file.
4744
4745 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
4746
4747         * except.c: Revert change of 2004-05-26.
4748         * config/i386/i386.md: Revert change of 2004-05-27.
4749
4750 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
4751
4752         * configure.ac: Remove --enable-tree-browser option.
4753         Define TREEBROWSER when ac_tree_checking is defined.
4754         * configure: Rebuilt.
4755
4756 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
4757
4758         * expr.c (store_constructor): Restore sanity check on
4759         the size of the type before clearing.
4760
4761 2004-05-27  Jan Hubicka  <jh@suse.cz>
4762
4763         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
4764
4765 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
4766
4767         * combine.c (gen_binary): Remove.
4768         (known_cond, simplify_shift_const
4769         find_split_point, combine_simplify_rtx,
4770         simplify_if_then_else, simplify_set,
4771         simplify_logical, expand_field_assignment,
4772         extract_left_shift, force_to_mode,
4773         if_then_else_cond, apply_distributive_law,
4774         simplify_and_const_int, simplify_shift_const,
4775         gen_lowpart_for_combine, simplify_comparison,
4776         reversed_comparison): Replace with
4777         simplify_gen_binary, simplify_gen_relational or
4778         distribute_and_simplify_rtx.
4779         (distribute_and_simplify_rtx): New function.
4780         * simplify-rtx.c (simplify_binary_operation):
4781         Use nonzero_bits to simplify ANDs where we are
4782         turning off bits already known to be off in OP0.
4783
4784 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
4785
4786         PR target/14478
4787         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
4788
4789 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
4790
4791         PR middle-end/14084
4792         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
4793         to size of decl.
4794
4795 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
4796
4797         PR/14924
4798         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
4799
4800 2004-05-26  Roger Sayle  <roger@eyesopen.com>
4801
4802         * tree.h: Fix comment typo.
4803
4804 2004-05-27  Steven Bosscher  <stevenb@suse.de>
4805
4806         * gimplify.c (compare_case_labels): New function.
4807         (gimplify_switch_expr): Sort case labels, and make sure the
4808         last label in the label vector is the default case.
4809         * tree-cfg.c (group_case_labels): New function.
4810         (build_tree_cfg): Cleanup redundant labels and group case labels
4811         before creating edges.
4812         (cleanup_dead_labels): Handle GOTO_EXPRs.
4813         (find_case_label_for_value): Use a binary search to find the
4814         case label for the given value.
4815         * tree-gimple.c: Mention that labels are sorted, and that the
4816         last label must be the default.
4817
4818 2004-05-27  Jan Hubicka  <jh@suse.cz>
4819
4820         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
4821
4822 2004-05-27  Jan Hubicka  <jh@suse.cz>
4823
4824         * i386.md (UNSPECV_EH_RETURN): Kill.
4825         (eh_return): Use jump_insn.
4826         (eh_return_si, eh_return_di): Change pattern to jump instruction.
4827
4828 2004-05-26  Jan Hubicka  <jh@suse.cz>
4829
4830         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
4831         not loop optimizing.
4832
4833 2004-05-26  Jan Hubicka  <jh@suse.cz>
4834
4835         * except.c (can_throw_internal):  Notice RESX instructions.
4836
4837 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
4838
4839         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
4840         of the two sizes to assemble_integer.
4841
4842 2004-05-25  Paul Brook  <paul@codesourcery.com>
4843
4844         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
4845         pointless #ifdef.
4846
4847 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
4848
4849         * Makefile.in (top_builddir): Define to .
4850
4851 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
4852
4853         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
4854         top-level detects, except when in-tree ld is being cross-built.
4855         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
4856         then AS only if target is host.
4857         * configure: Rebuilt.
4858
4859 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
4860
4861         * global.c (global_alloc): Call make_accurate_live_analysis.
4862         (record_one_conflict): Remove dead code.
4863         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
4864         (bb_info): New structure.
4865         (BB_INFO, BB_INFO_BY_INDEX): New macros.
4866         (allocate_bb_info, free_bb_info, mark_reg_change,
4867         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
4868         modify_bb_reg_pav, calculate_reg_pav,
4869         make_accurate_live_analysis): New functions.
4870
4871 2004-05-25  Devang Patel  <dpatel@apple.com>
4872
4873         * alias.c (init_alias_analysis): Use ggc_calloc instead of
4874         xrealloc.
4875         (end_alias_analysis): Use ggc_free instead fo free.
4876
4877 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
4878
4879         PR target/15546
4880         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
4881         as needed to be outputted.
4882
4883 2004-05-25  Jan Hubicka  <jh@suse.cz>
4884
4885         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
4886
4887 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
4888         Mostafa Hagog  <mustafa@il.ibm.com>
4889
4890         * Makefile.in (modulo-sched.o, ddg.o): New.
4891         * ddg.h, ddg.c, modulo-sched.c: New files.
4892         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
4893         internals to "dupicate_insn".
4894         (duplicate_insn): New function.
4895         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
4896         declarations.
4897         * common.opt (fmodulo-sched): New flag.
4898         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
4899         Remove static and forward declaration.
4900         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
4901         functions.
4902         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
4903         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
4904         declarations.
4905         * flags.h (flag_modulo_sched): New flag.
4906         * opts.c (common_handle_option): Handle modulo-sched flag.
4907         * params.def (max-sms-loop-number, sms-max-ii-factor,
4908         sms-dfa-history, sms-loop-average-count-threshold): New
4909         parameters.
4910         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
4911         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
4912         parameters.
4913         * passes.c ("sms", "sms-vcg"): New dumps.
4914         (rest_of_handle_sched): Call sms_schedule.
4915         * rtl.h (sms_schedule): New declaration.
4916         * timevar.def (TV_SMS): New.
4917         * toplev.c (flag_modulo_sched): Initialize.
4918         (f_options): Handle -fmodulo-sched option.
4919         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
4920         * docs/passes.texi: Document new SMS pass.
4921
4922 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
4923
4924         * Makefile.in (OBJS): Add rtlhooks.o.
4925         (rtlanal.o): Depend on function.h.
4926         (cse.o): Depend on rtlhooks-def.h.
4927         (combine.o): Depend on rtlhooks-def.h.
4928         (rtlhooks.o): New rule.
4929         * combine.c: Include rtlhooks-def.h.
4930         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
4931         num_sign_bit_copies, cached_num_sign_bit_copies,
4932         num_sign_bit_copies1): Move most of the code to rtlanal.c.
4933         (reg_nonzero_bits_for_combine,
4934         reg_num_sign_bit_copies_for_combine): New functions holding
4935         the remnants of the above.
4936         (combine_rtl_hooks): New.
4937         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
4938         * cse.c: Include rtlhooks-def.h.
4939         (cse_rtl_hooks): New.
4940         (cse_main): Set rtl_hooks instead of gen_lowpart.
4941         * emit-rtl.c (gen_lowpart): Remove.
4942         (gen_lowpart_general): Move to rtlhooks.c.
4943         * rtl.h (nonzero_bits, num_sign_bit_copies,
4944         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
4945         (gen_lowpart_general): Remove.
4946         (gen_lowpart): Temporarily redefine as a macro.
4947         * rtlanal.c: Include function.h.
4948         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
4949         num_sign_bit_copies, cached_num_sign_bit_copies,
4950         num_sign_bit_copies1): New, from combine.c.
4951         * rtlhooks.c: New file.
4952         * rtlhooks-def.h: New file.
4953
4954 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
4955
4956         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
4957         to support 32-bit -mint8 mode.
4958
4959         * doc/invoke.texi (-mint8): Added documentation for the -mint8
4960         option in the AVR architecture.
4961
4962 2004-05-24  Mike Stump  <mrs@apple.com>
4963
4964         * doc/install.texi: Document that dejagnu 1.4.4 is required.
4965
4966 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
4967
4968         * intl.h (open_quote, close_quote): New.
4969         * intl.c (open_quote, close_quote): New.
4970         (gcc_init_libintl): Set them.
4971         * pretty-print.c: Include "intl.h".
4972         (pp_base_format_text): Support 'q' format flag and %` and %'
4973         formats.  Use ' instead of ` in comments.
4974         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
4975         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
4976         foramt_types_orig): Describe these new formats.
4977         (decode_format_attr, check_function_format,
4978         check_format_info_main): Use these new formats.
4979         (status_warning): Use ATTRIBUTE_GCC_DIAG.
4980         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
4981         check these formats to 3.5.
4982
4983 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4984
4985         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
4986         (BACKEND): Reflect this.
4987         (LIBDEPS): Move CPPLIB before LIBIBERTY.
4988         (LIBS): Likewise.
4989
4990 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
4991
4992         PR tree-optimization/14197
4993         * builtins.c: Include "tree-gimple.h"
4994         (readonly_data_expr): Use get_base_address.  Make sure to call
4995         decl_readonly_section only on trees it can handle.
4996         * tree-gimple.c (get_base_address): Accept STRING_CST and
4997         CONSTRUCTOR expressions.
4998         * Makefile.in: Update dependencies.
4999
5000 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
5001
5002         Move libcpp to the toplevel.
5003         * Makefile.in: Remove references to libcpp files,
5004         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
5005         and change hashtable.h to that.
5006         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
5007         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
5008         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
5009         * configure: Regenerate.
5010         * config.in: Regenerate.
5011         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
5012         * cppcharset.c: Removed.
5013         * cpperror.c: Removed.
5014         * cppexp.c: Removed.
5015         * cppfiles.c: Removed.
5016         * cpphash.c: Removed.
5017         * cpphash.h: Removed.
5018         * cppinit.c: Removed.
5019         * cpplex.c: Removed.
5020         * cpplib.c: Removed.
5021         * cpplib.h: Removed.
5022         * cppmacro.c: Removed.
5023         * cpppch.c: Removed.
5024         * cpptrad.c: Removed.
5025         * cppucnid.h: Removed.
5026         * cppucnid.pl: Removed.
5027         * cppucnid.tab: Removed.
5028         * hashtable.c: Removed.
5029         * hashtable.h: Removed.
5030         * line-map.c: Removed.
5031         * line-map.h: Removed.
5032         * mkdeps.c: Removed.
5033         * mkdeps.h: Removed.
5034         * stringpool.h: Include symtab.h instead of hashtable.h.
5035         * tree.h: Include symtab.h instead of hashtable.h.
5036         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
5037
5038 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
5039
5040         * gcc.c (struct prefix_list): Add forward declaration.
5041         (do_spec_path): New function, extracted from...
5042         (do_spec_1) <'D'>: ... here.  Drop support for
5043         SPACE_AFTER_L_OPTION.
5044         (do_spec_1) <'I'>: Use do_spec_path.
5045         (process_command): Do not store the 'include' suffix
5046         in include_prefixes.
5047         * system.h: Poison SPACE_AFTER_L_OPTION.
5048
5049 2002-05-23  Roger Sayle  <roger@eyesopen.com>
5050
5051         * fold-const.c (non_lvalue): Explicitly list the tree codes that
5052         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
5053
5054 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
5055
5056         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
5057         Update based on printed manual.  Enable setting of offsets for
5058         FSFPRINT and move it to gcc-common.texi.
5059         * doc/gcc.texi: Update FSF printing details.
5060         * doc/gccint.texi: Remove FSF printing details.
5061
5062 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
5063
5064         * config/rs6000/t-rs6000: Remove the disabling -Werror.
5065
5066 2004-05-22  Roger Sayle  <roger@eyesopen.com>
5067
5068         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
5069         expand_builtin_strrchr, expand_builtin_strpbrk,
5070         expand_builtin_mempcpy, expand_builtin_memcmp,
5071         expand_builtin_strcmp, expand_builtin_strncmp,
5072         expand_builtin_strcat, std_expand_builtin_va_start,
5073         std_expand_builtin_va_arg, expand_builtin_va_copy,
5074         expand_builtin_signbit, fold_builtin_cabs,
5075         fold_builtin_logarithm, fold_builtin_mempcpy,
5076         fold_builtin_signbit, fold_builtin_isascii,
5077         fold_builtin_toascii, fold_builtin_isdigit,
5078         fold_builtin_1, build_function_call_expr,
5079         simplify_builtin_strchr, simplify_builtin_strrchr,
5080         simplify_builtin_strpbrk, simplify_builtin_strncpy,
5081         simplify_builtin_memcmp, simplify_builtin_strcmp,
5082         simplify_builtin_strncmp, simplify_builtin_strncat,
5083         simplify_builtin_strspn, simplify_builtin_strcspn,
5084         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
5085         to build with calls to build2, build3 or omit_one_operand.
5086
5087 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
5088
5089         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
5090         section when generating EABI code.
5091
5092 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
5093
5094         PR 15546
5095         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
5096         Call mark_decl_referenced on the SYMBOL_REF_DECL.
5097
5098 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
5099
5100         * c-common.c (c_common_truthvalue_conversion): Handle
5101         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
5102         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
5103         i.e. set the type to truthvalue_type_node and return.
5104
5105 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
5106
5107         * tree.h (struct tree_decl): Add possibly_inlined bit.
5108         (DECL_POSSIBLY_INLINED): New accessor macro.
5109         * cgraph.h: Remove declaration of cgraph_inline_hash.
5110         * cgraph.c: Remove definition of cgraph_inline_hash.
5111         (hash_node): Revert to hashing DECL_UID.
5112         (eq_node): Take two pointers to cgraph_node structures.
5113         Compare DECL_UIDs.
5114         (cgraph_remove_node): Pass the node directly to htab_find_slot.
5115         (cgraph_varpool_hash_node): Rename hash_varpool_node;
5116         hash on DECL_UID.
5117         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
5118         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
5119         (cgraph_node): Allocate a temporary node on the stack, fill in
5120         its DECL field, and pass that to htab_find_slot.
5121         (cgraph_varpool_node): Likewise.
5122         (cgraph_function_possibly_inlined_p): If global info is ready,
5123         return the DECL_POSSIBLY_INLINED bit.
5124         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
5125         instead of mucking with cgraph_inline_hash.
5126
5127 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
5128
5129         * doc/contrib.texi: Add g77 contributors.
5130
5131 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
5132
5133         * calls.c (initialize_argument_information): Forbid sibcalls if a
5134         callee-copied argument is stored in the current function's frame.
5135
5136 2004-05-22  Eric Christopher  <echristo@redhat.com>
5137
5138         * fix-header.c (read_scan_file): Update for add_path change.
5139
5140 2004-05-22  Ben Elliston  <bje@au.ibm.com>
5141
5142         * c.opt (Wmissing-include-dirs): New.
5143         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
5144         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
5145         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
5146         * c-incpath.h (add_path): Add fourth (bool) argument.
5147         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
5148         (add_standard_paths): Likewise.
5149         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
5150         is used and the directory was user-supplied via -I.
5151         (add_path): Set p->user_supplied_p.  Remove duplicated code by
5152         using add_cpp_dir_path ().
5153         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
5154         (struct cpp_dir): Add user_supplied_p.
5155         * doc/invoke.texi (Warning Options): Document new option.
5156
5157 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
5158
5159         * fold-const.c (fold_read_from_constant_string): Convert result to
5160         requested type.
5161
5162 2004-05-21  Richard Henderson  <rth@redhat.com>
5163
5164         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
5165         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
5166         Don't mark VA_ARG_EXPRs volatile here.
5167         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
5168
5169 2004-05-21  Richard Henderson  <rth@redhat.com>
5170
5171         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
5172         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
5173
5174 2004-05-21  Roger Sayle  <roger@eyesopen.com>
5175
5176         * fold-const.c (fold, fold_relational_hi_lo,
5177         nondestructive_fold_binary_to_constant,
5178         fold_read_from_constant_string): Use fold_convert instead of convert.
5179         * builtins.c (simplify_builtin, simplify_builtin_strstr,
5180         simplify_builtin_strchr, simplify_builtin_strrchr,
5181         simplify_builtin_strpbrk): Use fold_convert instead of convert.
5182
5183 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
5184
5185         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
5186         is NULL.
5187
5188 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
5189
5190         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
5191         override sparc.h definition.
5192
5193 2004-05-20  Roger Sayle  <roger@eyesopen.com>
5194
5195         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
5196         get_unwidened, get_narrower): Replace build with build2.
5197         * fold-const.c (negate_expr, associate_trees, size_binop,
5198         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
5199         pedantic_omit_one_operand, distribute_bit_expr,
5200         make_bit_field_ref, optimize_bit_field_compare,
5201         decode_field_reference, range_binop, make_range,
5202         build_range_check, fold_range_test, fold_truthop,
5203         optimize_minmax_comparison, extract_muldiv_1,
5204         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
5205         fold_inf_compare, fold_single_bit_test, fold,
5206         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
5207         Likewise replace build with either build2 or build3.
5208
5209 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
5210
5211         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
5212         * calls.c (prepare_call_address): Don't test
5213         NO_RECURSIVE_FUNCTION_CSE.
5214         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
5215         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5216         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5217         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5218         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5219         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5220         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5221         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5222         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5223         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5224         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5225         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
5226         Likewise.
5227         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5228         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
5229         * doc/tm.texi (Costs): Remove documentation for
5230         NO_RECURSIVE_FUNCTION_CSE.
5231
5232 2004-05-20  Paul Brook  <paul@codesourcery.com>
5233
5234         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
5235         * unwind-dw2.c (extract_cie_info): Ditto.
5236         (_Unwind_FrameState): Change retaddr_column to word type.
5237
5238 2004-05-20  Roger Sayle  <roger@eyesopen.com>
5239
5240         PR middle-end/3074
5241         * fold-const.c (strip_compound_expr): Delete function.
5242         (count_cond): Delete function.
5243         (fold_binary_op_with_conditional_arg): Only perform transformations
5244         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
5245         when a is constant.  This greatly simplifies this routine.
5246
5247         * tree.c (saved_expr_p): Delete function.
5248         * tree.h (saved_expr_p): Delete function prototype.
5249
5250 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
5251
5252         * common.opt (ftree-loop-optimize): Remove.
5253
5254 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
5255
5256         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
5257         (NM_FOR_TARGET): Use := and $(shell).
5258         (mainversion): Remove unused variable.
5259
5260 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5261
5262         * reorg.c (delete_from_delay_slot): If we have a barrier after the
5263         sequence containing the insn to be deleted, always reemit it.
5264
5265 2004-05-20  Richard Henderson  <rth@redhat.com>
5266
5267         PR 15454
5268         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
5269         * function.c (expand_function_start): Expand static_chain_decl by hand.
5270         * gimplify.c (create_tmp_var_name): Export.
5271         * tree-gimple.h (create_tmp_var_name): Declare.
5272
5273 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
5274
5275         * rs6000.c (print_operand) <case 'z'>: Call
5276         mark_decl_referenced before assemble_name.
5277
5278 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
5279
5280         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
5281         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
5282         (cgraph_varpool_node): Hash on the pointer to the decl, not
5283         the DECL_UID.  Fixes 64-bit bootstrap failure.
5284
5285 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
5286
5287         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
5288         we don't earlyclobber operands used in the second insn.
5289
5290 2004-05-20  Steven Bosscher  <stevenb@suse.de>
5291
5292         * tree-mudflap.c: Formatting fixes.
5293
5294 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
5295
5296         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
5297         * gengtype.c (open_base_files): Include reload.h in ifiles.
5298         * reload.h (reg_equiv_memory_loc_varray): Declare.
5299         * reload1.c (reg_equiv_memory_loc_varray): New variable.
5300         (init_reload): Initialize it.
5301         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
5302         reg_equiv_memory_loc_varray to size 0.
5303         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
5304         growing reg_equiv_memory_loc_varray to the desired size.
5305         * passes.c (rest_of_handle_old_regalloc): Likewise.
5306         * reload.c: Amend comment on calling init_reload.
5307
5308 2004-05-20  Nick Clifton  <nickc@redhat.com>
5309
5310         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
5311         with 'TRAMP' in the body of the macro definition.
5312
5313 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
5314
5315         PR target/15383
5316         * config/ia64/ia64.c (ia64_expand_compare): Don't check
5317         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
5318         cmptf_libfunc isn't set.
5319         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
5320         conventions.
5321         (ia64_sysv4_init_libfuncs): New.
5322
5323         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
5324         ia64_sysv4_init_libfuncs.
5325
5326 2004-05-20  Falk Hueffner  <falk@debian.org>
5327
5328         PR other/15526
5329         * libgcc2.c (__mulvsi3): Fix overflow test.
5330
5331 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
5332
5333         PR c/14171
5334         * reg-stack.c (nan): Rename to ...
5335         (not_a_num): Here.
5336         (reg_to_stack): Rename nan to not_a_num.
5337         (subst_stack_regs_pat): Likewise.
5338         (convert_regs_entry): Likewise.
5339         (convert_regs_1): Likewise.
5340
5341         * tree-cfg.c (find_case_label_for_value): Replace call to
5342         simple_cst_equal with tree_int_cst_equal.
5343
5344 2004-05-19  Jeff Law <law@redhat.com>
5345
5346         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
5347         If the operand is for a use, then strip away the SSA_NAME, do not
5348         strip away the SSA_NAME for a set.  Never call release_ssa_name.
5349         (mark_def_sites): Appropriately pass additional argument to
5350         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
5351         then set the VDEF_RESULT to the VDEF_OP.
5352         (set_def_block): Strip away any SSA_NAME to get to the real
5353         underlying variable.
5354
5355         * tree-ssa-phiopt.c (value_replacement): Handle the case where
5356         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
5357         BB directly.
5358
5359 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5360
5361         PR c++/15463
5362         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
5363         result of inverse.
5364
5365         PR rtl-optimization/15274
5366         * loop-iv.c (determine_max_iter, shorten_into_mode,
5367         iv_number_of_iterations): Handle constants correctly.
5368         * rtl.h (get_mode_bounds): Declaration changed.
5369         * stor-layout.c (get_mode_bounds): Return a constant suitable for
5370         the target mode.
5371
5372         PR rtl-optimization/14692
5373         * loop-unswitch.c (may_unswitch_on): Try folding the result.
5374         (unswitch_single_loop): Work correctly when may_unswitch_on
5375         returns a folded constant.
5376
5377         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
5378         * simplify-rtx.c (simplify_const_relational_operation): Optimize
5379         comparisons with mode bounds.
5380
5381         * function.c (struct temp_slot): Add new field prev.
5382         (free_after_compilation, init_temp_slots): Free new fields.
5383         (cut_slot_from_list, insert_slot_to_list,
5384         temp_slots_at_level, max_slot_level, move_slot_to_level,
5385         make_slot_available): New functions.
5386         (assign_stack_temp_for_type, combine_temp_slots,
5387         find_temp_slot_from_address, preserve_temp_slots,
5388         preserve_rtl_expr_result, free_temp_slots,
5389         free_temps_for_rtl_expr, pop_temp_slots): Work with
5390         the new structure of lists.
5391         (mark_all_temps_used): Removed.
5392         * function.h (struct function): Field x_temp_slots
5393         replaced by x_used_temp_slots and x_avail_temp_slots.
5394         (temp_slots): Replaced by ...
5395         (used_temp_slots, avail_temp_slots): New.
5396         * tree.h (mark_all_temps_used): Declaration removed.
5397
5398         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
5399         simplify_using_assignment): Take the expression out of
5400         the expr_list wrapper.
5401
5402         * loop-iv.c (iv_number_of_iterations): Improve clasification of
5403         infinite loops.
5404
5405 2004-05-19  Roger Sayle  <roger@eyesopen.com>
5406
5407         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
5408         costs should be based on code size when optimizing for size.
5409
5410 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
5411
5412         * fold-const.c: Remove non-printable character 160.
5413
5414 2004-05-19  Nick Clifton  <nickc@redhat.com>
5415
5416         * doc/invoke.texi (ARM Options): Fix typo.
5417         Remove descrption of -mshort-load-bytes and
5418         -mno-short-load-bytes.
5419
5420         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
5421         missing parenthesis.
5422         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
5423         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
5424
5425 2004-05-19  Steven Bosscher  <stevenb@suse.de>
5426
5427         * expr.c (store_constructor): Build loop start and end by hand
5428         instead of via loop functions from stmt.c.
5429         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
5430         Remove the code to expand them.
5431
5432         * stmt.c (loop_stack): Remove this and everything related.
5433         (struct nesting, enum nesting_desc): Update.
5434         (expand_fixup): Likewise.
5435         (expand_loop_start, expand_start_loop_continue_elsewhere,
5436         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
5437         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
5438         expand_exit_loop_if_false, expand_exit_loop_top_cond,
5439         expand_exit_something): Remove.
5440         * tree.h: Remove prototypes.
5441
5442 2004-05-18  Mike Stump  <mrs@apple.com>
5443             Devang Patel  <dpatel@apple.com>
5444
5445         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
5446         if this label is for eh.
5447         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
5448         * config/darwin.c (darwin_emit_unwind_label): Likewise.
5449         * dwarf2out.c (output_call_frame_info): Likewise.
5450         * output.h (default_emit_unwind_label): Likewise.
5451         * target.h (unwind_label): Likewise.
5452         * varasm.c (default_emit_unwind_label): Likewise.
5453
5454         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
5455         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
5456         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
5457         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
5458         DEBUG_RANGES_SECTION): Define.
5459
5460 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
5461
5462         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
5463         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
5464         (cgraph_varpool_node):
5465         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
5466         (cgraph_function_possibly_inlined_p): Use the decl itself for
5467         the key, not DECL_ASSEMBLER_NAME.
5468         (change_decl_assembler_name): No need to muck with the hash tables.
5469         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
5470         Delete.
5471         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
5472         for the key, not DECL_ASSEMBLER_NAME.
5473         * cgraph.h: Remove prototypes of deleted functions.
5474         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
5475         (mark_decl_referenced): New function.
5476         * tree.h: Prototype mark_decl_referenced.
5477         * final.c (output_addr_const) <case SYMBOL_REF>: Call
5478         mark_decl_referenced before assemble_name.
5479         * c-decl.c (finish_decl): Use mark_decl_referenced.
5480
5481 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
5482             Jeff Law <law@redhat.com>
5483
5484         * tree-ssa-phiopt.c (abs_replacement): New function.
5485         (empty_block_p): New function extracted from...
5486         (candidate_bb_for_phi_optimization): Break out empty block test.
5487         (conditional_replacement): Use empty_block_p.
5488         (value_replacement): Similarly.
5489
5490         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
5491         * tree-ssa-phiopt.c: Include flags.h.
5492         (conditional_replacement): Remove argument names from prototype.
5493         Minor formatting and comment fixes.
5494         (tree_ssa_phiopt): If conditional_replacement returns false, then
5495         call value_replacement.
5496         (value_replacement): New function.
5497
5498 2004-05-18  Jeff Law  <law@redhat.com>
5499
5500         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
5501         from conditional_replacement.
5502         (candidate_bb_for_phi_optimization): Similarly.
5503         (conditional_replacement): Use replace_phi_with_stmt and
5504         candidate_bb_for_phi_optimization.
5505
5506         * tree-ssa-phiopt.c: Fix various formatting issues.
5507
5508 2004-05-18  Steven Bosscher  <stevenb@suse.de>
5509
5510         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
5511         s390_expand_cmpmem): Do not use expand_start_loop and
5512         expand_end_loop, instead build the loop manually.
5513
5514 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
5515
5516         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
5517         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
5518
5519 2004-05-17  Jeff Law  <law@redhat.com>
5520
5521         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
5522         * flags.h (flag_delete_null_pointer_checks): Here.
5523         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
5524         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
5525         (add_phi_arg, remove_phi_arg_num): Similarly.
5526         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
5527         property into PHI nodes.
5528         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
5529         (record_equivalences_from_phis): If all PHI arguments are known to be
5530         nonzero, then the result must be nonzero as well.
5531         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
5532         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
5533         appropriately.  Walk the USE-DEF chains and propagate nonzero property
5534         as appropriate.
5535         * tree.h (PHI_ARG_NONZERO): Define.
5536         (phi_arg_d): Add nonzero flag.
5537
5538 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
5539
5540         * f: Entire directory removed
5541
5542         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
5543         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
5544         (g77_integer_type_node, g77_uinteger_type_node)
5545         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
5546         * c-common.c (c_common_nodes_and_builtins): Do not initialize
5547         the above set of variables.
5548
5549         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
5550         * doc/invoke.texi, doc/standards.texi: Remove cross-references
5551         to g77 manual.
5552
5553 2004-05-17  Steven Bosscher  <stevenb@suse.de>
5554
5555         PR tree-optimization/15438
5556         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
5557         attributed functions as pure or const.
5558
5559 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
5560
5561         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
5562         from source code with errors.
5563
5564 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
5565
5566         Enable tree browser for all front ends.
5567         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
5568         (BACKEND): ...to here.
5569
5570 2004-05-17  Jan Hubicka  <jh@suse.cz>
5571
5572         * i386.c (construct_container): Do not produce BLKmode registers.
5573         (classify_argument): Properly compute alignment of complex types.
5574
5575 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
5576
5577         PR target/15084
5578         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
5579         and renamed to movdi_insv_1_rex64.
5580         (insv): Support SImode for 32bit and DImode for 64bit.
5581
5582 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
5583
5584         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
5585         (TARGET_SWITCHES): Remove debugg.
5586         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
5587         TARGET_64BIT.
5588         (subdi3): Replace the define_expand with a define_insn, the latter
5589         renamed from subdi3_internal_3.
5590         (negdi2): Likewise negdi2_internal_2.
5591         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
5592         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
5593         and associated define_splits.
5594         (adddi3_internal): Renamed from adddi3_internal_3.
5595         (ashldi3_internal): Likewise ashldi3_internal4.
5596         (ashrdi3_internal): Likewise ashrdi3_internal4.
5597         (lshrdi3_internal): Likewise lshrdi3_internal4.
5598
5599 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
5600
5601         * optabs.c (expand_unop): Try implementing negation using subtraction
5602         from zero.
5603
5604 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5605
5606         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
5607         SAR register.
5608
5609 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
5610
5611         PR target/10982
5612         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
5613         (ne_zeroextractsi_shifted): New pattern.
5614         (ite_ne_zeroextractsi): New pattern.
5615         (ite_ne_zeroextractsi_shifted): New pattern.
5616
5617 2004-05-15  Steven Bosscher  <stevenb@suse.de>
5618
5619         * c-gimplify.c (c_genericize):
5620         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
5621         * c-parse.in <expr_no_commas>: Likewise.
5622         <if_prefix>: Likewise.
5623         <select_or_iter_stmt>: Likewise.
5624         * expr.c (expand_var, expand_expr_real_1): Likewise.
5625         * expr.h (expand_expr): Make it a static inline function.
5626         Move prototype for expand_expr_real up before this.
5627         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
5628         Likewise.
5629         * gimplify.c (gimple_boolify, gimplify_addr_expr,
5630         gimplify_asm_expr, gimplify_expr): Likewise.
5631         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
5632         dump_function_to_file): Likewise.
5633         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
5634         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
5635         * tree-into-ssa.c (dump_tree_ssa): Likewise.
5636         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
5637         Likewise.
5638         * tree-optimize.c (execute_one_pass): Likewise.
5639         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
5640         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
5641
5642         * objc/objc-act.c (objc_build_try_enter_fragment,
5643         objc_build_try_epilogue, objc_build_catch_stmt,
5644         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
5645         with lang_hooks.foo ().
5646
5647 2004-05-15  Roger Sayle  <roger@eyesopen.com>
5648
5649         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
5650         that simplify_builtin doesn't destructively modify its argument.
5651
5652 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
5653
5654         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
5655         implementations for ARM and Thumb.
5656         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
5657
5658 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
5659
5660         * prefix.c (update_path): Replace PREFIX with KEY only
5661         when it matches a full directory name in PATH.
5662
5663 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
5664
5665         * arm.h (TARGET_APCS_32): Delete.
5666         (TARGET_MMU_TRAPS): Delete.
5667         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
5668         define __APCS_26__.
5669         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
5670         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
5671         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
5672         (prog_mode_type): Delete.
5673         (PROMOTE_MODE): Always promote unsigned for HImode.
5674         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
5675         (MASK_RETURN_ADDR): Simplify.
5676         * arm.c (arm_prgmode): Delete.
5677         (arm_override_options, arm_gen_rotated_half_load): Simplify.
5678         (print_multi_reg, output_return_instruction): Simplify.
5679         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
5680         (arm_return_addr): Simplify.
5681         * arm.md (prog_mode): Delete.
5682         (conds): Simplify.
5683         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
5684         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
5685         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
5686         (loadhi_shiftpredec): Delete.
5687         (peephole for post-increment on HImode load): Delete.
5688         * arm/crtn.asm: (FUNC_END): Simplify.
5689         * arm/lib1funcs.asm: Remove APCS-26 return macros.
5690         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
5691         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
5692         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
5693         MULTILIB_DEFAULTS as required.
5694         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
5695         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
5696         variables as required.
5697         * doc/invoke.texi (ARM Options): Remove obsolete flags.
5698
5699 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
5700
5701         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
5702         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
5703         count to 8 to handle n_reg > 2.
5704
5705 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
5706
5707         * doc/extend.texi: Update WG14 URL.
5708
5709 2004-05-15  Steven Bosscher  <stevenb@suse.de>
5710
5711         * basic-block.h (life_analysis, delete_noop_moves):
5712         Update prototypes.
5713         * bt-load.c (branch_target_load_optimize): Don't take the
5714         insns stream as an argument.  Update the life_analysis calls.
5715         * combine.c (combine_instructions): Update delete_noop_moves
5716         calls.
5717         * flow.c (notice_stack_pointer_modification): Don't take the
5718         insns stream as an argument.  Work on the flow graph.
5719         (life_analysis): Likewise.
5720         (delete_noop_moves): Likewise.
5721         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
5722         (rest_of_handle_life): Update life_analysis call.
5723         (rest_of_compilation): Likewise, and also update
5724         branch_target_load_optimize call.
5725         * ra.c (reg_alloc): Update life_analysis call.
5726         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
5727         the insns stream as an argument.
5728         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
5729         call.
5730         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
5731         prototypes.
5732         * value-profile.c (branch_prob): Update life_analysis call.
5733         * web.c (web_main): Work on the CFG, not on the insns stream.
5734
5735         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
5736         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
5737         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
5738
5739 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
5740
5741         PR c/15444
5742         * c-format.c (avoid_dollar_number): New function.
5743         (check_format_info_main): Call avoid_dollar_number when operand
5744         numbers might occur but has_operand_number == 0.
5745
5746 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
5747
5748         * arm.md (all peephole2 patterns): Use predicates that validate
5749         register classes as appropriate.
5750
5751 2004-05-14  Steven Bosscher  <stevenb@suse.de>
5752
5753         PR opt/14472
5754         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
5755         ignore type conversions that do not inhibit tail calling.
5756         (find_tail_calls): Likewise.
5757
5758 2004-05-14  Jeff Law  <law@redhat.com>
5759
5760         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
5761         bother marking bypassed virtuals for out-of-ssa.  Instead merge
5762         bypassed virtuals into vars_to_rename just before into-ssa pass.
5763
5764         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
5765         so that it picks up more opportunities to eliminate ABS expressions
5766         or turn them into negations.
5767
5768 2004-05-14  Steven Bosscher  <stevenb@suse.de>
5769
5770         * passes.c (rest_of_handle_null_pointer): Remove.
5771         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
5772         (rest_of_compilation): Likewise.
5773         * rtl.h (delete_null_pointer_checks): Remove prototype.
5774         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
5775         Remove declarations.
5776         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
5777         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
5778         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
5779         expr_reaches_here_p, computing_insn, def_reaches_here_p,
5780         can_disregard_other_sets, handle_avail_expr, classic_gcse,
5781         one_classic_gcse_pass, invalidate_nonnull_info,
5782         delete_null_pointer_checks_1, delete_null_pointer_checks,
5783         expr_reached_here_p_work): Remove.
5784         (gcse_main): Do not perform classic GCSE when optimizing for size.
5785         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
5786         are never used.
5787
5788 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
5789
5790         PR optimization/14466
5791         * tree-complex.c (make_temp): Remove.
5792         (gimplify_val): Replace make_temp with make_rename_temp
5793         and add NULL as the second argument.
5794         (expand_complex_div_wide): Likewise.
5795         * tree-dfa.c (make_rename_temp): New function.
5796         * tree-flow.h (make_rename_temp): Declare.
5797         * tree-sra.c (make_temp): Remove.
5798         (lookup_scalar): Replace make_temp with make_rename_temp.
5799         (create_scalar_copies): Likewise.
5800         * tree-ssa-phiopt.c (conditional_replacement): When we
5801         get non gimple create a temporary variable to hold the
5802         casted expression.
5803
5804 2004-05-14  Paul Brook  <paul@codesourcery.com>
5805
5806         * stor-layout.c (update_alignment_for_field): Use
5807         targetm.align_anon_bitfield.
5808         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
5809         (TARGET_INITIALIZER): Use it.
5810         * target.h (struct gcc_target): Add align_anon_bitfield.
5811         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
5812         (TARGET_ALIGN_ANON_BITFIELD): Define.
5813         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
5814
5815 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
5816
5817         * tree.def (documentation): Remove mention of class 'b'.
5818         (BLOCK): Now in class 'x'.
5819         * c-common.c (verify_tree): Remove case 'b'.
5820         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
5821         * calls.c (calls_function_1): Control cannot get past the switch
5822         when exp is a BLOCK.
5823         * print-tree.c (print_node): Move code for class 'b' to the class
5824         'c'/'x' switch, as case BLOCK.
5825         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
5826         (unsafe_for_reeval, substitute_placeholder_in_expr)
5827         (stabilize_reference_1): Remove case 'b'.
5828         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
5829         of something being 'b' to tests for TREE_CODE of something being
5830         BLOCK.
5831         * tree-ssa-operands.c (get_expr_operands): Likewise.
5832
5833 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
5834
5835         * tree-gimple.c: Rename from tree-simple.c.
5836         * tree-gimple.h: Rename from tree-simple.h.
5837         * c-gimplify.c: Rename from c-simplify.c
5838         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
5839         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
5840         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
5841         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
5842         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
5843         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
5844         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
5845         Update.
5846
5847 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
5848
5849         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
5850
5851 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
5852
5853         * tree-ssa.c (delete_tree_ssa): XFREE
5854         bitmaps allocated with BITMAP_XMALLOC.
5855
5856         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
5857         idfs_cache at the end of the function.
5858
5859         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
5860         at the end of the function.
5861
5862         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
5863         el at the end of the function.
5864
5865         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
5866         bitmaps allocated with BITMAP_XMALLOC.
5867
5868         * loop-unswitch.c (unswitch_single_loop): Free bbs at
5869         the end.
5870
5871         * final.c (shorten_branches): Free uid_shuid before
5872         reallocating it.
5873
5874         * bb-reoder.c (connect_traces): Free cold_traces at the end.
5875
5876 2004-05-13  Jeff Law  <law@redhat.com>
5877
5878         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
5879         variables.  Simplify slightly by using USE_OP/DEF_OP instead
5880         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
5881
5882         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
5883         rather than iterating through the blocks testing each bit in
5884         livein to initialize the worklist.
5885         (mark_def_sites): Remove useless checks of KILLS for virtual
5886         operands.
5887
5888         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
5889         new parameters for the statement and variable worklist as well
5890         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
5891         worklist recording interesting variables in the variable worklist
5892         and bitmap.  Handle casts between integral and boolean types.
5893         (substitute_single_use_vars): Accept new parameters for the statement
5894         and variable worklist.  When a substitution is made add a new
5895         entry to the statement worklist.  Handle casts between integral
5896         and boolean types.
5897         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
5898         worklists to children.  Iterate until the statement worklist
5899         is empty.
5900
5901 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
5902
5903         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
5904         the end of the block.
5905
5906         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
5907         with BITMAP_XMALLOC.
5908
5909         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
5910         with BITMAP_XMALLOC.
5911
5912         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
5913         Free nonzero_vars at the end of the function.
5914
5915         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
5916         need to generate code instead of a NOP_EXPR.
5917
5918 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
5919
5920         * gcc.c (default_compilers): Fill out initializers for new Fortran
5921         entries.
5922
5923 2004-05-13  Paul Brook  <paul@codesourcery.com>
5924
5925         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
5926
5927 2004-05-13  Paul Brook  <paul@codesourcery.com>
5928
5929         * config/arm/arm.c (arm_default_short_enums): New function.
5930         (TARGET_DEFAULT_SHORT_ENUMS): Define.
5931
5932 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
5933
5934         Merge from tree-ssa-20020619-branch.
5935
5936         * Makefile.in (reload1.o-warn): Add.
5937         (tree-alias-ander.o-warn): Add.
5938         (GMPLIBS): Define.
5939         (GMPINC): Define.
5940         (BANSHEELIB): Define.
5941         (BANSHEEINC): Define.
5942         (TREE_DUMP_H): Define.
5943         (TREE_SIMPLE_H): Define.
5944         (TREE_FLOW_H): Define.
5945         (LIBDEPS): Add BANSHEELIB.
5946         (INCLUDES): Add BANSHEEINC and GMPINC.
5947         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
5948         c-mudflap.o and c-pretty-print.o.
5949         (C_OBJS): Remove c-pretty-print.o.
5950         (OBJS-common): Remove sibcall.o.
5951         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
5952         tree-ssa.o, tree-optimize.o, tree-simple.o,
5953         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
5954         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
5955         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
5956         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
5957         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
5958         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
5959         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
5960         tree-tailcall.o, gimple-low.o, tree-iterator.o,
5961         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
5962         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
5963         tree-profile.o.
5964         (OBJC-archive): Add tree-nomudflap.o.
5965         (cc1): Add dependency on @TREEBROWSER@.
5966         (c-decl.o): Add dependency on TREE_DUMP_H.
5967         (c-dump.o): Likewise.
5968         (c-common.o): Add dependency on tree-iterator.h
5969         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
5970         (gtype-desc.o): Add dependency on TREE_FLOW_H.
5971         (tree.o): Add dependency on tree-iterator.h,
5972         BASIC_BLOCK_H and TREE_FLOW_H.
5973         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
5974         (langhooks.o): Add dependency on TREE_SIMPLE_H.
5975         (tree-alias-type.o, tree-alias-ander.o,
5976         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
5977         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
5978         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
5979         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
5980         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
5981         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
5982         tree-nested.o, tree-iterator.o, tree-dfa.o,
5983         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
5984         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
5985         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
5986         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
5987         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
5988         tree-sra.o, tree-complex.o, tree-profile.o,
5989         rtl-profile.o): New rules.
5990         (function.o): Add dependency on basic-block.h
5991         (expr.o): Add dependency on tree-iterator.h.
5992         (sibcall.o): Remove.
5993         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
5994         (cfg.o): Add dependency on TIMEVAR_H.
5995         (cfghooks.o): Add dependency on TREE_FLOW_H.
5996         (reg-stack.o): Add dependency on basic-block.h.
5997         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
5998         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
5999         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
6000         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
6001         tree-alias-type.h, tree-alias-common.h,
6002         tree-alias-type.c, tree-alias-common.c,
6003         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
6004         rtl-profile.c and tree-nested.c.
6005         (gt-tree-alias-common.h, gt-tree-mudflap.h,
6006         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
6007         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
6008         gt-tree-cfg.h, gt-tree-nested.h): New rules.
6009         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
6010         * basic-block.h: Include predict.h
6011         (struct edge_def): Add GTY marker.
6012         Change field 'insns' to be a union of tree and rtx.
6013         (EDGE_TRUE_VALUE): Define.
6014         (EDGE_FALSE_VALUE): Define.
6015         (EDGE_EXECUTABLE): Define.
6016         (struct bb_ann_d): Forward declare.
6017         (struct basic_block_def): Add GTY marker.
6018         Remove fields head_tree and end_tree.
6019         Add fields stmt_list, rbi and tree_annotations.
6020         (struct reorder_block_def): Define.
6021         (basic_block_info): Add GTY marker.
6022         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
6023         variables instead of macros.
6024         (flow_call_edges_add): Remove declaration.
6025         (make_eh_edge): Remove declaration.
6026         (brief_dump_cfg, find_edge, tree_predicted_by_p,
6027         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
6028         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
6029         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
6030         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
6031         (try_redirect_by_replacing_jump): Modfiy return type to
6032         edge instead of bool.
6033         * bb-reorder.c (copy_bb): Call duplicate_block
6034         instead of cfg_layout_duplicate_bb.
6035         (copy_bb_p): Call can_duplicate_block_p instead of
6036         cfg_layout_can_duplicate_bb_p.
6037         * bitmap.c (bitmap_first_set_bit): Abort if word
6038         wasn't found.
6039         (bitmap_last_set_bit): Likewise.
6040         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
6041         (DEF_FUNCTION_TYPE_3): Add.
6042         * builtins.c (c_strlen): Make extern.
6043         (builtin_save_expr): New.
6044         (expand_builtin_nonlocal_goto): New.
6045         (expand_builtin_constant_p): Remove.
6046         (expand_builtin_mathfn): Call builtin_save_expr instead
6047         of save_expr.
6048         (expand_builtin_mathfn_2): Likewise.
6049         (expand_builtin_strcmp): Likewise.
6050         (expand_builtin_strncmp): Likewise.
6051         (expand_builtin_strcat): Likewise.
6052         (fold_builtin_cabs): Likewise.
6053         (expand_builtin_alloca): Don't trigger if -fmudflap is
6054         given.
6055         (build_string_literal): Set TREE_INVARIANT on new node.
6056         (expand_builtin_profile_fun): New.
6057         (round_trampoline_addr): New.
6058         (expand_builtin_init_trampoline): New.
6059         (expand_builtin_adjust_trampoline): New.
6060         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
6061         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
6062         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
6063         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
6064         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
6065         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
6066         Handle.
6067         (fold_builtin_expect): New.
6068         (fold_builtin_isascii): Don't return non-constant results
6069         in GIMPLE form.
6070         (fold_builtin_isdigit): Likewise.
6071         (fold_builtin_1): New.
6072         (fold_builtin): Call it.
6073         (build_function_call_expr): Update call to build a new
6074         CALL_EXPR.
6075         (purge_builtin_constant_p): Remove.
6076         (simplify_builtin, simplify_builtin_memcmp,
6077         simplify_builtin_strcmp, simplify_builtin_strncmp,
6078         simplify_builtin_strpbrk, simplify_builtin_strstr,
6079         simplify_builtin_strchr, simplify_builtin_strrchr,
6080         simplify_builtin_strcat, simplify_builtin_strncat,
6081         simplify_builtin_strspn, simplify_builtin_strcspn,
6082         simplify_builtin_next_arg, simplify_builtin_va_start,
6083         simplify_builtin_sprintf): New.
6084         * builtins.def (BUILT_IN_STACK_ALLOC,
6085         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
6086         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
6087         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
6088         BUILT_IN_PROFILE_FUNC_EXIT): Define.
6089         * c-common.c: Include tree-iterator.h and hashtab.h.
6090         (lang_statement_code_p): Declare.
6091         (lang_gimplify_stmt): Declare.
6092         (fix_string_type): Set TREE_INVARIANT for value.
6093         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
6094         (c_type_hash): New.
6095         (c_common_get_alias_set): Handle multiple type nodes
6096         referring to "the same" type, currently for C90 only.
6097         (c_add_case_label): Use create_artificial_label.
6098         (finish_label_address_expr): Don't set TREE_CONSTANT on
6099         result.
6100         (c_expand_expr): Don't handle STMT_EXPR.
6101         (handle_alias_attribute): Marke aliased variables to be
6102         TREE_STATIC.
6103         (handle_nonnull_attribute): Initialize arg_num.
6104         (check_function_nonnull): Likewise.
6105         (c_walk_subtrees): New.
6106         (c_estimate_num_insns_1): Don't handle
6107         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
6108         (c_decl_uninit_1): Remove.
6109         (c_decl_uninit): Remove.
6110         (c_warn_unused_result): New.
6111         * c-common.def (ASM_STMT): Change number of operands
6112         to 4.
6113         (FILE_STMT): Remove.
6114         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
6115         Remove.
6116         (lang_gimplify_stmt): Add.
6117         (expand_stmt): Remove.
6118         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
6119         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
6120         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
6121         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
6122         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
6123         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
6124         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
6125         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
6126         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
6127         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
6128         genrtl_compound_stmt, genrtl_asm_stmt,
6129         genrtl_cleanup_stmt, c_decl_uninit): Remove.
6130         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
6131         c_tree_chain_matters_p, c_warn_unused_result,
6132         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
6133         Declare.
6134         * c-convert.c (convert): Make convert work when
6135         converting to compatible types across translation unit.
6136         * c-decl.c: Include langhooks.h, tree-mudflap.h,
6137         tree-simple.h, diagnostic.h and tree-dump.h
6138         (merge_decls): Initialize oldtype to NULL.
6139         (finish_decl): Use DECL_HARD_REGISTER instead of
6140         DECL_C_HARD_REGISTER.
6141         (check_bitfield_type_and_width): Check for null
6142         lang_type_specific when check the precision of an enum.
6143         (grokdeclarator): Immediately layout an ARRAY_TYPE used
6144         in a pointer-to-array declarator.
6145         (finish_struct): Clear allocated struct lang_type.
6146         (finish_enum): Set enum_min and enum_max.  Set
6147         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
6148         not to the enumerators.
6149         (set_decl_nonlocal): New.
6150         (store_parm_decls): Use it via walk_tree.
6151         (c_finalize): New.
6152         (finish_function): When !targetm.have_ctors_dtors,
6153         record static constructors and destructors here...
6154         (c_expand_body_1): ... not here.
6155         (c_expand_decl): Rename from c_expand_decl_stmt.
6156         Handle all C-specific expansion semantics.
6157         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
6158         STMT_LINENO.
6159         * c-format.c (handle_format_arg_attribute): Initialize
6160         format_num.
6161         * c-lang.c: Include tree-inline.h
6162         (LANG_HOOKS_EXPAND_DECL,
6163         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
6164         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
6165         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
6166         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
6167         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
6168         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
6169         (c_types_compatible_p): New.
6170         * c-mudflap.c: New file.
6171         * c-objc-common.c: Include tree-mudflap.h
6172         (start_cdtor, finish_cdtor): Collapse
6173         together into
6174         (build_cdtor): ...here.  Update to construct a complete tree
6175         for the function.  No need to call push_scope, pop_scope, or
6176         clear_last_expr, or set current_function_cannot_inline.
6177         (c_missing_noreturn_ok_p): Change prototype to return
6178         bool.
6179         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
6180         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
6181         opts.c.
6182         (c_common_post_options): Don't ever use rtl inlining.
6183         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
6184         * c-pragma.c (handle_pragma_redefine_extname): Define
6185         always.
6186         (init_pragma): Activate #pragma redefine_extname for mudflap.
6187         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
6188         (pp_c_initializer): Accept any type CONSTRUCTOR.
6189         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
6190         COMPLEX_TYPE.
6191         (decl_name_str): New local function.
6192         (pp_c_direct_declarator): Call it.
6193         (pp_c_primary_expression): Call it.
6194         (pp_c_id_expression): Call it.
6195         (pp_c_statement): Call it.
6196         (print_c_tree): Create new pp object.
6197         * c-pretty-print.h (pp_c_tree_decl_identifier,
6198         print_c_tree): Declare.
6199         * c-semantics.c: Include langhooks.h
6200         (lang_expand_stmt, lang_expand_decl_stmt,
6201         find_reachable_label_1, find_reachable_label,
6202         expand_unreachable_if_stmt, expand_unreachable_stmt,
6203         genrtl_do_stmt_1): Remove.
6204         (begin_stmt_tree): Don't check for changed filename.
6205         Call annotate_with_locus.
6206         (finish_stmt_tree): Don't set line for end of function.
6207         (build_stmt): Don't check type nodes for
6208         side effects.
6209         (build_stmt): Set TREE_SIDE_EFFECTS.
6210         Set EXPR_LOCUS instead of STMT_LINENO.
6211         (lang_expand_stmt, lang_expand_decl_stmt,
6212         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
6213         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
6214         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
6215         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
6216         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
6217         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
6218         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
6219         find_reachable_label_1, expand_unreachable_if_stmt,
6220         expand_unreachable_stmt): Remove.
6221         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
6222         * c-simplify.c: New file.
6223         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
6224         (struct lang_type): Add fields enum_min and enum_max.
6225         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
6226         (c_expand_decl, c_missing_noreturn_ok_p,
6227         c_types_compatible_p): Declare.
6228         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
6229         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
6230         (default_function_array_conversion): Rely on build to
6231         set TREE_CONSTANT.
6232         (parser_build_binary_op, pointer_diff): Likewise.
6233         (build_unary_op, build_binary_op): Likewise.
6234         (build_array_ref):
6235         (build_external_ref): Set TREE_INVARIANT.
6236         (build_c_cast, pop_init_level): Likewise.
6237         (process_init_element): Use ASM_VOLATILE_P.
6238         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
6239         (c_finish_case): Call c_do_switch_warnings.
6240         * c.opt (fdump-): Remove.
6241         * calls.c (try_to_integrate): Remove.
6242         (prepare_call_address): Replace fndecl arg with a
6243         precomputed static chain value.
6244         (emit_call_1): New argument for full call expr.
6245         (flags_from_decl_or_type): Call special_function_p.
6246         (initialize_argument_information): Add argument
6247         may_tailcall.
6248         (purge_reg_equiv_notes): New.
6249         (expand_call): Do not try to expand calls inline.
6250         (fixup_tail_calls): New.
6251         * cfg.c: Include timevar.h and ggc.h.
6252         (bb_pool, edge_pool): Remove.
6253         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
6254         (entry_exit_blocks): Remove.
6255         (rbi_pool): Declare.
6256         (init_flow): Do not create pools.
6257         Allocate entry/exit block.
6258         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
6259         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
6260         (unlink_block): Clear b->prev_bb and b->next_bb.
6261         (compact_blocks): Clear all slots of BASIC_BLOCK array.
6262         (dump_flow_info): Work on trees too.
6263         (dump_cfg_bb_info): New.
6264         (brief_dump_cfg): New.
6265         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
6266         (find_edge): New.
6267         * cfgbuild.c (rtl_make_eh_edge): Rename from
6268         make_eh_edge.  Update all users.
6269         (find_basic_blocks): Don't call VARRAY_FREE on
6270         basic_block_info.
6271         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
6272         and newpos2.
6273         (delete_unreachable_blocks): Return changed status.
6274         (merge_seq_blocks): New.
6275         * cfghooks.c: Include tree-flow.h
6276         (tree_register_cfg_hooks, ir_type): New.
6277         (redirect_edge_and_branch): Change return type to edge.
6278         (predict_edge, predicted_by_p, can_duplicate_block_p,
6279         duplicate_block, block_ends_with_call_p,
6280         block_ends_with_condjump_p, flow_call_edges_add): New.
6281         * cfghooks.h (redirect_edge_and_branch): Change return
6282         type to edge.
6283         (predict_edge, predicted_by_p, can_duplicate_block_p,
6284         duplicate_block, block_ends_with_call_p,
6285         block_ends_with_condjump_p, flow_call_edges_add): Declare.
6286         (redirect_edge_and_branch): Change return type to edge.
6287         (struct cfg_hooks): Add fields block_ends_with_call_p,
6288         block_ends_with_condjump_p, flow_call_edges_add,
6289         predict_edge, predicted_by_p, can_duplicate_block_p and
6290         duplicate_block.
6291         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
6292         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
6293         (fixup_reorder_chain): Use initialize_bb_rbi.
6294         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
6295         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
6296         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
6297         (insn_locators_initialize): Use new info about blocks.
6298         * cfglayout.h (typedef struct reorder_block_def): Moved to
6299         basic_block.h.
6300         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
6301         removed.
6302         * cfgloop.c: Include tree.h and tree-flow.h.
6303         * cfgloop.h (create_loop_notes): Declare.
6304         * cfgloopmanip.c (create_loop_notes): New.
6305         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
6306         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
6307         and duplicate_block fields.
6308         (create_basic_block_structure): Don't look at
6309         RTX_INTEGRATED_P.
6310         (rtl_block_ends_with_call_p): New.
6311         (rtl_block_ends_with_condjump_p): New.
6312         (need_fake_edge_p): Moved from cfganal.c.
6313         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
6314         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
6315         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
6316         (cfg_layout_rtl_cfg_hooks): Ditto.
6317         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
6318         functions to be reachable.
6319         * cgraphunit.c (decide_is_function_needed):
6320         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
6321         inline functions don't need to be output.
6322         (cgraph_assemble_pending_functions): Don't do anything
6323         special for nested functions.
6324         (cgraph_mark_functions_to_output): Likewise.
6325         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
6326         (cgraph_analyze_function): Use estimate_num_insns.
6327         (cgraph_mark_functions_to_output): Likewise.
6328         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
6329         (cgraph_expand_function): Allow functions to not be
6330         emitted.
6331         (cgraph_remove_unreachable_nodes):
6332         (cgraph_recursive_inlining_p): Simplify.
6333         (lookup_recursive_calls,
6334         cgraph_decide_recursive_inlining): New.
6335         (cgraph_decide_inlining_*): Update calls of
6336         cgraph_mark_inline.
6337         * combine.c (get_pos_from_mask): Always set *plen.
6338         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
6339         ftree-based-profiling, ftree-ccp, ftree-ch,
6340         ftree-combine-temps, ftree-copyrename, ftree-dce,
6341         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
6342         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
6343         ftree-lrs): Add.
6344         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
6345         Undefine.
6346         * configure.ac: Add --enable-tree-browser option.
6347         Add --with-libbanshee option.
6348         Add GMPLIBS and GMPINC.
6349         * configure: Regenerate.
6350         * coverage.c (tree_ctr_tables): New.
6351         (coverage_counter_alloc): Use it.
6352         (build_ctr_info_value): Ditto.
6353         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
6354         (tree_coverage_counter_ref): New.
6355         * coverage.h (coverage_counter_ref): Remove declaration.
6356         (rtl_coverage_counter_ref): Declare.
6357         (tree_coverage_counter_ref): Declare.
6358         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
6359         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
6360         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
6361         (struct cse_basic_block_data): Rename enum values to not
6362         conflict with profile.h; update all uses.
6363         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
6364         in comments.
6365         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
6366         * diagnostic.h (debug_output_buffer, dump_generic_node,
6367         print_generic_stmt, print_generic_stmt_indented,
6368         print_generic_expr, print_generic_decl,
6369         debug_generic_expr, debug_generic_stmt, debug_c_tree):
6370         Declare.
6371         * dominance.c: Cache immediate dominators.
6372         * domwalk.c: New file.
6373         * domwalk.h: New file.
6374         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
6375         (gen_subprogram_die): Generate a DIE for a named
6376         return value.
6377         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
6378         (add_location_or_const_value_attribute): Likewise.
6379         (add_bound_info): Likewise.
6380         (gen_decl_die): Likewise.
6381         * emit-rtl.c (maybe_set_first_label_num): New.
6382         (copy_most_rtx): Don't copy the integrated flag.
6383         Copy the new return_val flag.
6384         * et-forest.c (MAX_NODES): Define.
6385         (record_path_before_1): Abort if len is greater than
6386         MAX_NODES.
6387         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
6388         gen_eh_region_catch, gen_eh_region_allowed,
6389         gen_eh_region_must_not_throw, get_eh_region_number,
6390         get_eh_region_may_contain_throw, get_eh_region_tree_label,
6391         set_eh_region_tree_label, expand_resx_expr): New.
6392         (expand_eh_region_start, expand_start_catch): Use them.
6393         (expand_end_catch): Tidy.
6394         (note_eh_region_may_contain_throw): Take region argument.
6395         (note_current_region_may_contain_throw): New.
6396         (get_exception_filter): Export.
6397         (collect_eh_region_array): Export.
6398         (remove_unreachable_regions): Check ERT_TRY based on reachability
6399         of catches, not reachability of continue_label.  Never remove
6400         ERT_MUST_NOT_THROW regions.
6401         (collect_rtl_labels_from_trees): New.
6402         (convert_from_eh_region_ranges): Use it.
6403         (connect_post_landing_pads): Handle dying cleanups.
6404         (struct reachable_info): Add callback data.
6405         (add_reachable_handler): Invoke the callback.
6406         (foreach_reachable_handler): New.
6407         (reachable_handlers): Use it.
6408         (arh_to_landing_pad, arh_to_label): New.
6409         (can_throw_internal_1): Split out from can_throw_internal.
6410         (can_throw_external_1): Similarly.
6411         * except.h: Update.
6412         * explow.c (emit_stack_save): Remove savearea mode check.
6413         (update_nonlocal_goto_save_area): New.
6414         (allocate_dynamic_stack_space): Use it.
6415         (probe_stack_range): Never emit loop notes.
6416         * expmed.c (extract_fixed_bit_field): Always propagate the
6417         target for the shift if it is a REG.
6418         * expr.c: Include tree-iterator.h
6419         (is_zeros_p): Remove.
6420         (categorize_ctor_elements_1, categorize_ctor_elements): New.
6421         (count_type_elements): New.
6422         (mostly_zeros_p): Use them.
6423         (expr_wfl_stack): Remove.
6424         (convert_move): Do nothing if to and from are the same.
6425         (emit_block_move_via_loop): Don't emit LOOP notes.
6426         (emit_move_insn): Don't handle CONSTANT_P_RTX.
6427         (emit_move_insn_1): Don't generate inline warnings.
6428         (expand_vars, expand_var): Split from ...
6429         (expand_expr_1): ... here.
6430         (expand_expr_real, expand_expr_real_1):  Use new macros
6431         EXPR_LOCATION and EXPR_HAS_LOCATION.
6432         * expr.h (simplify_builtin_fputs,
6433         simplify_builtin_strcpy, simplify_builtin_strncpy,
6434         expand_var, fixup_tail_calls,
6435         update_nonlocal_goto_save_area): Declare.
6436         (lookup_static_chain, expand_inline_function,
6437         mark_seen_cases): Remove.
6438         (prepare_call_address): Change type of 2nd argument to
6439         rtx.
6440         * final.c (profile_function): Update static chain test.
6441         (final): Don't look at RTX_INTEGRATED_P.
6442         * flags.h (flag_mudflap, flag_mudflap_threads,
6443         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
6444         flag_tree_dce, flag_tree_combine_temps,
6445         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
6446         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
6447         flag_tree_points_to): Declare.
6448         (enum pta_type): Declare.
6449         * flow.c (lang_missing_noreturn_ok_p): Remove.
6450         (check_function_return_warnings): Remove.
6451         (update_life_info): Update comments.
6452         (free_basic_block_vars): Don't call VARRAY_FREE for
6453         basic_block_info.
6454         (regno_uninitialized): Remove.
6455         * fold-const.c (int_const_binop): Make extern.
6456         (non_lvalue): Rely on build to set TREE_CONSTANT.
6457         (operand_equal_p): Replace only_const argument with
6458         flags.  Allow pure functions if OEP_PURE_SAME.
6459         (fold): Use OEP_ONLY_CONST.
6460         (invert_truthvalue) <NOP_EXPR> Break if argument is of
6461         boolean type.
6462         (fold_relational_hi_lo,
6463         nondestructive_fold_binary_to_constant,
6464         nondestructive_fold_unary_to_constant,
6465         fold_read_from_constant_string): New.
6466         * function.c (struct function): Remove calls_constant_p.
6467         (current_function_calls_constant_p): Remove.
6468         (inline_function_decl): Remove.
6469         (put_var_into_stack): Don't use it.
6470         (fix_lexical_addr): Likewise.
6471         (inline_function_decl): Remove extern declaration.
6472         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
6473         (trampolines_created): Move to varasm.c.
6474         (free_after_compilation): Update for removed fields.
6475         (allocate_struct_function): Likewise.
6476         (delete_handlers, lookup_static_chain): Remove.
6477         (fix_lexical_addr): Don't consider non-local variable refs.
6478         (trampoline_address): Remove.
6479         (round_trampoline_addr): Move to builtins.c.
6480         (adjust_trampoline_addr): Remove.
6481         (expand_function_start): Update for changes to static chain
6482         and nonlocal goto handling.
6483         (initial_trampoline): Move to varasm.c.
6484         (expand_function_end): Don't build trampolines or kill
6485         unreferenced nonlocal goto labels.
6486         (free_after_compilation): Don't set it.
6487         (expand_function_end): Likewise.
6488         (setjmp_vars_warning): Rename from
6489         uninitialized_vars_warning, remove uninitialized vars warning.
6490         (uninitialized_vars_warning): Remove old comment
6491         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
6492         and do not call the langhook.
6493         (expand_function_start, expand_function_end): Don't do
6494         function instrumentation here.
6495         (clear_block_marks): Rename from reorder_blocks_0, export.
6496         (blocks_nreverse): Export.
6497         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
6498         of rtl.
6499         (reset_block_changes, record_block_change, finalize_block_changes,
6500         check_block_change, free_block_changes): New functions.
6501         (assign_parms): Setting of current_function_stdarg
6502         moved ...
6503         (allocate_struct_function): ... here.
6504         * function.h (struct function): Remove x_nonlocal_labels,
6505         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
6506         x_context_display, x_trampoline_list, needs_context.
6507         Add static_chain_decl, nonlocal_goto_save_area.
6508         (struct function): Remove x_clobber_return_insn.
6509         Add tail_call_emit field, last_label_uid,
6510         unexpanded_var_list, dont_emit_block_notes,
6511         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
6512         (clear_block_marks): Declare.
6513         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
6514         (mfwrap_spec, mflib_spec): Declare.
6515         (cpp_unique_options, cc1_options): Ditto.
6516         (default_compilers): Add .F and .f90.
6517         (static_specs): Add mfwrap and mflib.
6518         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
6519         CONSTANT_RTX_P.
6520         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
6521         Update to match insns field in struct edge_def.
6522         * gdbinit.in (pgs, pge): Define.
6523         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
6524         instead of the integrated flag.
6525         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
6526         * gengtype-yacc.y (bitfieldlen): Add empty action.
6527         (struct_fields): Accept unnamed bitfields.
6528         (bitfieldlen): Split from ...
6529         (bitfieldopt): ... here.
6530         * gengtype.c (ifiles): Add tree-alias-type.h and
6531         tree-flow.h.
6532         * genrecog.c (validate_pattern): Do not handle
6533         CONSTANT_P_RTX.
6534         * gimple-low.c: New file.
6535         * gimplify.c: New file.
6536         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
6537         (restore_line_notes): Do not set RTX_INTEGRATED_P.
6538         * ifcvt.c (dead_or_predicable): Initialize local variable
6539         'earliest'.
6540         * input.h (expr_wfl_stack): Remove.
6541         * integrate.c (INTEGRATE_THRESHOLD): Remove.
6542         (setup_initial_hard_reg_value_integration): Likewise.
6543         (initialize_for_inline): Likewise.
6544         (note_modified_parmregs): Likewise.
6545         (integrate_parm_decls): Likewise.
6546         (process_reg_param): Likewise.
6547         (save_parm_insns): Likewise.
6548         (copy_insn_list): Likewise.
6549         (copy_insn_notes): Likewise.
6550         (compare_blocks): Likewise.
6551         (find_block): Likewise.
6552         (inlining): Likewise.
6553         (function_cannot_inline_p): Likewise.
6554         (parmdecl_map): Likewise.
6555         (in_nonparam_insns): Likewise.
6556         (save_for_inline): Likewise.
6557         (FIXED_BASE_PLUS): Likewise.
6558         (expand_inline_function): Likewise.
6559         (copy_rtx_and_substitute): Don't look at map->integrating,
6560         map->inline_target, and inlining, since we are never copying
6561         for integrating.
6562         Don't abort on RTX_INTEGRATED_P.
6563         (old_fun): Remove.
6564         (output_inline_function): Remove.
6565         * integrate.h (struct inline_map): Remove fields integrating,
6566         block_map, leaf_reg_map, inline_target, and local_return_label.
6567         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
6568         copy_loop_headers, never_reached_warning): Removed.
6569         (any_uncondjump_p): Reject nonlocal goto.
6570         * langhooks-def.h (lhd_types_compatible_p,
6571         lhd_expand_decl, lhd_gimplify_expr): Declare.
6572         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
6573         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
6574         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
6575         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
6576         LANG_HOOKS_GIMPLIFY_EXPR,
6577         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
6578         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
6579         LANG_HOOKS_GIMPLIFY_EXPR,
6580         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
6581         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
6582         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
6583         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
6584         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
6585         LANG_HOOKS_DECL_UNINIT,
6586         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
6587         * langhooks.c: Include tree-simple.h.
6588         (lhd_expand_decl): New.
6589         (lhd_types_compatible_p): New.
6590         (lhd_decl_uninit): Remove.
6591         (lhd_gimplify_expr): New.
6592         * langhooks.h (struct lang_hooks_for_rtl_expansion):
6593         Remove.
6594         (struct lang_hooks_for_functions): Add field
6595         missing_noreturn_ok_p.
6596         (struct lang_hooks): Add field expand_decl,
6597         types_compatible_p, gimplify_expr and
6598         gimple_before_inlining.
6599         Remove fields decl_uninit and rtl_expand
6600         * opts.c (decode_options): Set flag_tree_ccp,
6601         flag_tree_dce, flag_tree_dom, flag_tree_dse,
6602         flag_tree_pre, flag_tree_ter,
6603         flag_tree_live_range_split, flag_tree_sra,
6604         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
6605         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
6606         OPT_fmudflapth, OPT_fmudflapir,
6607         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
6608         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
6609         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
6610         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
6611         OPT_ftree_points_to_ and OPT_ftree_pre.
6612         * output.h (regno_uninitialized, find_basic_blocks,
6613         cleanup_cfg, delete_unreachable_blocks,
6614         check_function_return_warnings): Remove.
6615         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
6616         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
6617         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
6618         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
6619         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
6620         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
6621         Define.
6622         * passes.c (rest_of_decl_compilation):
6623         (rest_of_handle_sibling_calls): Remove.
6624         (rest_of_handle_inlining): Remove.
6625         (rest_of_handle_gcse): Do not run
6626         purge_builtin_constant_p.
6627         (rest_of_compilation): Update.
6628         Do not call copy_loop_headers.
6629         Do rtl-based profiling only when
6630         !flag_tree_based_profiling.  Register rtl-based profiling
6631         hooks.
6632         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
6633         (predicted_by_p): Rename to ...
6634         (rtl_predicted_by_p): .. this one; make global
6635         (tree_predicted_by_p): New.
6636         (dump_prediction): Add FILE argument.
6637         (predict_edge): Rename to ...
6638         (rtl_predict_edge): .. this one.
6639         (tree_predict_edge): New.
6640         (combine_predictions_for_insn): Update calls of predict_edge.
6641         (predict_loops): Break out from ...
6642         (estimate_probability): ... here; update comments; move updating
6643         of unknown probabilities from ...
6644         (estimate_bb_frequencies): ... here.
6645         (combine_predictions_for_bb): New.
6646         (tree_predict_by_opcode): New.
6647         (tree_estimate_probability): New.
6648         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
6649         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
6650         * predict.h: Add include guard.
6651         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
6652         * pretty-print.c (pp_write_text_to_stream): Make extern.
6653         * pretty-print.h (pp_write_text_to_stream): Declare.
6654         * print-rtl.c (print_rtx): Don't print the integrated flag.
6655         Print the return_val flag.
6656         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
6657         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
6658         Remove support for EXPR_WITH_FILE_LOCATION nodes.
6659         (print_node): Print TREE_INVARIANT and TREE_VISITED.
6660         * profile.c: Include cfghooks.h, tree-flow.h.
6661         (profile_hooks): New.
6662         (profile_dump_file): New.
6663         (instrument_edges): Use hooks instead of RTL-specific code.
6664         (instrument_values): Ditto.
6665         (get_exec_counts): Ditto.
6666         (compute_branch_probabilities): Ditto.
6667         (compute_value_histograms): Ditto.
6668         (branch_prob): Ditto.
6669         (find_spanning_tree): Ditto.
6670         (end_branch_prob): Ditto.
6671         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
6672         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
6673         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
6674         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
6675         (tree_register_profile_hooks): New.
6676         (rtl_register_profile_hooks): New.
6677         * ra-rewrite.c (rewrite_program): Clear variable info.
6678         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
6679         * regs.h: Add include guards.
6680         * reload.c (decompose): Clear val using memset.
6681         * rtl.def (CONSTANT_P_RTX): Remove.
6682         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
6683         (copy_loop_headers): Remove.
6684         (struct rtx_def): Replace the integrated flag with the
6685         return_val flag.
6686         (maybe_set_first_label_num): Declare.
6687         (init_branch_prob): Move declaration to value-prof.h.
6688         (end_branch_prob): Ditto.
6689         (branch_prob): Ditto.
6690         (never_reached_warning): Don't declare it.
6691         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
6692         (hoist_insn_to_edge): Update to match field insns in
6693         struct edge_def.
6694         * sbitmap.c (sbitmap_realloc): New.
6695         * sbitmap.h (sbitmap_realloc): Declare.
6696         * sibcall.c: Remove file.
6697         * simplify-rtx.c (simplify_rtx): Do not handle
6698         CONSTANT_P_RTX.
6699         * stmt.c (parse_output_constraint): Don't warn for read-write
6700         memory operand.
6701         (tail_recursion_args): Use types_compatible_p langhook.
6702         (force_label_rtx): Don't look at inline_function_decl.
6703         (label_rtx): Set LABEL_PRESERVE_P appropriately.
6704         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
6705         (declare_nonlocal_label): Remove.
6706         (expand_goto): Don't handle nonlocal gotos.
6707         (expand_nl_handler_label): Remove.
6708         (expand_nl_goto_receivers): Remove.
6709         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
6710         update_nonlocal_goto_save_area.
6711         (expand_expr_stmt_value): Check TREE_NO_WARNING.
6712         (warn_if_unused_value): Likewise.
6713         (expand_start_loop, expand_loop_continue_here,
6714         expand_end_loop): Don't create loop notes.
6715         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
6716         mark_seen_cases, check_for_full_enumeration_handling): Remove.
6717         (expand_end_case_type): Don't do warn_switch handling.
6718         (pushcase, pushcase_range) Update add_case_node calls.
6719         (add_case_node): Add dont_expand_label argument.
6720         (same_case_target_p): Don't search rtl.
6721         (expand_start_bindings_and_block, expand_end_bindings):
6722         Don't emit block notes when dont_emit_block_notes.
6723         (using_eh_for_cleanups_p): Export.
6724         (expand_return): Allow any typed rhs.
6725         (expand_stack_alloc): New.
6726         (expand_stack_save, expand_stack_restore): New.
6727         (containing_blocks_have_cleanups_or_stack_level): New
6728         function.
6729         (asm_op_is_mem_input): New fn.
6730         (expand_asm_expr): New fn.
6731         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
6732         nodes.
6733         * stor-layout.c (layout_type): Just return if type is
6734         error_mark_node.
6735         (update_alignment_for_field): Export.
6736         (variable_size): We don't care about global_bindings_p if
6737         the frontend doesn't want a list of the expressions.
6738         * system.h: Poison INTEGRATE_THRESHOLD.
6739         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
6740         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
6741         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
6742         TV_TREE_SSA_OTHER, TV_TREE_OPS,
6743         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
6744         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
6745         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
6746         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
6747         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
6748         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
6749         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
6750         TV_CONTROL_DEPENDENCES): Define.
6751         * toplev.c: Include tree-alias-common.h
6752         (current_file_decl, flag_mudflap, flag_mudflap_threads,
6753         flag_mudflap_ignore_reads, flag_tree_based_profiling,
6754         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
6755         flag_tree_dce, flag_tree_ch, flag_tree_sra,
6756         flag_tree_combine_temps, flag_tree_ter,
6757         flag_tree_live_range_split, flag_tree_dom,
6758         flag_tree_copyrename, flag_tree_dse): Declare.
6759         (f_options): Add tree-based-profiling, tree-gvn,
6760         tree-pre, tree-ccp, tree-dce,
6761         tree-dominator-opts, tree-copyrename, tree-dse,
6762         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
6763         (wrapup_global_declarations): Don't output nested inlined functions.
6764         (general_init): Call init_tree_optimization_passes.
6765         (process_options): Sorry for -ftree-based-profiling plus
6766         -ftest-coverage or -fprofile-values.
6767         * toplev.h (init_tree_optimization_passes,
6768         flag_tree_based_profiling): Declare.
6769         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
6770         * tree-alias-ander.c: New file.
6771         * tree-alias-ander.h: New file.
6772         * tree-alias-common.c: New file.
6773         * tree-alias-common.h: New file.
6774         * tree-alias-type.c: New file.
6775         * tree-alias-type.h: New file.
6776         * tree-browser.c: New file.
6777         * tree-browser.def: New file.
6778         * tree-cfg.c: New file.
6779         * tree-complex.c: New file.
6780         * tree-dfa.c: New file.
6781         * tree-dump.c (dump_enable_all): New.
6782         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
6783         (dump_node): Remove const from field suffix and swtch.
6784         (dump_files): Add null entry, .generic, .nested, .vcg,
6785         .xml and a match-all entry.
6786         (extra_dump_files, extra_dump_files_in_use,
6787         extra_dump_files_alloced): Declare
6788         (dump_option_value_info): Add raw, details, stats,
6789         blocks, vops, lineno, uid and all.
6790         (dump_register): New.
6791         (get_dump_file_info): New.
6792         (dump_begin): Call it.
6793         Do nothing for TDI_none.
6794         (dump_begin): Include phase number in dump filename.
6795         (dump_enable_all): New.
6796         (dump_switch_p_1): Split out from dump_switch_p.
6797         (dump_switch_p): Handle extra_dump_files.
6798         Start our scan at TDI_none + 1.
6799         If -fdump-tree-all was given, call dump_enable_all.
6800         * tree-dump.h: Include splay-tree.h.
6801         (dump_function, dump_function_to_file, dump_register):
6802         Declare.
6803         * tree-eh.c: New file.
6804         * tree-flow-inline.h: New file.
6805         * tree-flow.h: New file.
6806         * tree-inline.c: Re-write to handle inlining on GIMPLE.
6807         * tree-inline.h (walk_tree,
6808         walk_tree_without_duplicates): Move to tree.h.
6809         (estimate_num_insns): Declare.
6810         * tree-into-ssa.c: New file.
6811         * tree-iterator.c: New file.
6812         * tree-iterator.h: New file.
6813         * tree-mudflap.c: New file.
6814         * tree-mudflap.h: New file.
6815         * tree-nested.c: New file.
6816         * tree-nomudflap.c: New file.
6817         * tree-nrv.c: New file.
6818         * tree-optimize.c (dump_flags, vars_to_rename,
6819         in_gimple_form, all_passes, pass_gimple,
6820         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
6821         (execute_gimple, execute_rebuild_bind,
6822         gate_all_optimizations, execute_del_cfg,
6823         register_one_dump_file, register_dump_files, dup_pass_1,
6824         init_tree_optimization_passes, execute_todo,
6825         execute_one_pass, execute_pass_list): New.
6826         (clear_decl_rtl): Remove.
6827         (tree_rest_of_compilation): Update to use tree
6828         optimizers.
6829         * tree-outof-ssa.c: New file.
6830         * tree-pass.h: New file.
6831         * tree-phinodes.c: New file.
6832         * tree-pretty-print.c: New file.
6833         * tree-profile.c: New file.
6834         * tree-simple.c: New file.
6835         * tree-simple.h: New file.
6836         * tree-sra.c: New file.
6837         * tree-ssa-alias.c: New file.
6838         * tree-ssa-ccp.c: New file.
6839         * tree-ssa-copy.c: New file.
6840         * tree-ssa-copyrename.c: New file.
6841         * tree-ssa-dce.c: New file.
6842         * tree-ssa-dom.c: New file.
6843         * tree-ssa-dse.c: New file.
6844         * tree-ssa-forwprop.c: New file.
6845         * tree-ssa-live.c: New file.
6846         * tree-ssa-live.h: New file.
6847         * tree-ssa-loop.c: New file.
6848         * tree-ssa-operands.c: New file.
6849         * tree-ssa-operands.h: New file.
6850         * tree-ssa-phiopt.c: New file.
6851         * tree-ssa-pre.c: New file.
6852         * tree-ssa.c: New file.
6853         * tree-ssanames.c: New file.
6854         * tree-tailcall.c: New file.
6855         * tree.c: Include tree-iterator.h, basic-block.h and
6856         tree-flow.h.
6857         (tree_node_kind): Add phi_nodes and ssa names.
6858         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
6859         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
6860         (make_node_stat): Handle PHI_NODE and SSA_NAME.
6861         <'c'> Set TREE_INVARIANT.
6862         (copy_node_stat): Abort if trying to copy a
6863         STATEMENT_LIST.
6864         Clear TREE_VISITED.
6865         Clear annotation field.
6866         (build_constructor): Copy TREE_INVARIANT from vals.
6867         Don't clear TREE_CONSTANT.
6868         (expr_first, expr_last, expr_length): Remove.
6869         (staticp): Pass unknown component references to the language.
6870         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
6871         (skip_simple_arithmetic): Likewise.
6872         (stabilize_reference_1): Likewise.
6873         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
6874         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
6875         STATEMENT_LIST.
6876         (lhd_unsave_expr_now): Remove.
6877         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
6878         (recompute_tree_invarant_for_addr_expr): New.
6879         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
6880         Call recompute_tree_invarant_for_addr_expr.
6881         Set TREE_INVARIANT accordingly.
6882         (build2_stat): Don't handle CALL_EXPR.
6883         (build3_stat): Don't call build2_stat for CALL_EXPRs.
6884         (build_expr_wfl): Remove.
6885         (annotate_with_file_line, annotate_with_locus): New.
6886         (simple_cst_equal): Call simple_cst_list_equal to compare
6887         CONSTRUCTOR_ELTS pointers.
6888         (iterative_hash_expr): Don't hash types associated
6889         with conversions.  Instead hash on the signedness of the
6890         toplevel object and the operand of the conversion.
6891         (dump_tree_statistics): Call ssanames_print_statistics
6892         and phinodes_print_statistics.
6893         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
6894         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
6895         needs_to_live_in_memory): New.
6896         (initializer_zerop): Handle VECTOR_CST.  Don't check
6897         AGGREGATE_TYPE_P for CONSTRUCTOR.
6898         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
6899         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
6900         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
6901         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
6902         (CALL_EXPR): Add another operand.
6903         (EXPR_WITH_FILE_LOCATION): Remove.
6904         (SWITCH_EXPR): Add another operand.
6905         * tree.h: Update various comments.
6906         (union tree_ann_d): Forward declare.
6907         (struct tree_common): Add fields nowarning_flag,
6908         invariant_flag and visited.
6909         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
6910         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
6911         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
6912         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
6913         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
6914         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
6915         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
6916         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
6917         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
6918         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
6919         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
6920         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
6921         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
6922         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
6923         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
6924         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
6925         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
6926         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
6927         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
6928         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
6929         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
6930         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
6931         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
6932         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
6933         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
6934         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
6935         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
6936         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
6937         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
6938         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
6939         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
6940         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
6941         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
6942         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
6943         TDF_UID,): Define.
6944         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
6945         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
6946         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
6947         EXPR_WFL_SET_LINECOL): Remove.
6948         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
6949         make_phi_node, init_phinodes, fini_phinodes,
6950         release_phi_node, phinodes_print_statistics,
6951         init_ssanames, fini_ssanames, make_ssa_name,
6952         release_ssa_name, ssanames_print_statistics,
6953         annotate_with_file_line, build_empty_stmt,
6954         annotate_with_locus, expr_only, categorize_ctor_elements,
6955         count_type_elements, add_var_to_bind_expr, is_essa_node,
6956         expand_stack_alloc, expand_stack_save,
6957         expand_stack_restore, add_case_node, operand_equal_p,
6958         nondestructive_fold_unary_to_constant,
6959         nondestructive_fold_binary_to_constant,
6960         fold_read_from_constant_string, int_const_binop,
6961         strip_float_extensions, simplify_builtin, c_strlen,
6962         recompute_tree_invarant_for_addr_expr,
6963         needs_to_live_in_memory, make_vector,
6964         setjmp_vars_warning, update_alignment_for_field,
6965         expand_asm_expr, asm_op_is_mem_input,
6966         containing_blocks_have_cleanups_or_stack_level,
6967         create_artificial_label, gimplify_function_tree,
6968         get_name, unshare_expr, walk_tree,
6969         walk_tree_without_duplicates, in_gimple_form): Declare.
6970         (struct tree_exp): Add fields locus and block.
6971         (struct tree_ssa_name, struct edge_def, struct
6972         tree_phi_node, struct tree_eref_common, struct
6973         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
6974         union alias_var_def, struct tree_statement_list_node,
6975         struct tree_statement_list, enum operand_equal_flag): Declare.
6976         (enum tree_node_structure_enum): Add TS_SSA_NAME,
6977         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
6978         TS_STATEMENT_LIST.
6979         (union tree_node): Add fields ssa_name, phi, eref, ephi,
6980         euse and stmt_list.
6981         (function_cannot_inline_p, uninitialized_vars_warning,
6982         save_for_inline, output_inline_function, all_cases_count,
6983         check_for_full_enumeration_handling,
6984         declare_nonlocal_label): Remove.
6985         (enum tree_dump_index): Add TDI_none, TDI_tu,
6986         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
6987         * unroll.c (unroll_loop): Don't clear map->inline_target.
6988         * unwind-sjlj.c (uw_install_context): Make a proper static inline
6989         function.
6990         * value-prof.c (value_prof_hooks): New.
6991         (find_values_to_profile): Rename to rtl_find_values_to_profile.
6992         Move rtl-specific bits in from branch_prob.
6993         (value_profile_transformations): Rename to
6994         rtl_value_profile_transformations.
6995         (struct value_prof_hooks): New.
6996         (rtl_value_prof_hooks): New.
6997         (rtl_register_value_prof_hooks): New.
6998         (tree_find_values_to_profile): New stub.
6999         (tree_value_profile_transformations): New stub.
7000         (tree_value_prof_hooks): New stub.
7001         (tree_register_value_prof_hooks): New stub.
7002         (find_values_to_profile): New.
7003         (value_profile_transformations): New.
7004         * value-prof.h: Add multiple inclusion guard.
7005         (struct histogram_value): Change rtx fields to void *.
7006         (rtl_register_value_prof_hooks): New declaration.
7007         (tree_register_value_prof_hooks): New declaration.
7008         (find_values_to_profile): New declaration.
7009         (free_profiled_values): New declaration.
7010         (value_profile_transformations): New declaration.
7011         (struct profile_hooks): New declaration.
7012         (init_branch_prob): Declaration moved from rtl.h.
7013         (branch_prob): Declaration moved from rtl.h.
7014         (end_branch_prob): Declaration mooved from rtl.h.
7015         (tree_register_profile_hooks): New declaration.
7016         (rtl_register_profile_hooks): New declaration.
7017         (tree_profile_hooks): New declaration.
7018         (rtl_profile_hooks): New declaration.
7019         * varasm.c: Include tree-mudflap.h.
7020         (TRAMPOLINE_ALIGNMENT): Remove.
7021         (make_decl_rtl): Call mudflap_enqueue_decl.
7022         (assemble_static_space):
7023         (assemble_trampoline_template): Set and return
7024         TRAMPOLINE_ALIGNMENT.
7025         * varray.c (element): Add GENERIC_PTR_NOGC entry.
7026         Add entry for 'tree *'.
7027         Add entry for struct edge_def *.
7028         (varray_copy): New.
7029         * varray.h (enum varray_data_enum): Add
7030         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
7031         VARRAY_DATA_TREE_PTR.
7032         (union varray_data_tag): Corresponding changes.
7033         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
7034         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
7035         VARRAY_EDGE, VARRAY_TREE_PTR,
7036         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
7037         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
7038         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
7039
7040         * config/*/*: Various updates for changed macros, tree
7041         codes, etc.  Check ChangeLog.tree-ssa.
7042
7043         * doc/cfg.texi: New file.
7044         * doc/tree-ssa.texi: New file.
7045         * doc/c-tree.texi: Document new codes.
7046         * doc/gccint.texi: Include new files.
7047         * doc/install.texi: Document new features.
7048         * doc/invoke.texi: Document new switches.
7049         * doc/passes.texi: Document new passes.
7050         * doc/rtl.texi: Update changed RTL codes.
7051         * doc/sourcebuild.texi: Update build instructions.
7052         * doc/standards.texi: Document Fortran changes.
7053         * doc/tm.texi: Update.
7054
7055 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
7056
7057         Replace several arrays with a struct of arrays.
7058         * combine.c (struct reg_stat): New.
7059         (init_reg_last_arrays): Renamed to...
7060         (init_reg_last): ...this.  Callers adjusted.
7061         (reg_stat): New.
7062         (combine_instructions): Allocate it and use it.
7063         (reg_last_death, reg_last_set, reg_last_set_value,
7064         reg_last_set_label, reg_last_set_table_tick,
7065         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
7066         reg_last_set_mode, reg_last_set_nonzero_bits,
7067         reg_last_set_sign_bit_copies): Replace throughout
7068         with items of reg_stat.
7069
7070 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
7071
7072         PR optimization/15100
7073         * combine.c (distribute_notes): Don't create a dangling
7074         REG_LIBCALL/REG_RETVAL note.
7075
7076 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
7077
7078         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
7079
7080         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
7081         negv2si2.
7082
7083 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
7084
7085         * doc/md.texi (Standard Names): Fix typo in vec_init description.
7086
7087 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
7088
7089         * doc/gty.texi (GTY Options): Clarify example.
7090
7091 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
7092
7093         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
7094         Add const qualifier to altivec vector type if one is needed.
7095
7096 2004-05-11  Paul Brook  <paul@codesourcery.com>
7097
7098         * flags.h (flag_short_enums): Update comment.
7099         * opts.c (decode_options): Set flag_short_enums to 2.
7100         * toplev.c (flag_short_enums): Update comment.
7101         (process_options): Call default_short_enums target hook.
7102
7103 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
7104
7105         PR target/14063
7106         * config/rs6000/altivec.md (altivec_dssall):
7107         Change to unspec_volatile.
7108         (altivec_dss): Likewise.
7109
7110 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
7111
7112         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
7113         vnor.
7114         ("one_cmplv8hi2"): Same.
7115         ("one_cmplv4si2"): Same.
7116
7117 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
7118
7119         PR target/15130
7120         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
7121         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
7122         into account.  Compute the correct number of general registers
7123         for the return value.  Generate a special push/pop sequence when
7124         failing to get a temporary register for non SHmedia epilogue.
7125         (sh_expand_epilogue): Add an argument to show whether it's for
7126         sibcall or not.  Set the 3rd argument of output_stack_adjust to
7127         -1 if needed.
7128         (sh_need_epilogue): Call sh_expand_epilogue with 0.
7129         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
7130         with 1.
7131         (epilogue): Call sh_expand_epilogue with 0.
7132
7133 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
7134
7135         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
7136         goto a cleanup label.  After the cleanup, free the allocated memory.
7137
7138 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
7139
7140         * config/rs6000/altivec.h (vec_sld): Add overloads for
7141         argument/return types of 'vector bool int', 'vector bool short'
7142         and 'vector bool char'.
7143
7144 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
7145
7146         * c-decl.c (store_parm_decls_newstyle): Correct test for a
7147         nested function.
7148
7149 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
7150
7151         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
7152         treating missing ones as "".
7153         * config/mips/mips.md: Remove constraints from match_operands and
7154         match_scratches if they appear in define_expands (except reload*),
7155         define_peephole2s, define_splits or attribute specifications.
7156         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
7157         constraint strings.
7158
7159 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
7160
7161         * config/rs6000/rs6000.c (function_arg_boundary): Always align
7162         AltiVec vectors.
7163         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
7164         vectors by refererence.  Align the same for TARGET_64BIT to a 16
7165         byte boundary.  Remove useless code.  Add function comment.
7166         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
7167         call to where it belongs.
7168         (function_arg_partial_nregs): Return true for all TARGET_32BIT
7169         -mabi=no-altivec AltiVec vectors.  Fix debug output.
7170         (rs6000_va_arg): Adjust for AltiVec change.
7171
7172 2004-05-10  Paul Brook  <paul@codesourcery.com>
7173
7174         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
7175         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
7176         (TARGET_DOUBLEWORD_ALIGN): Use it.
7177         (WCHAR_TYPE): Define.
7178         (WCHAR_SIZE_TYPE): Define.
7179         (SIZE_TYPE): Define.
7180
7181 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
7182
7183         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
7184         when size is 8 bytes.
7185         (function_arg_advance): Account for stack space used by AltiVec
7186         args when -mabi=altivec.  Simplify alignment calculations.  For
7187         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
7188         (function_arg): Similarly.
7189         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
7190         not AltiVec ABI.
7191         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
7192         Correct alignment, and align before testing reg count.  Remove
7193         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
7194         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
7195         TARGET_FPRS here..
7196         (rs6000_function_value): .. not here before call.
7197
7198 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
7199
7200         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
7201
7202 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
7203
7204         PR 15007
7205         * c-decl.c (current_file_decl): Rename to all_translation_units,
7206         adjust comment.
7207         (pop_scope): If popping file_scope, construct a
7208         TRANSLATION_UNIT_DECL and make it the context of all the
7209         symbols in the scope.
7210         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
7211         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
7212         anything to current_file_decl.
7213         (pushdecl_top_level): Likewise.
7214         (store_parm_decls_newstyle): Adjust check for nested function.
7215         (c_write_global_declarations): Update for renamed variable.
7216
7217 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
7218
7219         * config/rs6000/rs6000-protos.h
7220         (rs6000_conditional_register_usage): Protoize.
7221
7222         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
7223
7224         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
7225         function.
7226
7227 2004-05-08  Roger Sayle  <roger@eyesopen.com>
7228
7229         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
7230         where op is a comparison operator and C1 and C2 are integer constants
7231         into a range check.
7232         (fold): Call fold_div_compare.
7233
7234 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
7235
7236         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
7237         problems with earlier versions of the GNU compiler.
7238
7239 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
7240
7241         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
7242         Declare.
7243
7244         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
7245         (rs6000_hard_regno_mode_ok): New.
7246         (rs6000_init_hard_regno_mode_ok): New.
7247         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
7248
7249         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
7250         result.
7251
7252 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
7253
7254         * config/rs6000/altivec.h (vector, pixel, bool): Do not
7255         define as macros #ifdef __APPLE_ALTIVEC__.
7256
7257 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
7258
7259         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
7260         Generate appropriate parallels for vector arguments
7261         passed to vararg functions. (function_arg): make the call
7262         to rs6000_mixed_function_arg for vector args as needed.
7263
7264 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
7265
7266         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
7267         EABI_FLOAT_VARARGS_P.
7268
7269 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
7270
7271         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
7272         * config/mips/mips.c (override_options): Disable branch likely
7273         instructions if TUNE_MIPS5500.
7274
7275 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
7276
7277         * config/mips/mips.c (override_options): Allow the hi and lo registers
7278         to store any integral mode, not just MODE_INTs.
7279
7280 2004-05-07  Paul Brook  <paul@codesourcery.com>
7281
7282         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
7283         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
7284         (TARGET_DOUBLEWORD_ALIGN): Use it.
7285         (WCHAR_TYPE): Define.
7286         (WCHAR_SIZE_TYPE): Define.
7287         (SIZE_TYPE): Define.
7288
7289 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
7290
7291         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
7292         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
7293
7294 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
7295
7296         * loop-doloop.c (doloop_valid_p): Make sure that body
7297         gets freed.
7298
7299 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
7300
7301         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
7302         declaration.
7303         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
7304         (sparc_skip_caller_unimp): New global variable.
7305         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
7306         Use it instead of SKIP_CALLERS_UNIMP_P.
7307         * config/sparc/sparc.md (call expander): Add sanity check.
7308         (call_address_struct_value_sp32): Re-sync with expander.
7309         (call_symbolic_struct_value_sp32): Likewise.
7310         (return peepholes): Use 'sparc_skip_caller_unimp' instead
7311         of custom predicate.
7312
7313 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
7314
7315         PR c++/14962
7316         * c-pragma.c (handle_pragma_redefine_extname): Only change
7317         the assembler name of FUNCTION_DECLs and VAR_DECLs.
7318
7319 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
7320
7321         * optabs.h (enum optab_index): Add new OTI_log1p.
7322         (log1p_optab): Define corresponding macro.
7323         * optabs.c (init_optabs): Initialize log1p_optab.
7324         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
7325         patterns.
7326         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
7327         using log1p_optab.
7328         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
7329         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7330
7331         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
7332
7333         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
7334         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
7335         Prototype here.
7336         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
7337         x87's fyl2xp1 instruction.
7338         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
7339         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
7340         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
7341         log1p  and log1pl built-ins as inline x87 intrinsics.
7342
7343 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
7344
7345         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
7346         * config/arm/freebsd.h: Likewise.
7347         * config/ia64/freebsd.h: Likewise.
7348         * config/sparc/freebsd.h: Likewise.
7349
7350 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
7351
7352         PR optimization/15296
7353         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
7354         getting last consecutive label at a branch.
7355         (relax_delay_slots): Similar, near top of loop.
7356
7357 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7358
7359         PR target/15202
7360         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
7361         register to general register.
7362
7363 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
7364
7365         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
7366         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
7367         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
7368         (STACK_BOUNDARY): Delete.
7369
7370 2004-05-06  Stuart Hastings  <stuart@apple.com>
7371
7372         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
7373         mistakenly clobbered by 1.423.
7374
7375 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
7376
7377         * doc/invoke.texi: Document -mvr4130-align.
7378         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
7379         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
7380         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
7381         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
7382         * config/mips/mips.md: Include sched-int.h.
7383         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
7384         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
7385         (override_options): Enable -mvr4130-align at -O3 and above.
7386         (mips_sim_insn): New variable.
7387         (mips_sim): New structure.
7388         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
7389         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
7390         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
7391         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
7392         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
7393         (mips_reorg): Call vr4130_align_insns.
7394         (vr4130_last_insn): New variable.
7395         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
7396         (vr4130_swap_insns_p, vr4130_reorder): New functions.
7397         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
7398         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
7399         (mips_use_dfa_pipeline_interface): Return true for the same.
7400         * config/mips/4130.md: New file.
7401         * config/mips/mips.md: Include it.  Add a peephole2 to convert
7402         "mult;mflo" into "mtlo;macc".
7403         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
7404         target of maccs.
7405         (*msac_using_macc): New pattern.
7406
7407 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
7408
7409         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
7410         (ir_vr55_hilo): Split into...
7411         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
7412         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
7413         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
7414         Add various multiplication bypasses.
7415         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
7416         multiplication.
7417
7418 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
7419
7420         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
7421         attribute to "XF".
7422
7423 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
7424
7425         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
7426         (fmod_optab, drem_optab): Define corresponding macros.
7427         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
7428         * genopinit.c (optabs): Implement fmod_optab and drem_optab
7429         using fmod?f3 and drem?f3 patterns.
7430         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
7431         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
7432         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
7433         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
7434         flag_unsafe_math_optimizations is set.
7435
7436         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
7437         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
7438
7439         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
7440         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
7441         Prototype here.
7442         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
7443         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
7444         fprem and fprem1 instructions.
7445         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
7446         Rename insn definition to x86_fnstsw_1.
7447         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
7448         x87 instructions.
7449         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
7450         and fmodl built-ins as inline x87 intrinsics.
7451         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
7452         and dreml built-ins as inline x87 intrinsics.
7453
7454 2004-05-05  Roger Sayle  <roger@eyesopen.com>
7455
7456         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
7457
7458 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
7459
7460         PR driver/9822
7461         * doc/invoke.texi (Spec Files): Remove documentation of %c.
7462
7463 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
7464
7465         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
7466         representation.
7467
7468 2004-05-06  Paul Brook  <paul@codesourcery.com>
7469
7470         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
7471         (arm_coproc_mem_operand): ... To this.
7472         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
7473         (arm_legitimate_index_p): Ditto.
7474         (vfp_mem_operand): Rename ...
7475         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
7476         (vfp_secondary_reload_class): Use it.
7477         (output_move_double): Use doubleword load/store instructions.
7478         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
7479         * config/arm/arm.h (TARGET_LDRD): Define.
7480         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
7481         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
7482         New splitter for invalid doubleword loads.
7483         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
7484         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
7485         * doc/md.texi: Document Uy constraint.
7486
7487 2004-05-05  Jan Hubicka  <jh@suse.cz>
7488
7489         PR opt/14980
7490         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
7491         inline clones.
7492
7493 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
7494
7495         PR target/15290
7496         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
7497         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
7498
7499 2004-05-05  Mike Stump  <mrs@apple.com>
7500
7501         * config/darwin-c.c (add_framework): Copy the directory name as it
7502         can be freed later.  Also, ensure we always allocate enough room
7503         for the cached framework information.
7504         (find_subframework_header): Keep track of the directory where the
7505         subframework header was found.
7506         (framework_construct_pathname): Speed up by not trying to re-add a
7507         framework.
7508         * cppfiles.c (search_path_exhausted): Arrange for the missing
7509         header callback to be able to set the directory where the header
7510         was found.
7511         (cpp_get_dir): Add.
7512         * cpplib.h (missing_header_cb): Add a parameter.
7513         (cpp_get_dir): Add.
7514
7515 2004-05-03  Mike Stump  <mrs@apple.com>
7516
7517         * doc/invoke.texi (Directory Options): Document -iquote.
7518         * doc/cpp.texi: Likewise.
7519         * doc/cppopts.texi: Likewise.
7520         * c-opts.c (c_common_missing_argument): Add -iquote processing.
7521         (c_common_handle_option): Likewise.
7522         * c.opt (iquote): Add.
7523         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
7524         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
7525
7526         * c-opts.c (case OPT_I): Deprecate -I- support.
7527         * doc/invoke.texi: Likewise.
7528         * doc/cpp.texi: Likewise.
7529         * doc/cppopts.texi: Likewise.
7530
7531 2004-05-05  Steven Bosscher  <stevenb@suse.de>
7532
7533         * basic-block.h (free_basic_block_vars): Update prototype.
7534         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
7535         argument.
7536         (life_analysis): Update call.
7537         * ifcvt.c (if_convert): Likewise.
7538         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
7539         * passes.c (rest_of_handle_final): Likewise.
7540         (rest_of_compilation): Likewise.
7541         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
7542
7543         * emit-rtl.c (next_real_insn): Use INSN_P.
7544         (prev_real_insn): Likewise.
7545
7546 2004-05-05  Eric Christopher  <echristo@redhat.com>
7547
7548         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
7549         representation.
7550
7551 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
7552
7553         * config/rs6000/rs6000.c (build_opaque_vector_type):
7554         New function.
7555         (rs6000_init_builtins): Use it.
7556
7557 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
7558
7559         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
7560         (func_table): Change type from char ** to vms_func_ref.
7561         (write_rtnbeg):  Update to reflect func_table change.  Use
7562         fde->funcdef_number instead of rtnnum in output.
7563         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
7564
7565 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
7566             Richard Henderson  <rth@redhat.com>
7567
7568         PR target/14899
7569
7570         * c-common.c (vector_types_convertible_p): New function.
7571         * c-typeck.c (comptypes): Recurse on vector types.
7572         (convert_for_assignment): Use vector_types_convertible_p.
7573         (digest_init): Use vector_types_convertible_p to check
7574         validness of constant vector initializers; otherwise treat
7575         them as scalars.
7576         * tree.c (make_or_reuse_type): New.
7577         (build_common_tree_nodes): Use it.
7578         * cp/call.c (standard_conversion): Likewise.
7579         * cp/typeck.c (comptypes): Recurse on vector types.
7580         (convert_for_assignment): Use vector_types_convertible_p.
7581
7582 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
7583
7584         * config/mips/mips.c (override_options): Default to no
7585         generation of branch-likely operations when tuning for
7586         CPUs where they tend to have a negative performance impact
7587         (e.g., SB-1).
7588
7589 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7590
7591         * expr.c (store_constructor_field): Don't call store_constructor
7592         if bitsize is not a multiple of a byte.
7593
7594 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
7595
7596         * reload1.c (inherit_piecemeal_p): New function.
7597         (emit_reload_insns): When reloading a group of hard registers, use
7598         inherit_piecemeal_p to decide whether the values of individual hard
7599         registers can be inherited.
7600
7601 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
7602
7603         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
7604         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
7605         * config/t-linux (LIB2ADDEHDEP): Likewise.
7606
7607 2004-05-04  Paul Brook  <paul@codesourcery.com>
7608
7609         * config/arm/crti.asm: Push an even number of registers.
7610         * config/arm/crtn.asm: And restore them.  Load via sp.
7611
7612 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
7613
7614         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
7615         Collect overhead information.
7616         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
7617         parameter and pass it through.
7618         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
7619         MEM_STAT_DECL parameter and pass it through.
7620         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
7621         MEM_STAT_DECL parameter and pass it through.
7622
7623 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
7624
7625         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
7626
7627         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
7628
7629         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
7630         rs6000_hard_regno_nregs.
7631
7632 2004-05-03  Eric Christopher  <echristo@redhat.com>
7633
7634         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
7635         prologue insn instead of setting up call.
7636         (s390_emit_epilogue): Ditto.
7637         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
7638         (define_constants): Add numbers for above patterns.
7639
7640 2004-05-03  Eric Christopher  <echristo@redhat.com>
7641
7642         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
7643         * config/s390/s390.c (s390_conditional_register_usage): ...here.
7644         * config/s390/s390-protos.h: Prototype.
7645
7646 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
7647
7648         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
7649         assignment.
7650
7651 2004-05-03  Eric Christopher  <echristo@redhat.com>
7652
7653         * config/mips/mips.md: Fix branch length attribute definition.
7654
7655 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
7656
7657         * config.gcc: Remove --enable-altivec support.
7658
7659         * config/rs6000/altivec-defs.h: Remove.
7660
7661 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7662
7663         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
7664         * fixinc/fixincl.x: Regenerate.
7665
7666 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
7667
7668         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
7669         definition.
7670         (log?f2, log10?f2, log2?f2): Reimplement expanders with
7671         float_truncate insn.
7672         (*fxtractsf3, *fxtractdf3): Remove insn definition.
7673         (logb?f2): Reimplement expanders with float_truncate insn.
7674
7675 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
7676
7677         PR 14718
7678         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
7679         force_type_die for CONST_DECL.
7680
7681 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
7682             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7683
7684         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
7685         tm-dwarf2.h to tm_file.
7686         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
7687         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
7688         (ASM_DEBUG_SPEC): Delete.
7689
7690 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
7691
7692         * optabs.h (enum optab_index): Add new OTI_expm1.
7693         (expm1_optab): Define corresponding macro.
7694         * optabs.c (init_optabs): Initialize expm1_optab.
7695         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
7696         patterns.
7697         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
7698         using expm1_optab.
7699         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
7700         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7701
7702         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
7703         to implement expm1, expm1f and expm1l built-ins as inline x87
7704         intrinsics.
7705
7706 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
7707
7708         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
7709         * config/frv/frv.md (*return_true, *return_false): New patterns.
7710
7711 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
7712
7713         * rtl.h (PHI_NODE_P): Remove.
7714
7715 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
7716
7717         PR middle-end/14988
7718         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
7719         when passed -2 as 'align'.
7720         (put_var_into_stack): Use 'bool' as the type for the three local
7721         predicates.  Adjust calls to put_reg_into_stack.
7722         When passed a CONCAT, instruct put_reg_into_stack to use
7723         a consecutive stack slot for the second part.
7724         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
7725         'consecutive_p' parameter.  Turn the three predicates into 'bool'
7726         parameters.  Retrieve the register mode from 'reg'.
7727         When consecutive_p is true, instruct assign_stack_local_1 to use
7728         BITS_PER_UNIT alignment.
7729         (put_addressof_into_stack): Use 'bool' as the type for the two
7730         local predicates. Adjust call to put_reg_into_stack.
7731
7732 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7733
7734         * fold-const.c (fold_convert_const, fold): Add missing
7735         FIX_ROUND_EXPR case.
7736
7737 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
7738
7739         * configure.ac (FLEX, BISON): Only use tools from the build tree
7740         if build equals host.
7741         * configure: Rebuilt.
7742
7743         * config/frv/frv-protos.h (frv_expand_epilogue,
7744         frv_expand_fdpic_call): Add bool argument.
7745         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
7746         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
7747         (frv_expand_epilogue): Use new argument to decide whether to emit
7748         return instruction or copy the return address to LR.
7749         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
7750         sibcalls.
7751         (sibcall_operand): New.
7752         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
7753         PLUS nor LABEL_REF.  Add sibcall_operand.
7754         * config/frv/frv.md (call, call_value): Pass false to
7755         frv_expand_fdpic_call.
7756         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
7757         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
7758         sibcall_value_internal, sibcall_value_fdpicdi): New.
7759         (return_unsigned_true, return_unsigned_false): New.
7760         (epilogue): Adjust call to frv_expand_epilogue.
7761         (sibcall_epilogue): New.
7762
7763         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
7764         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
7765         before redefining them.
7766
7767 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7768
7769         * builtins.c (fold_fixed_mathfn): New function.
7770         (fold_builtin_lround, fold_builtin): Use it.
7771
7772 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
7773
7774         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
7775         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
7776
7777 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
7778
7779         * config/cris/cris.h: Revert my "fix comment typos" patch.
7780
7781 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
7782
7783         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
7784
7785 2004-05-01  Falk Hueffner  <falk@debian.org>
7786
7787         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
7788         builtin_insll): Disallow 0 as first input operand.
7789
7790 2004-05-01  Falk Hueffner  <falk@debian.org>
7791
7792         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
7793
7794 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
7795
7796         PR middle-end/15054
7797         * expr.c (expand_expr_real): Do not call preserve_temp_slots
7798         on a TARGET_EXPR temp.
7799         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
7800         TARGET_EXPR temp slots.
7801
7802 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
7803
7804         * simplify-rtx.c (simplify_ternary_operation): When
7805         converting an IF_THEN_ELSE to a relational op, return
7806         correct mode.
7807
7808 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7809
7810         * builtins.c (fold_builtin_round): Fix comment typo.
7811         (fold_builtin_lround): New function.
7812         (fold_builtin): Use it.
7813
7814 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
7815
7816         PR target/11608
7817         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
7818         more like the one in config/dbxelf.h.
7819
7820 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
7821
7822         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
7823         and adjust definition accordingly.
7824         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
7825         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
7826         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
7827         VECTOR_TYPE.
7828
7829 2004-04-30  Jason Merrill  <jason@redhat.com>
7830
7831         PR c++/14587
7832         * config/i386/winnt.c (associated_type): Look for attributes on
7833         the TYPE_MAIN_VARIANT of *this.
7834         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
7835         apply the attributes to the variants.
7836
7837 2004-04-30  Paul Brook  <paul@codesourcery.com>
7838
7839         * config.gcc: Simplify arm --with-{cpu,tune} test.
7840         * config/arm/arm-cores.def: Document whitespace restrictions.
7841
7842 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7843
7844         PR other/1963
7845         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
7846
7847 2004-04-30  Brian Ford  <ford@vss.fsi.com>
7848             DJ Delorie  <dj@redhat.com>
7849
7850         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
7851         (DWARF2_DEBUGGING_INFO): Define to enable.
7852         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
7853         DWARF2.
7854         * configure.ac (Target-specific assembler checks)
7855         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
7856         relocs.
7857         * configure: Regenerate.
7858         * config.in: Likewise.
7859
7860         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
7861         (ASM_OUPUT_DWARF_OFFSET): Define.
7862
7863 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
7864
7865         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
7866         (s390_emit_call): New function prototype added.
7867         (s390_tls_get_offset): Function removed.
7868         * config/s390/s390.c (s390_function_ok_for_sibcall,
7869         s390_call_saved_register_used_p): New functions.
7870         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
7871         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
7872         (s390_emit_tls_call_insn): New function.
7873         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
7874         emit_call_insn.
7875         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
7876         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
7877         added.
7878         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
7879         register number used to hold the target address for sibcalls.
7880         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
7881         New expanders.
7882         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
7883         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
7884         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
7885         Expanders removed.
7886         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
7887         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
7888         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
7889         ("epilogue"): Changed the call to s390_emit_epilogue to use the
7890         new parameter.
7891
7892 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
7893
7894         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
7895         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
7896         reg-stack.c, varasm.c, config/alpha/ev4.md,
7897         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
7898         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
7899         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
7900         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
7901         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
7902         config/ia64/itanium2.md, config/ip2k/ip2k.c,
7903         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
7904         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
7905         comment typos.
7906
7907 2004-04-30  Paul Brook  <paul@codesourcery.com>
7908
7909         * config.gcc: Default ep9312 to hard-float.
7910         * config/arm/arm-cores.def: Add ARCH field.
7911         * config/arm/arm.c (FL_FOR_ARCH*): Define.
7912         (arm_arch_cirrus): New variable.
7913         (all_cores): Set and use arch.
7914         (all_architectures): Ditto.
7915         (arm_arch_name): New variable.
7916         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
7917         Set and use arm_arch_cirrus.
7918         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
7919         (enum processor_type): Update ARM_CORE define.
7920         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
7921         (CPP_SPEC): Remove %(cpp_cpu_arch).
7922         (CPP_ARCH_DEFAULT_SPEC): Remove.
7923         (CPP_CPU_ARCH_SPEC): Remove.
7924         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
7925         (FPUTYPE_DEFAULT): Don't define here.
7926
7927 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
7928
7929         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
7930         updates too.
7931
7932 2004-04-30  Paul Brook  <paul@codesourcery.com>
7933
7934         * arm.c (arm_needs_doubleword_align): Use mode alignment.
7935
7936 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
7937
7938         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
7939         vec_sububs.
7940         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
7941         duplicates.
7942
7943 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
7944
7945         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
7946         atan2?f3 expanders.
7947
7948 2004-04-29  Nick Clifton  <nickc@redhat.com>
7949
7950         Bug 14093
7951         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
7952         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
7953         Delete static from definition.
7954         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
7955
7956 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
7957
7958         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
7959         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
7960         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
7961         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
7962
7963 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
7964
7965         * commom.opt (Wfatal-errors): Add it.
7966         * diagnostic.c (flag_fatal_errors): Define it.
7967         (diagnostic_action_after_output): Check for flag_fatal_errors.
7968         * flags.h (flag_fatal_errors): Declare it.
7969         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
7970         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
7971
7972 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
7973
7974         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
7975         blocks which have kill flag set.
7976
7977 2004-04-29  Ben Elliston  <bje@au.ibm.com>
7978
7979         * configure.ac (--with-as): Abort if user-supplied assembler
7980         cannot be executed.
7981         (--with-ld): Likewise for the linker.
7982         * configure: Regenerate.
7983
7984 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7985
7986         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
7987         isn't NULL before using it.
7988
7989 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
7990
7991         PR target/15189
7992         * config/mips/mips.md (load_df_low): Use default length.
7993         (load_df_high, store_df_high): Likewise.
7994
7995 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
7996
7997         * config/mips/mips.md, config/mips/sb1.md,
7998         config/rs6000/rs6000.c: Fix comment typos.
7999
8000 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
8001
8002         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
8003         Fix comment typos.
8004
8005 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
8006
8007         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
8008         (delete_if_ordinary): Use above macro.
8009         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
8010         Update copyright.
8011         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
8012
8013 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
8014
8015         * c-decl.c (get_parm_info): Use the correct tag keywords when
8016         warning about type declarations in prototypes.
8017
8018 2004-04-29  Paul Brook  <paul@codesourcery.com>
8019
8020         * config.gcc: Pull list of cores from arm-cores.def.
8021
8022 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
8023
8024         * combine.c (combine_simplify_rtx): Adjust call to use
8025         simplify_relational_operation.  Do not use SELECT_CC_MODE
8026         when a comparison already has a MODE_CC mode.
8027
8028 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
8029
8030         (simplify_set): simplify_relational_operation may now
8031         return another relational expression.
8032         * cse.c (fold_rtx): simplify_relational_operation now
8033         takes of computing the comparison mode.
8034         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
8035         remove dead code.
8036         (do_compare_rtx_and_jump): Likewise.
8037         * integrate.c (subst_constants): simplify_relational_operation
8038         may now return another relational expression.
8039         * simplify-rtx.c (simplify_gen_relational): Move most code to
8040         the new simplify_relational_operation and
8041         simplify_relational_operation_1 functions.
8042         (simplify_relational_operation): Rewritten.
8043         (simplify_relational_operation_1): New function.
8044         (simplify_ternary_operation): simplify_relational_operation
8045         may now return another relational expression.
8046         (simplify_rtx): Remove unnecessary temp variable.
8047
8048 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
8049
8050         * reg-stack.c (swap_to_top): New function.
8051         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
8052         swap_to_top().
8053         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
8054         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
8055         UNSPEC_FSCALE_EXP.
8056
8057         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
8058         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
8059         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
8060         x87's fscale insn.
8061         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
8062         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
8063         patterns.
8064
8065 2004-04-28  Serge Belyshev  <1319@bot.ru>
8066
8067         PR 14944
8068         * coverage.c (read_counts_file): Fix usage of warning () call.
8069         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
8070
8071 2004-04-28  Ben Elliston  <bje@au.ibm.com>
8072
8073         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
8074         options with "-" in the option index.
8075         (SPARC Options): Likewise.
8076         (M32R/D Options): Likewise.
8077
8078 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8079
8080         * convert.c (convert_to_integer): Convert (long)round -> lround,
8081         etc.
8082
8083 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
8084
8085         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
8086         Return false if we do not have fp register.
8087         (addrs_ok_for_quad_peep): Rename to ...
8088         (mems_ok_for_quad_peep): this.
8089         Add check for volatile memory.
8090         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
8091         Rename to ...
8092         (mems_ok_for_quad_peep): this.
8093         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
8094         to peephole2's.
8095         (lfq_power2): New instruction.
8096         (stfq_power2): Likewise.
8097
8098 2004-04-28  Jan Hubicka  <jh@suse.cz>
8099
8100         PR c/15004
8101         * function.c (do_warn_unused_parameter): Break out form ...
8102         (expand_function_end): ... here; warn only when not using cgraphunit.
8103         * function.h (do_warn_unused_parameter): Declare.
8104         * cgraphunit.c: Include function.h.
8105         (cgraph_finalize_function): Do unused parameter warning.
8106         * Makefile.in (cgraphunit.o): Depend on function.h
8107
8108 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
8109
8110         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
8111         calling install-info on $(DESTDIR)$(infodir)/dir already being
8112         present.
8113
8114 2004-04-28  Paul Brook  <paul@codesourcery.com>
8115
8116         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
8117
8118 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
8119
8120         * gcse.c (find_moveable_store): Do not accept store insns with
8121         REG_EH_REGION note.
8122
8123 2004-04-28  Paul Brook  <paul@codesourcery.com>
8124
8125         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
8126         * function.c (assign_temp): Ditto.
8127         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
8128
8129 2004-04-28  Paul Brook  <paul@codesourcery.com>
8130
8131         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
8132
8133 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
8134
8135         * var-tracking.c (variable_different_p): Add a parameter
8136         compare_current_location, compare current location of variable parts
8137         if it is true.
8138         (dataflow_set_different_1): Pass compare_current_location == false.
8139         (dataflow_set_different_2): Pass compare_current_location == false.
8140         (emit_notes_for_differences_1): Pass compare_current_location == true.
8141
8142 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
8143
8144         * config/s390/s390.md ("casesi"): Mark jump table access as
8145         non-trapping and unchanging.
8146
8147 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8148
8149         PR debug/14829
8150         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
8151         callers.
8152         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
8153         number for indexing hard_regno_nregs array.
8154
8155 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
8156
8157         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
8158         * config/darwin-crt2.c: Only have contents on __ppc__.
8159
8160 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
8161
8162         * config/xtensa/xtensa.c (call_insn_operand): Check
8163         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
8164         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
8165         * config/xtensa/xtensa.md (call, call_value): Likewise.
8166
8167 2004-04-27  Wu Yongwei  <adah@sh163.net>
8168
8169         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
8170         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
8171         (__gthread_mutex_init_function): Replace CreateMutex with
8172         initialization of custom mutex using CreateSemaphore.
8173         (__gthread_mutex_lock): Use InterlockedIncrement.
8174         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
8175         (__gthread_mutex_unlock): Use InterlockedDecrement and
8176         ReleaseSemaphore to unlock
8177         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
8178         __gthread_mutex_lock, __gthread_mutex_trylock,
8179         __gthread_mutex_unlock): Adjust to match inline versions in
8180         gthr-win32.h.
8181
8182 2004-04-27  Paul Brook  <paul@codesourcery.com>
8183
8184         * config/arm/arm.c (arm_promote_prototypes): New function.
8185         (TARGET_PROMOTE_PROTOTYPES): Use it.
8186
8187 2004-04-27  Paul Brook  <paul@codesourcery.com>
8188
8189         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
8190
8191 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
8192
8193         * config/alpha.c (alpha_end_function): For OpenVMS gas,
8194         correctly output .pdesc directive before .end.
8195
8196 2004-04-26  James E Wilson  <wilson@specifixinc.com>
8197
8198         Bug 14927
8199         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
8200         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
8201
8202 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
8203
8204         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
8205         * config/pa/pa-hpux10.h: Likewise.
8206         * config/pa/pa-hpux11.h: Likewise.
8207
8208 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
8209
8210         * doc/invoke.texi (Overall Options): Document default for -o
8211         for PCH files.
8212
8213 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8214
8215         * builtins.c (expand_builtin_update_setjmp_buf): New function.
8216         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
8217         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
8218
8219 2004-04-26  Paul Brook  <paul@codesourcery.com>
8220
8221         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
8222
8223 2004-04-26  Paul Brook  <paul@codesourcery.com>
8224
8225         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
8226
8227 2004-04-25  Roger Sayle  <roger@eyesopen.com>
8228
8229         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
8230         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
8231         X % -1 as 0.
8232
8233 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
8234
8235         PR bootstrap/15141
8236         * except.c (connect_post_landing_pads): Delete insns after the
8237         barrier when generating a unwind_resume_libfunc call.
8238
8239 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8240
8241         PR/c++ 15119
8242         * tree.c (substitute_placeholder_in_expr, case 4): New case,
8243         for TARGET_EXPR.
8244
8245 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8246
8247         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
8248         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
8249         inhibit_libc is defined.
8250
8251 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
8252
8253         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
8254         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
8255         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
8256         (TARGET_SCHED_VARIABLE_ISSUE): Define.
8257         (mips_adjust_cost): Move later in file, next to other sched hooks.
8258         (mips_macc_chains_last_hilo): New variable.
8259         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
8260         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
8261         * config/mips/mips.md (may_clobber_hilo): New attribute.
8262
8263 2004-04-24  Roger Sayle  <roger@eyesopen.com>
8264             Bruce Korb  <bkorb@gnu.org>
8265
8266         * fixinc/inclhack.def (aix_syswait_2): New fix.
8267         * fixinc/fixincl.x: Regenerate.
8268         * fixinc/tests/base/sys/wait.h: Update for new test.
8269
8270 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
8271
8272         PR target/14960
8273         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
8274         to non_fixed_size, and leave out fixed_size from the sum.
8275         (generate_set_vrsave): Correct clobbers.
8276         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
8277         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
8278         (rs6000_libcall_value): Likewise.
8279         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
8280         (FUNCTION_ARG_REGNO_P): Likewise.
8281
8282 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
8283
8284         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
8285         is a CONST_INT.
8286         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
8287         with NARROW_OP1 instead of OP1.
8288
8289 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
8290
8291         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
8292         and __s390x__ hosts.
8293
8294 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8295
8296         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
8297         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
8298         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
8299         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
8300         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
8301         * builtins.c (expand_builtin_fork_or_exec): New.
8302         (expand_builtin): Call it.
8303         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
8304         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
8305         * c-common.c (PID_TYPE): New macro.
8306         (c_common_nodes_and_builtins): Initialize pid_type_node.
8307         * calls.c (special_function_p): Do not handle fork and exec.
8308         (expand_call): Do not handle ECF_FORK_OR_EXEC.
8309         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
8310         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
8311         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
8312         __gcov_execv, __gcov_execvp, __gcov_execve): New.
8313         * tree.h (enum tree_index): Add TI_PID_TYPE.
8314         (pid_type_node): New macro.
8315         (ECF_FORK_OR_EXEC): Removed.
8316
8317 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
8318
8319         PR optimization/13985
8320         * cfgloopmanip.c (fix_loop_placements): New prototype.
8321         Call fix_bb_placements on the preheader of loops that have
8322         been reparented.
8323         (remove_path): Adjust call to fix_loop_placements.
8324
8325 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
8326
8327         * config/darwin7.h: New file.
8328         * config.gcc (*-*-darwin*): Add darwin7.h if the
8329         version is greater than 6.
8330         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
8331         (MATH_LIBRARY): Wrap in ifdefs.
8332
8333 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
8334
8335         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
8336         loading iWMMXt registers with a frame pointer.  Use post-increment
8337         without a frame pointer.
8338         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
8339
8340 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
8341
8342         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
8343         mode" rather than "-funit-at-a-time" since -O2 enables it
8344         without requiring -f* options.  Refer to -fprofile-generate and
8345         -fprofile-use correctly.  Move -funit-at-a-time among options
8346         enabled by -O.  Add information about unit-at-a-time caveats.
8347
8348 2004-04-22  Per Bothner  <per@bothner.com>
8349
8350         * line-map.h (struct line_maps):  New field highest_line.
8351         (linemap_position_for_column):  Make non-inline function.
8352         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
8353         * line-map.c (linemap_init):  Clear highest_line field.
8354         (linemap_add):  Set highest_line field.
8355         (linemap_line_start):  Minor optimization - use highest_line field.
8356         Reduce maximum column hint to 10000.  Update highest_line field.
8357         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
8358         * cpphash.h (struct cpp_reader):  Remove line field - instead use
8359         line_table->highest_line.
8360         (saved_line):  Remove unused field.
8361         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
8362         Use  line_table's highest_line field instead of cpp_reader's line.
8363         * cpplib.c (start_directive):  Likewise use highest_line field.
8364         (do_line, do_linemarker):  Likewise just use newest map.
8365         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
8366         * cpperror.c (cpp_error):  Likewise use highest_line field.
8367         * cppfiles.c (open_file_failed:  Likewise.
8368         (cpp_make_system_header):  Likewise use newest map and highest_line.
8369         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
8370         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
8371         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
8372         _cpp_lex_direct):  Likewise use highest_line.
8373         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
8374         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
8375         and use newest map.
8376         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
8377         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
8378         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
8379
8380 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
8381
8382         PR bootstrap/14992
8383         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
8384         * config/linux.h (USE_LD_AS_NEEDED): Define.
8385         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
8386         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
8387         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
8388         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
8389         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
8390         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
8391         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
8392
8393 2004-04-22  Per Bothner  <per@bothner.com>
8394
8395         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
8396         Fixes PR preprocessor/15067.
8397
8398 2004-04-23  Andreas Schwab  <schwab@suse.de>
8399
8400         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
8401         avoid aliasing warning.
8402
8403 2004-04-22  Jan Hubicka  <jh@suse.cz>
8404             Mostafa Hagog <mustafa@il.ibm.com>
8405
8406       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
8407       * cfgloopanal.c (expected_loop_iterations): Change the return value
8408
8409 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
8410
8411         * cselib.h (struct elt_loc_list): Remove canon_loc field.
8412         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
8413         (cselib_invalidate_mem): Remove all canon_loc and canon_x
8414         traces.
8415
8416 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
8417
8418         Revert
8419         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
8420
8421                 * var-tracking.c (variable_part_different_p): Variable parts
8422                 differ when the most recent locations differ.
8423
8424 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
8425
8426         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
8427         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
8428         (embedded_pic_offset): Delete.
8429         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
8430         MASK_* constants.
8431         (TARGET_EMBEDDED_PIC): Delete.
8432         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
8433         (ASM_SPEC): Remove -membedded-pic.
8434         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
8435         (ASM_OUTPUT_CASE_LABEL): Likewise.
8436         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
8437         * config/mips/windiss.h (ASM_SPEC): Likewise.
8438         * config/mips/mips.c (struct machine_function): Remove
8439         embedded_pic_fnaddr_rtx.
8440         (TARGET_ENCODE_SECTION_INFO): Remove override.
8441         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
8442         (override_options): Remove -membedded-pic handling.
8443         (print_operand): Remove handling of '%S'.
8444         (mips_select_section: Remove -membedded-pic handling.
8445         (mips_encode_section_info): Delete.
8446         (mips_output_conditional_branch): Remove mention of -membedded-pic.
8447         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
8448         -membedded-pic handling.
8449         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
8450
8451 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
8452
8453         * var-tracking.c (frame_base_decl): Remove useless GTY.
8454
8455 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
8456
8457         * config/rs6000/rs6000.c (rs6000_override_options): Error when
8458         user wants altivec and e500 instructions.
8459
8460 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
8461
8462         PR target/14813
8463         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
8464         in .init_array section to ...
8465         * config/ia64/crtbegin.asm: Here.
8466
8467         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
8468         and hidden if HAVE_INITFINI_ARRAY is defined.
8469
8470 2004-04-21  James E Wilson  <wilson@specifixinc.com>
8471
8472         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
8473         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
8474         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
8475         (fp_register_operand, lo_operand): New.
8476         (mips_rtx_costs): Add TUNE_SB1 support.
8477         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
8478         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
8479         (mips_multipass_dfa_lookahead): New.
8480         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
8481         TUNE_SB1): New.
8482         (TARGET_SWITCHES): Add -mfp-exceptions support.
8483         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
8484         (BRANCH_COST): Fix whitespace.
8485         * config/mips/mips.md: Include sb1.md.
8486         * config/mips/sb1.md: New file.
8487         * doc/invoke.texi: Document -mfp-exceptions.
8488
8489         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
8490         comment.
8491         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
8492         (fixincl.o-warn): Delete.
8493
8494 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
8495
8496         * config/rs6000/rs6000 (print_operand) ['z']:
8497         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
8498
8499 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
8500
8501         * config.gcc: Support --with-arch=iwmmxt for ARM.
8502
8503 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8504
8505         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
8506         in two more places; remove unneeded force_reg
8507
8508 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
8509
8510         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
8511         for TARGET_MACHO.
8512         (print_operand): For TARGET_MACHO check to see if we need a stub
8513         and output one if we need it.
8514
8515         PR debug/15033
8516         * dwarf2out.c (rtl_for_decl_location): Check for NULL
8517         rtl.
8518
8519 2004-04-20  James E Wilson  <wilson@specifixinc.com>
8520
8521         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
8522         (vall_value_gp): Likewise.
8523
8524 2004-04-20  DJ Delorie  <dj@redhat.com>
8525
8526         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
8527         variables stored in word registers, then in memory.
8528
8529 2004-04-20  Eric Christopher  <echristo@redhat.com>
8530
8531         * cp/parser.c (cp_parser_declaration): Move translate
8532         up before tokens are lexed.
8533
8534 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
8535
8536         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
8537         (asin_optab, acos_optab): Define corresponding macros.
8538         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
8539         * genopinit.c (optabs): Implement asin_optab and acos_optab
8540         using asin?f2 and acos?f2 patterns.
8541         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
8542         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
8543         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
8544         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
8545
8546         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
8547         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
8548         acos, acosf and acosl built-ins as inline x87 intrinsics.
8549
8550 2004-04-20  Paul Brook  <paul@codesourcery.com>
8551
8552         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
8553
8554 2004-04-20  Paul Brook  <paul@codesourcery.com>
8555
8556         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
8557
8558 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
8559
8560         Revert part of 2004-04-17 change that moved -frename-registers
8561         to -O1.  -frename-registers is buggy.
8562
8563         * toplev.c (flag_rename_registers): Initialize to 0.
8564         * doc/invoke.texi (Optimize options): Move -frename-registers
8565         to "Not triggered by any -O level" section.  Adjust commentary
8566         accordingly.
8567
8568 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
8569
8570         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
8571
8572 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
8573
8574         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
8575         for mflo and mfhi instructions.
8576         (mips_output_move): Remove mflo and mfhi handling.
8577         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
8578         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
8579         Likewise various define_peephole2s.
8580         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
8581         alternatives.
8582         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
8583         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
8584         (mfhilo_di, mfhilo_si): New patterns.
8585
8586 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
8587
8588         * function.c (assign_parms): Force
8589         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
8590
8591 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
8592
8593         * var-tracking.c (variable_part_different_p): Variable parts differ
8594         when the most recent locations differ.
8595
8596 2004-04-19  James E Wilson  <wilson@specifixinc.com>
8597
8598         * rtl.h (reg_set_last): Delete declaration.
8599         * rtlanal.c (reg_set_last): Delete.
8600
8601 2004-04-19  Roger Sayle  <roger@eyesopen.com>
8602
8603         * fold-const.c (fold_convert): Make function extern/public.
8604         * tree.h (fold_convert): Prototype here.
8605         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
8606         expand_builtin_strrchr, expand_builtin_strpbrk,
8607         expand_builtin_mempcpy, expand_builtin_bcopy,
8608         expand_builtin_bzero, expand_builtin_memcmp,
8609         expand_builtin_strcmp, expand_builtin_strncmp,
8610         stabilize_va_list, expand_builtin_sprintf,
8611         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
8612         fold_builtin_exponent, fold_builtin_mempcpy,
8613         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
8614         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
8615         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
8616
8617 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
8618
8619         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
8620         (move_from_CR_gt_bit): New.
8621         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
8622         E500.
8623         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
8624         E500.
8625
8626         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
8627         (tstsfeq_gpr): Same.
8628         (cmpsfgt_gpr): Same.
8629         (tstsfgt_gpr): Same.
8630         (cmpsflt_gpr): Same.
8631         (tstsflt_gpr): Same.
8632         (e500_cceq_ior_compare): New.
8633         (e500_flip_gt_bit): New.
8634
8635         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
8636         (print_operand): Add 'c' and 'D'.
8637         (rs6000_generate_compare): Rewrite to generate correct rtl.
8638         (rs6000_emit_sCOND): Handle E500.
8639         (output_cbranch): Adjust for changes in rs6000_generate_compare.
8640         (output_e500_flip_gt_bit): New.
8641
8642         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
8643         Protoize.
8644
8645 2004-04-19  Eric Christopher  <echristo@redhat.com>
8646
8647         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
8648
8649 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
8650
8651         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
8652         fix information.
8653
8654 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8655
8656         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
8657         download URL.
8658
8659 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
8660
8661         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
8662         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
8663
8664 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
8665
8666         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
8667         (fold_builtin): Update caller to match.
8668
8669         PR bootstrap/15009
8670         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
8671
8672         PR bootstrap/14999
8673         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
8674
8675 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8676
8677         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
8678
8679         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
8680         (expand_mult_highpart_optab): Likewise.
8681         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
8682
8683 2004-04-19  Paul Brook  <paul@codesourcery.com>
8684
8685         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
8686         floatunssisf2, floatunssidf2): New patterns.
8687
8688 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
8689
8690         PR other/14918
8691         * doc/invoke.texi (-fprofile-generate): Document requirement to
8692         use -fprofile-generate when linking.
8693
8694         * doc/extend.texi (Strong Using): Warn users against using this
8695         feature.
8696
8697 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
8698
8699         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
8700         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
8701         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
8702         * config/mips/mips.c (struct mips16_constant): Renamed from struct
8703         constant.  Propogate change throughout file.
8704         (struct machine_function): Remove insns_len.
8705         (mips_string_length, mips16_strings, string_constants): Delete.
8706         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
8707         when generating mips16 code.  Remove special mips16 treatment of
8708         string constants.
8709         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
8710         to have the form LABEL+CONSTANT.
8711         (mips_symbolic_address_p): Fix comment.
8712         (m16_usym8_4, m16_usym5_4): Delete.
8713         (mips_output_function_epilogue): Remove mips16 string handling.
8714         (mips_output_mi_thunk): Call mips16_lay_out_constants.
8715         (mips_select_section, mips_encode_section_info): Remove mips16
8716         string handling.
8717         (struct mips16_constant_pool): New.
8718         (add_constant): Take a mips16_constant_pool structure.  Keep pool
8719         sorted into order of ascending mode size.  Keep track of the highest
8720         possible start address, taking padding and the masking of the base PC
8721         value into account.
8722         (dump_constants_1): New function, split out from dump_constants.
8723         Handle vector constants.  Use gen_consttable_{int,float} rather than
8724         separate functions for each mode.
8725         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
8726         rather than separate functions for each alignment.
8727         (mips_find_symbol): Delete.
8728         (mips16_insn_length): New function, split out from
8729         mips16_lay_out_constants.
8730         (mips16_rewrite_pool_refs): New function.
8731         (mips16_lay_out_constants): Rework. Remove string handling.
8732         Always create an inline constant pool.
8733         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
8734         (UNSPEC_ALIGN): New constants.
8735         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
8736         (UNSPEC_ALIGN_[248]): Delete.
8737         (consttable_int, consttable_float, align): New patterns.
8738         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
8739
8740 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
8741
8742         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
8743         __unn_args_eq.
8744
8745 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
8746
8747         PR target/14715
8748         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
8749         with STARTING_FRAME_OFFSET.
8750
8751 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
8752
8753         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
8754         * config/mips/mips.c (macc_msac_operand): New function.
8755         * config/mips/mips.md (*msac): Move after *macc.
8756         (*msac2): New.  Generalize macc-related peepholes so that they apply
8757         to msac too.
8758
8759 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
8760
8761         * opts.c (decode_options): Do not enable flag_rename_registers
8762         and flag_web at -O3.
8763         * toplev.c (flag_rename_registers): Initialize
8764         flag_rename_registers and flag_web to
8765         AUTODETECT_FLAG_VAR_TRACKING.
8766         (default_debug_hooks): New global.
8767         (process_options): Initialize default_debug_hooks.  Warn if
8768         -fvar-tracking specified but not supported by the current
8769         debug format.  Do not run var tracking at -O0 or if not
8770         supported by the current debug format, even if
8771         -fvar-tracking was given.  If -fno-rename-registers
8772         is not specified, always run register renaming if var
8773         tracking is supported by the default debugging information
8774         format for the target, and we are at -O1 or higher; similarly
8775         for -fweb, but only at -O2 or higher.
8776         * doc/invoke.texi (Optimize Options): Document this.
8777
8778 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
8779
8780         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
8781         * configure: Regenerate.
8782
8783 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
8784
8785         * gcc.c (used_arg): Check whether an option has been removed.
8786
8787 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8788
8789         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
8790         debugging on Solaris 7 and up.
8791
8792 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8793
8794         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
8795         IRIX 5 port.
8796         Remove -save-temps workaround, handled automatically.
8797         Require GNU binutils 2.15 for debugging.
8798         Remove SGI make warnings since GNU make is now required.
8799         (Specific, mips-sgi-irix6): Some markup fixes.
8800         Describe MIPSpro C problems and workarounds.
8801         Mention working O32 ABI support.
8802         Recommend GNU as 2.15 for O32 with debugging.
8803         Remove description of fixed structure pass/return bug.
8804
8805 2004-04-16  DJ Delorie  <dj@redhat.com>
8806
8807         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
8808         TYPE_FIELDS.
8809         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
8810
8811 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8812
8813         * pa.md: Remove unnecessary declarations for asm_out_file.
8814
8815         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
8816         SAR register.  Fix comment.
8817         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
8818         (%cr11).
8819
8820         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
8821
8822 2004-04-16  Nick Clifton  <nickc@redhat.com>
8823
8824         * config/arm/arm.c (arm_override_options): Revert previous patch.
8825         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
8826         be safely built.
8827
8828 2004-04-16  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
8829
8830         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
8831         bug.
8832         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
8833         TARGET_DEFAULT): Changed. Ditto.
8834         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
8835         TARGET_ENDIAN_DEFAULT): Added. Ditto.
8836         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
8837         (TARGET_ENDIAN_DEFAULT): Added.
8838
8839 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8840
8841         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
8842         ATTR_CONST_NOTHROW_LIST.
8843
8844 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8845
8846         PR/middle-end 14915
8847         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
8848         BITS_BIG_ENDIAN.
8849
8850 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
8851
8852         * ra-debug.c (ra_print_rtx): Add break's to case legs.
8853
8854 2004-04-14  James E Wilson  <wilson@specifixinc.com>
8855
8856         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
8857
8858 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
8859
8860         * libada-mk.in: New file.
8861         * configure.ac: Create libada-mk from libada-mk.in.
8862         * configure: Regenerate.
8863
8864 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
8865
8866         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
8867         (logb_optab, ilogb_optab): Define corresponding macros.
8868         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
8869         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
8870         using logb?f2 and ilogb?i2 patterns.
8871         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
8872         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
8873         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
8874         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
8875
8876         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
8877         and UNSPEC_XTRACT_EXP.
8878
8879         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
8880         patterns to implement fxtract x87 instruction.
8881         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
8882         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
8883         intrinsics.
8884         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
8885         x87's fxtract insn.
8886
8887 2004-04-14  Eric Christopher  <echristo@redhat.com>
8888
8889         * config/mips/t-elf: Enable multilibs by default.
8890
8891 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
8892
8893         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
8894         previous fix to check HAVE_return at runtime too.
8895
8896 2004-04-14  Nick Clifton  <nickc@redhat.com>
8897
8898         * config/arm/arm.c (arm_override_options): If the user has not
8899         specified an ABI, then default to AAPCS for the iWMMXt processor.
8900         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
8901         * config/arm/t-xscale-coff: Likewise.
8902
8903 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8904
8905         * builtins.c (fold_builtin_isdigit): New.
8906         (fold_builtin): Handle BUILT_IN_ISDIGIT.
8907         * defaults.h: Add TARGET_DIGIT0 and sort.
8908         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
8909
8910 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8911
8912         * builtins.c (fold_builtin_cabs, fold_builtin): Use
8913         `mathfn_built_in' to determine the new builtin.
8914         * fold-const.c (fold): Likewise.
8915
8916 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
8917
8918         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
8919         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
8920         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
8921         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
8922         (ASM_SPEC): Update accordingly.
8923         * config/mips/mips.c: Update after above renaming.
8924         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
8925         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
8926
8927 2004-04-13  James E Wilson  <wilson@specifixinc.com>
8928
8929         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
8930         increment errorcount and return false instead of true.
8931
8932 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
8933
8934         * optabs.c (expand_twoval_unop): Reorder function arguments.
8935         * builtins.c (expand_builtin_mathfn_3): Update calls to
8936         expand_twoval_unop.
8937
8938         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
8939         and UNSPEC_TAN_TAN. Add missing comment.
8940
8941         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
8942         patterns to implement fptan x87 instruction.
8943         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
8944         and tanl built-ins as inline x87 intrinsics. Define corresponding
8945         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
8946         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
8947         x87's fptan insn.
8948
8949 2004-03-13  Richard Henderson  <rth@redhat.com>
8950
8951         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
8952         for LABEL_REFs.
8953
8954         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
8955         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
8956         * doc/invoke.texi: Update to match.
8957
8958         * varasm.c (unlikely_text_section): Use assemble_align instead of
8959         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
8960         correct alignment argument.
8961
8962 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
8963
8964         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
8965         after setting reg_last_reload_reg for optional output reloads.
8966
8967 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
8968
8969         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
8970         Definition of these two macros are corrected by adding
8971         matchine right paren.
8972
8973 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
8974
8975         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
8976
8977 2004-04-12  Roger Sayle  <roger@eyesopen.com>
8978
8979         * config/i386/i386.c (output_387_reg_move): New function.
8980         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
8981         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
8982         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
8983         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
8984         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
8985
8986 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8987
8988         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
8989         TYPE_DECL.
8990         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
8991         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
8992         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
8993         Use skip_simple_arithmetic to find SAVE_EXPR.
8994         (force_type_save_exprs, force_type_save_exprs_1): New functions.
8995         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
8996         Properly chain multiple pointers.
8997         (copy_tree_r): Copy a TYPE_DECL.
8998         * tree.c (variably_modified_type_p): Add some missing tests and
8999         make some other minor changes.
9000         * tree.h (force_type_save_exprs): New declaration.
9001
9002 2004-04-12  Roger Sayle  <roger@eyesopen.com>
9003
9004         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
9005         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
9006         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
9007         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
9008         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
9009         x%-1 into 0 (or x&0 if x has side-effects).
9010
9011 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
9012
9013         * config/rs6000/rs6000.md: Document why a pattern is not
9014         available.
9015
9016         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
9017         of floats on the E500.
9018         (branch_positive_comparison_operator): Do not allow NE even on the
9019         E500.
9020
9021 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
9022
9023         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
9024         in_text_unlikely_section to in_unlikely_text_section.
9025
9026 2004-04-11  Roger Sayle  <roger@eyesopen.com>
9027
9028         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
9029         calling convention to allow a NULL_TREE to be returned.  Factor
9030         sanity checks from callers, return NULL_TREE when appropriate.
9031         (fold): Handle COMPOUND_EXPR operands of binary expressions
9032         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
9033         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
9034         calls to fold_binary_op_with_conditional_arg.
9035
9036 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9037
9038         * config/mips/iris5.h (current_section_flags):  Add
9039         in_unlikely_executed_text and default case.
9040
9041 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
9042
9043         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
9044         failure on solaris. Place ifdef HAVE_return around gen_ret call.
9045         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
9046         HAVE_return and place it around the place where it is needed.
9047
9048 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
9049
9050         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
9051         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
9052         and NORMAL_TEXT_SECTION_NAME.
9053         (unlikely_text_section): Check targetm.have_named_sections
9054         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
9055         instead of SECTION_FORMAT_STRING.
9056         * config/mips/iris5.h (current_section_name): Add
9057         in_unlikely_executed_text case and move the abort into the switch.
9058         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
9059         (NORMAL_TEXT_SECTION_NAME): Remove.
9060         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
9061         (SECTION_FORMAT_STRING): Remove.
9062         * defaults.h (SECTION_FORMAT_STRING): Remove.
9063         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
9064         (SECTION_FORMAT_STRING): Remove.
9065
9066 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
9067
9068         * c-typeck.c (common_type): Prefer long long to long when same
9069         precision.
9070
9071 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
9072
9073         PR 14887
9074         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
9075         mode argument.
9076         * config/ia64/ia64.c (ia64_hpux_file_end): Check
9077         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
9078
9079 2004-04-09  Roger Sayle  <roger@eyesopen.com>
9080
9081         * simplify-rtx.c (mode_signbit_p): New function to check whether
9082         an RTX is an immediate constant that represents the most significant
9083         bit of a given machine mode.
9084         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
9085         C is the sign bit.
9086         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
9087         when C2 is the sign bit.
9088         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
9089         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
9090         sign bit.
9091
9092 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9093
9094         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
9095         TYPE_MODE.
9096
9097 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
9098
9099         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
9100         of TREE_READONLY for types.
9101
9102 2004-04-09  Caroline Tice  <ctice@apple.com>
9103
9104         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
9105         (struct basic_block_def):  Add new field, partition.
9106         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
9107         definitions.
9108         (partition_hot_cold_basic_blocks): Add extern function
9109         declaration.
9110         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
9111         include statements.
9112         (N_ROUNDS): Increase the maximum number of rounds by 1.
9113         (branch_threshold): Add array value for new round.
9114         (exec_threshold): Add array value for new round.
9115         (push_to_next_round_p): New function.
9116         (add_unlikely_executed_notes): New function.
9117         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
9118         (mark_bb_for_unlikely_executed_section): New function.
9119         (add_labels_and_missing_jumps): New function.
9120         (add_reg_crossing_jump_notes): New function.
9121         (fix_up_fall_thru_edges): New function.
9122         (find_jump_block): New function.
9123         (fix_crossing_conditional_branches): New function.
9124         (fix_crossing_unconditional_branches): New function.
9125         (fix_edges_for_rarely_executed_code): New function.
9126         (partition_hot_cold_basic_blocks): New function.
9127         (find_traces):  Add an extra round for partitioning hot/cold
9128         basic blocks.
9129         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
9130         and only cold blocks, into the last (extra) round of collecting traces.
9131         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
9132         over crossing edges.
9133         (bb_to_key):  Add code to correctly identify cold blocks when
9134         doing partitioning.
9135         (connect_traces): Modify to connect all the non-cold traces first, then
9136         go back and connect up all the cold traces.
9137         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
9138         * cfg.c (entry_exit_blocks): Add initialization for partition field in
9139         entry and exit blocks.
9140         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
9141         if we are doing hot/cold partitioning.
9142         * cfgcleanup.c (cfglayout.h): Add new include statement.
9143         (try_simplify_condjump): Modify to not attempt on blocks with jumps
9144         that cross section boundaries.
9145         (try_forward_edges): Likewise.
9146         (merge_blocks_move_predecessor_nojumps): Likewise.
9147         (merge_blocks_move_successor_nojumps): Likewise.
9148         (merge_blocks_move): Likewise.
9149         (try_crossjump_to_edge): Modify to not attempt after we have done
9150         the block partitioning.
9151         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
9152         cross section boundaries.
9153         (try_optimize_cfg): Likewise.
9154         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
9155         jumps that cross section boundaries.
9156         * cfglayout.c (flags.h): Add new include statement.
9157         (update_unlikely_executed_notes):  New function.
9158         (fixup_reorder_chain):  Add code so when a new jumping basic block is
9159         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
9160         updated appropriately.
9161         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
9162         introduced by this optimization.
9163         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
9164         extern function declaration.
9165         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
9166         list of notes that can be deleted.
9167         (create_basic_block_structure):  Add initialization for partition field.
9168         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
9169         section boundaries.
9170         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
9171         cross section boundaries.
9172         (commit_one_edge_insertion): Add code so newly created basic block
9173         ends up in correct (hot or cold) section.  Modify to disallow
9174         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
9175         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
9176         crosses section boundaries.
9177         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
9178         cross section boundaries.
9179         (force_nonfallthru_and_redirect): Modify to make sure new basic block
9180         ends up in correct section, with correct notes attached.
9181         * common.opt (freorder-blocks-and-partition):  Add new flag for this
9182         optimization.
9183         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
9184         the end of functions are written into the correct (hot or cold)
9185         section.
9186         (dbx_source_file): Add code so writing debug file information
9187         doesn't incorrectly change sections.
9188         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
9189         in partitioning hot/cold basic blocks into separate sections.
9190         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
9191         section partitioning.
9192         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
9193         conditional branches can span all of memory.
9194         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
9195         unconditional branches can span all of memory.
9196         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
9197         (final_scan_insn):  Add code to check for NOTE instruction indicating
9198         whether basic block belongs in hot or cold section, and to make sure
9199         the current basic block is being written to the appropriate section.
9200         Also added code to ensure that jump table basic blocks end up in the
9201         correct section.
9202         * flags.h (flag_reorder_blocks_and_partition):  New flag.
9203         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
9204         one of the branches has a jump that crosses between sections.
9205         (find_if_case_2): Likewise.
9206         (ifcvt): Modify to not attempt to mark loop exit edges after
9207         hot/cold partitioning has occurred.
9208         * opts.c (decode_options): Code to handle new flag,
9209         flag_reorder_blocks_and_partition; also to turn it off if
9210         flag_exceptions is on.
9211         (common_handle_option): Code to handle new flag,
9212         flag_reorder_blocks_and_partition.
9213         * output.h (unlikely_text_section): New extern function declaration.
9214         (in_unlikely_text_section): New extern function declaration.
9215         * passes.c (rest_of_handle_stack_regs):  Add
9216         flag_reorder_blocks_and_partition as an 'or' condition for calling
9217         reorder_basic_blocks.
9218         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
9219         as an 'or' condition for calling reorder_basic_blocks.
9220         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
9221         * print-rtl.c (print_rtx): Add code for handling new note,
9222         NOTE_INSN_UNLIKELY_EXECUTED_CODE
9223         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
9224         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
9225         cross between section boundaries.
9226         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
9227         indicating the basic block containing it belongs in the cold section.
9228         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
9229         between hot and cold sections.
9230         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
9231         initialize this flag, and to tie it to the command-line option
9232         freorder-blocks-and-partition.
9233         * varasm.c (cfglayout.h):  Add new include statement.
9234         (unlikely_section_label_printed):  New global variable, used for
9235         determining when to output section name labels for cold sections.
9236         (in_section):  Add in_unlikely_executed_text to enum data structure.
9237         (text_section):  Modify code to use SECTION_FORMAT_STRING and
9238         NORMAL_TEXT_SECTION_NAME macros.
9239         (unlikely_text_section):  New function.
9240         (in_unlikely_text_section):  New function.
9241         (function_section):  Add code to make sure beginning of function is
9242         written into correct section (hot or cold).
9243         (assemble_start_function):  Add code to make sure stuff is written to
9244         the correct section.
9245         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
9246         to an if statement that was checking 'in_text_section'.
9247         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
9248         condition to an if statement that was checking 'in_text_section'.
9249         (default_section_type_flags_1):  Add check: if in cold section
9250         flags = SECTION_CODE.
9251         * config/darwin.c (darwin_asm_named_section):  Modify to use
9252         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
9253         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
9254         specifically for the i386.
9255         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
9256         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
9257         text string to something more informative.
9258         (NORMAL_TEXT_SECTION_NAME): Add new definition.
9259         (SECTION_FORMAT_STRING):  Add new definition.
9260         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
9261         '!in_unlikely_text_section' as an 'and' condition to an if statement
9262         that was already checking '!in_text_section'.
9263         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
9264         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
9265         sure these are properly defined for linux on ppc.
9266         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
9267         for this new flag.
9268         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
9269         reg_note.
9270         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
9271         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
9272         these new macros.
9273
9274 2004-04-08  Roger Sayle  <roger@eyesopen.com>
9275
9276         * function.c (gen_mem_addressof): When changing the RTX from a REG
9277         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
9278
9279 2004-04-08  Roger Sayle  <roger@eyesopen.com>
9280
9281         PR target/14888
9282         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
9283         truncxfdf2_noop): Provide dummy "fmov" implementations.
9284
9285 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
9286
9287         * gcc.c (default_compilers): Add missing initializers.
9288
9289         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
9290         Return 1 if file was successfully mapped.
9291
9292 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
9293
9294         PR pch/13419
9295         PR pch/14137
9296         Radar #: 3315288
9297         * doc/invoke.texi (Precompiled Headers): Suggest -o
9298         to put an output file in a particular place.  Be more detailed
9299         about which options affect PCH validity and which options
9300         might not work.
9301         * c-pch.c (pch_matching): New.
9302         (MATCH_SIZE): New.
9303         (struct c_pch_validity): New field 'match'.
9304         (pch_init): Handle pch_matching.
9305         (c_common_valid_pch): Check pch_matching.
9306
9307         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
9308
9309 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
9310
9311         * doc/invoke.texi (Precompiled Headers): Warn about known
9312         problems.
9313
9314 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
9315
9316         PR c++/14808
9317         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
9318         to 1 if ASM_OUTPUT_DEF is defined.
9319         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
9320         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
9321         Set to non-zero iff not a one_only decl.
9322
9323 2004-04-08  Paul Brook  <paul@codesourcery.com>
9324
9325         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
9326
9327 2004-04-08  Paul Brook  <paul@codesourcery.com>
9328
9329         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
9330         PROMOTE_FOR_CALL_ONLY.
9331         * config/arm/arm-protos.h (arm_function_value): Declare.
9332         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
9333         (TARGET_PROMOTE_PROTOTYPES): Return false.
9334         (arm_function_value): New function.
9335         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
9336         (FUNCTION_VALUE): Call arm_function_value.
9337         * config/cris/cris.h (PROMOTE_MODE): Rename ...
9338         (PROMOTE_FUNCTION_MODE): ... to this.
9339         (PROMOTE_FOR_CALL_ONLY): Remove.
9340         * config/mmix/mmix.h: Likewise.
9341         * config/s390/s390.h: Likewise.
9342         * config/sparc/sparc.h: Likewise.
9343         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
9344         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
9345         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
9346         (PROMOTE_FOR_CALL_ONLY): Remove.
9347
9348 2004-04-08  Joel Sherrill <joel@oarcorp.com>
9349
9350         PR ada/14538
9351         * ada/5rosinte.adb: Remove fake mprotect() body.
9352         * ada/5rosinte.ads: Add SA_SIGINFO.
9353         * ada/5rtpopsp.adb: Rewrite to use new interface.
9354         * ada/init.c: Reorder so the simple single OS conditional __rtems__
9355         is tested before more complex ones which mix UNIX and embedded
9356         systems in the conditional.
9357
9358 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
9359
9360         PR ada/14665
9361         * ada/osint.adb (Find_Program_Name): Rework to properly handle
9362         filenames which end in .exe or have versioning suffixes like VMS.
9363
9364 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
9365
9366         PR target/10129
9367         * config/darwin.c (darwin_encode_section_info): When the decl has
9368         a DECL_INITIAL, it is only defined also when it is not a common.
9369
9370 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9371
9372         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
9373         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
9374
9375 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
9376
9377         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
9378         global register variables.
9379
9380 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
9381
9382         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
9383         rpc_xdr_lvalue_cast_b): New fixes.
9384         * fixinc/fixincl.x: Regenerate.
9385         * fixinc/tests/base/rpc/xdr.h: Add new tests.
9386
9387 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
9388
9389         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
9390         to power4 and power5 entries.
9391
9392 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
9393
9394         * c-common.h (pending_lang_change): Mark for PCH.
9395
9396 2004-04-07  Caroline Tice  <ctice@apple.com>
9397
9398         * gcc.c (main): Move 'break' in main loops (on an error)
9399         to wait until error processing has occurred.
9400
9401 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
9402
9403         * config.gcc: Stop changing enable_threads midstream.
9404         Replace uses of enable_threads_flag with enable_threads.
9405         * configure.ac: Replace uses of enable_threads_flag with
9406         enable_threads.  Improve autoconf quotation in one place.
9407         * configure: Regenerate.
9408
9409 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
9410
9411         * builtins.c: Implement support for sincos function.
9412         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
9413         BUILT_IN_COS{,F,L}.
9414         (expand_builtin_mathfn_3): New function.
9415         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
9416         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
9417         flag_unsafe_math_optimization is set.
9418
9419         * optabs.h (enum optab_index): Add new OTI_sincos.
9420         (sincos_optab): Define corresponding macro.
9421
9422         * optabs.c (init_optabs): Initialize sincos_optab.
9423         (expand_twoval_unop): New function.
9424
9425         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
9426         patterns.
9427
9428         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
9429         and UNSPEC_SINCOS_SIN.
9430
9431         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
9432         sincosxf3): New patterns to implement sincos, sincosf and sincosl
9433         built-ins as inline x87 intrinsics. Define splits for
9434         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
9435         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
9436         sincos patterns.
9437         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
9438         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
9439
9440         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
9441         x87's fsincos insn.
9442
9443 2004-04-06  Devang Patel  <dpatel@apple.com>
9444
9445         PR 14467
9446         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
9447
9448 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9449
9450         * doc/install.texi: Update HP-UX 11 installation procedure.
9451
9452 2004-04-06  Paul Brook  <paul@codesourcery.com>
9453
9454         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
9455
9456 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
9457
9458         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
9459         when the TLS address is generated by a function call.
9460         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
9461         (tls_local_dynamic): Likewise.
9462
9463 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
9464
9465         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
9466         and TYPE_VOLATILE.
9467
9468 2004-04-05  Caroline Tice  <ctice@apple.com>
9469
9470         * gcc.c (combine_flag): New global variable, for new driver option.
9471         (struct compiler): Add two new fields, to be used when
9472         combining multiple input files in a single pass (IMA).
9473         (default_compilers):  Add values for the new fields to all
9474         compiler entries. Modify the "@c" compiler entry for doing IMA
9475         properly with "-save-temps" and the "combine" flag.
9476         (option_map):  Add new driver option, "--combine", to tell driver
9477         to pass multiple input files to compiler at one time.
9478         (have_o_argbuf_index): New global variable.
9479         (store_arg): Modify to assign value to have_o_argbuf_index.
9480         (struct infile):  Add three new fields, to help with IMA.
9481         (display_help): Add help for new "combine" option.
9482         (process_command): Remove local variable have_o; add code to check
9483         for new "combine" option; remove assignment to combine_inputs.
9484         (do_spec_1):  Modify to deal with IMA better.
9485         (main): Make variable 'lang_n_infiles' local to entire function
9486         rather than to a single block.  Use flag combine_flag to
9487         determine whether to do IMA or not; Modify loop initializing
9488         infiles to deal properly with linker files.
9489         Add code for doing preprocessing in presence of
9490         IMA with "-save-temps" flag.  Modify "main" loop to handle
9491         multiple input files, in multiple languages, with or without
9492         preprocessing,  gracefully.
9493         * toplev.c (set_src_pwd): Modify to not complain if attempting to
9494         re-set it to same directory it's previously been set to (avoid
9495         irritating, meaningless warning messages when doing IMA with
9496         save-temps).
9497         * doc/invoke.texi: Add "-combine" to list of Overall Options;
9498         remove documentation about IMA that is no longer accurate; Add
9499         documentation explaining what "-combine" does.
9500         * ada/lang-specs.h: Add initialization values for new fields in
9501         "struct compiler".
9502         * cp/lang-specs.h: Likewise.
9503         * f/lang-specs.h: Likewise.
9504         * java/lang-specs.h: Likewise.
9505         * objc/lang-specs.h: Likewise.
9506         * treelang/lang-specs.h: Likewise.
9507
9508 2004-04-05  David Edelsohn
9509
9510         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
9511         symbol handling.
9512
9513 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
9514             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9515
9516         PR optimization/13424 (hppa), bootstrap/14462, c/14828
9517         * pa.md: Use replace_equiv_address to retain the attributes of the
9518         memory operands used in the split and peephole2 patterns for optimizing
9519         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
9520
9521 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9522
9523         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
9524         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
9525         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
9526         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
9527         PARM_DECL.
9528         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
9529         for a type.
9530         * print-tree.c (print_node): Properly handle side-effects, readonly,
9531         and constant flags.
9532         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
9533         and TREE_CONSTANT if not a type.
9534         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
9535         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
9536         (NON_TYPE_CHECK): New macro.
9537         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
9538
9539 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
9540
9541         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
9542         to DWARF2_DEBUG unconditionally.
9543         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
9544
9545 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
9546             Nathanael Nerode  <neroden@gcc.gnu.org>
9547
9548         PR target/14548
9549         * config.host: Set the shell variable host_can_use_collect2.
9550         Set it to yes by default, and to no for alpha*-dec-*vms*,
9551         i[34567]86-*-mingw32*, and powerpc-*-beos*.
9552         * configure.ac: Set and substitute the shell variable collect2.
9553         Give an error if use_collect2 is yes and host_can_use_collect2 is
9554         no.
9555         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
9556         uses.  Initialize to @collect2@.
9557         (STAGESTUFF): Remove $(USE_COLLECT2).
9558         * config/alpha/x-vms (USE_COLLECT2): Don't set.
9559         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
9560         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
9561         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
9562         * configure: Regenerate.
9563
9564 2004-04-04  Roger Sayle  <roger@eyesopen.com>
9565
9566         * simplify-rtx.c (simplify_binary_operation): Constant fold
9567         DIV, MOD, UDIV and UMOD using div_and_round_double.
9568
9569 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
9570
9571         PR c++/14804
9572         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
9573         RECORD_TYPEs.
9574
9575 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
9576
9577         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
9578         documentation.
9579
9580 2004-04-04  Roger Sayle  <roger@eyesopen.com>
9581
9582         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
9583         updating the REG_EQUAL note on an insn's libcall_insn.
9584
9585 2004-04-04  Roger Sayle  <roger@eyesopen.com>
9586
9587         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
9588
9589 2004-04-03  Roger Sayle  <roger@eyesopen.com>
9590
9591         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
9592         with reorder_operands_p.
9593
9594 2004-04-03  Jan Hubicka  <jh@suse.cz>
9595
9596         * md.texi (vec_set, vec_extract, vec_init): Document.
9597
9598 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
9599
9600        * opts.c (decode_options): Do function inlining with very small
9601        max-inline-insns-* parameters when optimizing for size.
9602
9603 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
9604
9605         * config/i386/i386.h (TARGET_NOCONA): New macro.
9606         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
9607         (processor_type): Add PROCESSOR_NOCONA.
9608
9609         * config/i386/i386.md (cpu): Add nocona to the attribute values.
9610
9611         * config/i386/i386.c (nocona_cost): New variable.
9612         (m_NOCONA): New macro.
9613         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
9614         x86_branch_hints, x86_use_sahf, x86_single_stringop,
9615         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
9616         x86_integer_DFmode_moves, x86_partial_reg_dependency,
9617         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
9618         x86_decompose_lea, x86_arch_always_fancy_math_387,
9619         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
9620         x86_ext_80387_constants, x86_four_jump_limit):
9621         (override_options): Add nocona_cost to processor_target_table.
9622         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
9623         (incdec_operand): Prevent inc/dec generation for Nocona too.
9624         (ix86_issue_rate): Add PROCESSOR_NOCONA.
9625
9626 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
9627
9628         * rtlanal.c (find_reg_note): Manually
9629         unswitch the loop.
9630
9631 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
9632
9633         * genemit.c (gen_split): Change prototype of generated code.
9634         * genrecog.c (write_action): Adjust prototype for and calls to
9635         gen_split_*.
9636         * gensupport.c (struct queue_elem): Add split field.
9637         (queue_pattern): Return a value.  Clear the split field.
9638         (process_rtx): Maintain an association between an insn and the
9639         split generated from it for a define_insn_and_split.
9640         (process_one_cond_exec): Generate a new split for a
9641         define_insn_and_split.
9642         * config/arm/arm-protos.h (arm_split_constant): Add insn
9643         parameter.
9644         (emit_constant_insn): New function.
9645         (arm_gen_constant): Use it.
9646         * config/arm/arm.md: Adjust calls to arm_split_constant.
9647
9648 2004-04-02  Jan Hubicka  <jh@suse.cz>
9649
9650         * cgraph.c: Add overall comment.
9651         (cgraph_inline_hash): New global variable.
9652         (cgraph_create_node): Break out from ...
9653         (cgraph_node): ... here.
9654         (cgraph_edge): New function.
9655         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
9656         (cgraph_remove_edge): Accept edge, intead of source and destination.
9657         (cgraph_redirect_edge_callee): New.
9658         (cgraph_remove_node): Update all new datastructures.
9659         (cgraph_record_call, cgraph_remove_call): Kill.
9660         (dump_cgraph_node): Break out from ... ; dump new datastructures.
9661         (dump_cgraph): ... here.
9662         (cgraph_function_possibly_inlined_p): Use new hashtable.
9663         (cgraph_clone_edge, cgraph_clone_node): New.
9664         * cgraph.h: Include hashtab.h
9665         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
9666         fields, add inlined_to pointer.
9667         (cgraph_node): Add pointer to next_clone.
9668         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
9669         (cgraph_remove_call, cgraph_record_call): Kill.
9670         (cgraph_inline_hash): Declare.
9671         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
9672         cgraph_redirect_edge_callee): Declare.
9673         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
9674         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
9675         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
9676         * cgraphunit.c: Add overall comment.
9677         (cgraph_optimize_function): Kill.
9678         (cgraph_assemble_pending_functions): Do not assemble inline clones.
9679         (cgraph_finalize_function): Update call of cgraph_remove_node
9680         (record_call_1): Record call sites.
9681         (cgraph_create_edges): Accept node instead of decl argument.
9682         (error_found): New static variable.
9683         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
9684         (cgraph_analyze_function): Update for new datastructures.
9685         (cgraph_finalize_compilation_unit): Plug memory leak.
9686         (cgraph_optimize_function): Kill.
9687         (cgraph_expand_function): Do not use cgraph_optimize_function.
9688         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
9689         cgraph_inlined_callees): Kill.
9690         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
9691         clones.
9692         (estimate_growth): Simplify.
9693         (cgraph_clone_inlined_nodes): New function.
9694         (cgraph_mark_inline_edge): Re-implement.
9695         (cgraph_mark_inline): Likewise.
9696         (cgraph_check_inline_limits): Simplify.
9697         (cgraph_recursive_inlining_p): New.
9698         (update_callee_keys): Break out from ...
9699         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
9700         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
9701         Likewise.
9702         (cgraph_expand_all_functions):  Remove inline clones from the ordered
9703         list.
9704         (cgraph_preserve_function_body_p): New predicate.
9705         (cgraph_optimize): Verify cgraph.
9706         * function.h (struct function): Add fields saved_tree/saved_args.
9707         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
9708         * toplev.c (rest_of_compilation): Do not free cfun.
9709         * tree-inline.c: Include function.h
9710         (struct inline_data): Add saving_p field; replace decl/current_decl by
9711         node/current_node.
9712         (insert_decl_map): New function.
9713         (copy_body_r): Handle saving; update cgraph datastructure.
9714         (copy_body): Handle recursive inlining.
9715         (initialize_inlined_parameters): Likewise.
9716         (expand_call_inline): Propagate node attributes; update cgraph.
9717         (optimize_inline_calls): Verify that datastructure still match.
9718         (save_body): New function.
9719         * tree-inline.h (save_body): New.
9720         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
9721         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
9722         * langhooks.c (lang_hooks): Add update_decl_after_saving.
9723
9724 2004-04-01  Serge Belyshev  <1319@bot.ru>
9725
9726         PR target/14702
9727         * config/i386/i386.md: fix source operand constraints in
9728         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
9729
9730 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
9731
9732         * fold-const.c (folda): Preserve types of comparisons.
9733
9734 2004-04-01  Richard Henderson  <rth@redhat.com>
9735
9736         * toplev.c (backend_init): Move init_optimization_passes call ...
9737         (lang_dependent_init): ... here.
9738
9739 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
9740             Jakub Jelinek  <jakub@redhat.com>
9741
9742         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
9743         -lgcc --as-needed -lgcc_s --no-as-needed by default.
9744         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
9745         * configure: Rebuilt.
9746         * config.in: Rebuilt.
9747         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
9748         (stage2-start, stage3-start, stage4-start): Likewise.
9749         (stageprofile-start, stagefeedback-start): Likewise.
9750
9751 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
9752
9753         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
9754         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
9755         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
9756         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
9757         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
9758         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
9759         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
9760         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
9761         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
9762         * config/sparc/t-linux: Removed.
9763
9764 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
9765
9766         PR c++/14755
9767         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
9768         "bitfld++ == const" to "++bitfld == const + incr" transformations.
9769
9770 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9771
9772         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
9773         * stor-layout.c (layout_decl): Likewise.
9774         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
9775         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
9776         * print-tree.c (print_node): Handle various used of unsigned_flag.
9777         * tree.def (BIT_FIELD_REF): Update comment.
9778         * tree.h (TREE_UNSIGNED): Deleted.
9779         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
9780
9781 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9782
9783         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
9784         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
9785         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
9786         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
9787         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
9788         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
9789         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
9790         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
9791         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
9792         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
9793         REAL_TYPE, not INTEGER_TYPE.
9794         (layout_type, case VECTOR_TYPE): Simplify code.
9795         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
9796         * tree.h: Update comments.
9797         (STRIP_NOPS): Use TYPE_UNSIGNED.
9798         (TYPE_UNSIGNED): New macro.
9799         (TYPE_TRAP_SIGNED): Remove now redundant check.
9800         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
9801
9802 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9803
9804         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
9805
9806 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
9807
9808         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
9809         Add darwin-fpsave.asm, darwin-vecsave.asm,
9810         and darwin-world.asm.
9811         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
9812         as the asm files contain altivec instructions.
9813         * config/rs6000/darwin-fpsave.asm: New file.
9814         * config/rs6000/darwin-vecsave.asm: New file.
9815         * config/rs6000/darwin-world.asm: New file.
9816
9817 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
9818
9819         * gengtype-yacc.y (option, stringseq): Add missing
9820         terminating semicolon.
9821
9822 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
9823
9824         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
9825         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
9826         tls_dtprel_ha_32, tls_dtprel_ha_64,
9827         tls_dtprel_lo_32, tls_dtprel_lo_64,
9828         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
9829         tls_tprel_ha_32, tls_tprel_ha_64,
9830         tls_tprel_lo_32, tls_tprel_lo_64,
9831         tls_got_tprel_32, tls_got_tprel_64,
9832         tls_tls_32, tls_tls_64): Replace register_operand with
9833         gpc_reg_operand.
9834
9835 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
9836
9837         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
9838         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
9839         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
9840         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
9841         *ctrdi_internal6): Replace register_operand with
9842         nonimmediate_operand.
9843
9844 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
9845
9846         * fold-const.c (fold): Reassociate multiply expression
9847         with an adjacent non-multiply expression to use
9848         architecture's multiply-add instruction.
9849
9850 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
9851
9852         * gengtype.c (create_option): New function.
9853         * gengtype.h: Prototype it.
9854         * gengtype-yacc.y (stringseq): New rule.
9855         (option): Use create_option.  Add new bare ID production.  Use
9856         stringseq, not STRING directly.
9857
9858         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
9859         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
9860         * varray.h, config/alpha/alpha.c:
9861         Use new shorter form of GTY markers.
9862
9863         * doc/gty.texi: Rewrite.
9864
9865 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
9866
9867         * config/darwin.c (machopic_function_base_name):
9868         Remove current_name and getting the name of the
9869         current function.
9870
9871 2004-03-30  Nick Clifton  <nickc@redhat.com>
9872
9873         * config/arm/arm.md (thumb_jump): Reduce the backward branch
9874         range, and increase the forward branch range, to allow for
9875         the fact that the PC will be off by 4.
9876
9877 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
9878
9879         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
9880
9881 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
9882
9883         * config/rs6000/rs6000.c (output_vec_const_move):
9884         Find all cases of EASY_VECTOR_15_ADD_SELF.
9885         (easy_vector_constant_add_self): Accept
9886         all vector constant loadable by vsplt* and vadd*.
9887         (easy_vector_same): Use easy_vector_splat_const.
9888         (easy_vector_const): Use easy_vector_splat_const.
9889         (easy_vector_splat_const): New function.
9890         (gen_easy_vector_constant_add_self): New function.
9891
9892         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
9893         New prototype.
9894
9895         * config/rs6000/altivec.md (movv4si splitter): Change to
9896         emit move insn with halfed vector constant.
9897         (*movv8hi splitter): Likewise.
9898         (*movv16qi splitter): Likewise.
9899
9900 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
9901
9902         PR 11591
9903         * config/rs6000/rs6000.c (rs6000_legitimate_address):
9904         Allow any offset to argument pointer in no-strict case.
9905
9906 2004-03-30  Jan Hubicka  <jh@suse.cz>
9907
9908         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
9909         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
9910         dump file in non-unit-at-a-time mode.
9911
9912 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
9913
9914         * config/cris/cris.h: Correct #ifdef to test for
9915         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
9916         HAVE_AS_MUL_BUG_ABORT_OPTION.
9917
9918 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9919
9920         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
9921         the address inside the old RTL.
9922
9923 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
9924
9925         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
9926         (struct c_binding, struct c_scope): Add chain_next
9927         attributes to GTY markers.
9928         (struct lang_identifier, struct lang_tree_node): Define
9929         here...
9930         * c-tree.h: ... not here.  No longer need to declare struct
9931         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
9932         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
9933         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
9934
9935         PR 14734, 11944
9936         * c-decl.c (get_parm_info): If error_mark_node is encountered
9937         in the bindings chain, unbind and discard it; don't abort.
9938
9939 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
9940             Dorit Naishlos <dorit@il.ibm.com>
9941
9942         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
9943         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
9944
9945 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
9946
9947         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
9948
9949         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
9950         (m68hc11_attribute_table): New attribute "page0" to mark a global
9951         variable as being allocated from within page0 section.
9952         (m68hc11_encode_label): New function.
9953         (m68hc11_strip_name_encoding): New function.
9954         (m68hc11_page0_symbol_p): New function.
9955         (m68hc11_indirect_p): Accept global variables marked in page0.
9956         (m68hc11_encode_section_info): Lookup "page0" attribute.
9957
9958         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
9959         represents access to page0 variables.
9960
9961         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
9962         ("*logicalsi3_silshl16_zext"): Likewise.
9963         ("*ashldi3_const32"): Likewise.
9964         (peephole2 ashift): Likewise.
9965
9966 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
9967
9968         * c-tree.h (C_DECL_REGISTER): New.
9969         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
9970         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
9971         (build_array_ref, c_mark_addressable): Set and use it.
9972         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
9973         Allow structures with volatile fields to be declared register.
9974         Don't check TREE_ADDRESSABLE before warning about taking address
9975         of register.
9976         * c-decl.c (finish_decl): Don't allow structures with volatile
9977         fields to be placed in named register.
9978         * doc/trouble.texi: Remove reference to structures with volatile
9979         fields in registers.
9980
9981 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
9982
9983         * function.c (thread_prologue_and_epilogue): Move
9984         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
9985         before the epilogue.
9986
9987 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
9988
9989         * expr.c (store_constructor): Use gen_int_mode to correctly
9990         sign-extend CONST_INT value.
9991
9992 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9993
9994         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
9995         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
9996         * doc/extend.texi: Likewise.
9997
9998 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
9999
10000         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
10001           with TYPE_ORIG_SIZE_TYPE.
10002
10003 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
10004
10005         PR 14219
10006         * c-typeck.c (build_binary_op): Do not allow comparisons of
10007         vectors.
10008
10009 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
10010
10011         * config.gcc: Remove sparc-tti-*.
10012         * config/sparc/pbd.h: Delete.
10013
10014         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
10015         * config/sparc/aout.h: Likewise.
10016
10017         * config/sparc/sparc.h: Remove if 0'd code.
10018         * config/sparc/sparc.md (call): Remove if 0'd code.
10019         (call_value): Likewise.
10020         (nonlocal_goto): Likewise.
10021         (unimp_insn): Delete.
10022
10023 2004-03-25  Roger Sayle  <roger@eyesopen.com>
10024
10025         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
10026         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
10027
10028 2004-03-25  Richard Henderson  <rth@redhat.com>
10029
10030         PR 11527
10031         * c-typeck.c (pop_init_level): Emit pending init elements earlier
10032         rather than later.
10033
10034 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10035
10036         * builtins.c (fold_builtin): Fix error in last change.
10037
10038 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
10039
10040         * config/mips/mips.h: Formatting fix.
10041
10042 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10043
10044         * builtins.def: Add ctype builtins.
10045         * doc/extend.texi: Likewise.
10046
10047 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10048
10049         * builtins.c (fold_builtin): Add new builtin optimizations for
10050         sqrt and/or cbrt.
10051         * fold-const.c (fold): Likewise.
10052
10053 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
10054
10055         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
10056         (rs6000_sched_groups): New variable.
10057         (processor_target_table): Add power5.
10058         (rs6000_override_options): Set rs6000_sched_insert_nops,
10059         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
10060         from rs6000_sched_groups.
10061         (output_cbranch): Use rs6000_always_hint.
10062         (rs6000_variable_issue): Use rs6000_sched_groups.
10063         (rs6000_adjust_cost): Add CPU_POWER5.
10064         (is_microcoded_insn): Use rs6000_sched_groups.
10065         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
10066         Return 2 for POWER5 cracked instructions.
10067         (is_cracked_insn): Use rs6000_sched_groups.
10068         (is_branch_slot_insn): Use rs6000_sched_groups.
10069         (rs6000_issue_rate): Add CPU_POWER5.
10070         (rs6000_sched_finish): Use rs6000_sched_groups.
10071         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
10072         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
10073         (DEFAULT_SCHED_COSTLY_DEP): Delete.
10074         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
10075         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
10076         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
10077         * config/rs6000/power5.md: New file.
10078         * doc/invoke.texi: Add power5 option.
10079
10080 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
10081
10082         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
10083         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
10084         * doc/invoke.texi: Fix a typo.
10085
10086 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
10087
10088         PR optimization/9707.
10089         * stmt.c (emit_case_nodes): Emit equality comparisons instead
10090         of recursing if both children are single-valued cases with no
10091         children.
10092
10093 2004-03-25  Paul Brook  <paul@codesourcery.com>
10094
10095         * config/arm/arm.c (vfp_print_multi): Remove.
10096         (arm_output_fldmx): New function.
10097         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
10098         (arm_expand_prologue): Update to match.
10099         (arm_get_vfp_saved_size): New Function.
10100         (arm_get_frame_offsets): Use it.
10101         (arm_output_epilogue): Use new functions.
10102
10103 2004-03-24  Richard Henderson  <rth@redhat.com>
10104
10105         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
10106         (reg_known_value, reg_known_value_size): Likewise; make static.
10107         (reg_known_equiv_p): Make static.
10108         (clear_reg_alias_info): Update for new indexing.
10109         (get_reg_known_value, set_reg_known_value): New.
10110         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
10111         (canon_rtx): Use them.
10112         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
10113         Don't play queer offsetting games with reg_known_value and
10114         reg_known_equiv_p.
10115         (end_alias_analysis): Free reg_known_value with gc.
10116         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
10117         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
10118         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
10119         functions instead.
10120
10121 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
10122
10123         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
10124         config/i386/mmintrin.h: Update copyright.
10125
10126 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
10127
10128         * configure.ac: Add --enable-werror-always (for top level bootstrap
10129         support).
10130         * configure: Regenerate.
10131
10132 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
10133
10134         * objc/objc-act.c (objc_comptypes): Treat comparisons
10135         between 'Class' and '<class> *' as explicitly invalid.
10136
10137 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
10138
10139         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
10140         (-fprofile-values): Add enabled with profile-{generate,use}.
10141         (-fvpt): Same.
10142         (-ftracer): Add enabled with profile-use.
10143         (-funit-at-a-time): Add enabled at -O2,-O3.
10144         (-funroll-loops): Add enabled with profile-use.
10145         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
10146         (max-gcse-passes): Mention default.
10147         (max-cse-path-length): Mention default.
10148
10149 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
10150
10151         * Makefile.in (STRICT2_WARN): Reorder.
10152         * configure.ac: Check for -Wold-style-definition, and use it
10153         in strict1_warn if it's available.
10154         * configure: Regnerate.
10155
10156 2004-03-24  Paul Brook  <paul@nowt.org>
10157
10158         * config.gcc <arm>: Add --with-abi=
10159         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
10160         thumb_far_jump_used): Remove prototypes.
10161         (arm_needs_doubleword_align): Add prototype.
10162         (thumb_compute_initial_elimination_offset): Ditto.
10163         * config/arm/arm.c (arm_get_frame_offsets): New function.
10164         (use_return_insn, output_return_instruction, arm_output_epilogue,
10165         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
10166         arm_expand_prologue, thumb_expand_epilogue): Use it.
10167         (arm_abi, target_abi_name, all_arm_abis): New variables.
10168         (arm_override_options): Set them.  Set structure padding for AAPCS.
10169         (arm_return_in_memory): Update ABI check.
10170         (arm_init_cumulative_args): Initialize can_split.
10171         (arm_needs_doubleword_align): New function.
10172         (arm_function_arg): Don't split args after pushing to stack. Handle
10173         doubleword/even reg alignment.
10174         (arm_va_arg): Handle all doubleword aligned args.
10175         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
10176         on ABI, not CPU.
10177         (arm_compute_save_reg0_reg12_mask): Fix comment.
10178         (thumb_get_frame_size, thumb_get_frame_size): Remove.
10179         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
10180         value for alignment.
10181         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
10182         to match.
10183         (thumb_compute_initial_elimination_offset): New function.
10184         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
10185         unneccessary rounding.
10186         * config/arm/arm.h (target_abi_name): Declare.
10187         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
10188         arm_abi_type, ARM_DEFAULT_ABI): Define.
10189         (ARM_FLAG_ATPCS): Remove.
10190         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
10191         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
10192         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
10193         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
10194         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
10195         Contitionalize on ABI, not CPU.
10196         (struct arm_stack_offsets): Define.
10197         (struct machine_function): Add stack_offsets.  Remove frame_size.
10198         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
10199         pushed.
10200         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
10201         doubleword alignment.
10202         (THUMB_INITIAL_ELIMINATION_OFFSET,
10203         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
10204         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
10205         * config/arm/arm.md (align_8): Enable for all targets.
10206         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
10207         (ARM_DEFAULT_ABI): Define.
10208         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
10209         -mstructure-size-boundary.
10210
10211 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
10212
10213         * configure.ac: Check for -Wno-variadic-macros; don't use
10214         -pedantic (in stage 1 or a simple 'make all') unless it's available,
10215         and if it's available, use it.  Also, clean up check for
10216         -Wno-long-long.
10217         * configure: Regenerate.
10218
10219 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
10220
10221         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
10222         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
10223         (MULTILIB_DEFAULTS): Use it.
10224         (MIPS_CPU_STRING_DEFAULT): Remove.
10225         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
10226         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
10227         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
10228         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
10229         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
10230         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
10231         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
10232         accordingly.
10233
10234 2004-03-24  DJ Delorie  <dj@redhat.com>
10235             Richard Sandiford  <rsandifo@redhat.com>
10236
10237         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
10238         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
10239         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
10240         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
10241         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
10242         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
10243         if TARGET_FIX_VR4122.
10244         * config/mips/mips.md (define_attr length): Account for nops inserted
10245         after macc and dmult when using -mfix-vr4122-bugs.
10246         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
10247         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
10248         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
10249         * config/mips/vr4122-div.S: New file.
10250         * doc/invoke.texi: Document -mfix-vr4122-bugs.
10251
10252 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
10253
10254         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
10255         (TARGET_MIPS4130): New macro.
10256         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
10257         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
10258         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
10259         with PROCESSOR_R4130.
10260         * config/mips/mips.md (define_attr cpu): Add r4130.
10261         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
10262
10263 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10264             Richard Sandiford  <rsandifo@redhat.com>
10265
10266         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
10267
10268 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
10269
10270         PR preprocessor/14438
10271         * cpplib.c (do_pragma): Remove line_change call after pragma
10272         handler.
10273
10274 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
10275
10276         * doc/extend.texi (ARM Built-in Functions): Replace with correct
10277         declarations.
10278
10279 2004-03-23  Roger Sayle  <roger@eyesopen.com>
10280
10281         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
10282         if flag_unsafe_math_optimizations.
10283         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
10284         and TARGET_80387 expand using truncdfsf2_noop pattern.
10285         (truncxfsf2): Likewise using truncxfsf2_noop.
10286         (truncxfdf2): Likewise using truncxfdf2_noop.
10287         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
10288
10289 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
10290
10291         * hooks.c (hook_constcharptr_tree_null): New hook.
10292         * hooks.h (hook_constcharptr_tree_null): New prototype.
10293         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
10294         * target.h (mangle_fundamental_type): New target hook.
10295         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
10296         target hook at rs6000_mangle_fundamental_type.
10297         (rs6000_mangle_fundamental_type): New function.
10298         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
10299
10300 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
10301
10302         PR 12267, 12391, 12560, 13129, 14114, 14133
10303         * c-tree.h: Forward declare struct c_binding.  Declare
10304         c_override_bindings_to_false.  Update prototypes.
10305         (struct lang_identifier): Update comments.  Change fields to be
10306         struct c_binding *.
10307         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
10308         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
10309         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
10310         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
10311         * c-common.h: Update prototypes.
10312         * c-decl.c (struct c_scope): Update commentary.  Remove names,
10313         names_last, parms, parms_last, tags, and shadowed fields.  Add
10314         bindings and depth fields.
10315         (scope_freelist): Move to more appropriate location.
10316         (c_print_identifier): Update for changes to struct lang_identifier.
10317         (objc_mark_locals_volatile): Update for new bindings structures.
10318         (global_bindings_p): Honor c_override_global_bindings_to_false.
10319         (pushlevel): Rename to push_scope; take no arguments; use the
10320         scope_freelist; initialize scope->depth and check for overflow.
10321         (poplevel): Rename to pop_scope; totally rewritten for new bindings
10322         structures.
10323         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
10324         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
10325         Improve some commentary.  Adjust handling of forward parm decls.
10326         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
10327         Preserve C_DECL_IN_EXTERNAL_SCOPE.
10328         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
10329         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
10330         decls.  Rewrite for new bindings structures.  Improve commentary.
10331         Eliminate the copy_node call.
10332         (implicit_decl_warning): Use the "diag" idiom (as seen in
10333         locate_old_decl) to reduce code duplication; call locate_old_decl
10334         if appropriate.  Relocate to remove need for forward declaration.
10335         (implicitly_declare): Adjust for new bindings structures.  Kludge
10336         around Objective-C not-really-builtin functions.
10337         (undeclared_variable): Improve diagnostics.  If current_function_decl
10338         is nonnull but current_function_scope is null, use current_scope.
10339         Use bind.
10340         (lookup_tag): Adjust for new bindings structures.  Kludge around
10341         Objective-C's tag declarations that wind up in the external scope.
10342         (lookup_name): Adjust for new bindings structures.  Kludge around
10343         c-common.c's pseudo-typedefs that wind up in the external scope.
10344         (lookup_name_current_level): Rename lookup_name_in_scope; take a
10345         second argument indicating the scope to examine; rewrite for
10346         new bindings structures.
10347         (c_init_decl_processing): Adjust for renamed functions.  Do not
10348         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
10349         First scope pushed is the external scope, not the global scope.
10350         (builtin_function): Use bind, not pushdecl.  Adjust other bits
10351         for new data structures.  Keep track of builtins that should be
10352         made visible automatically.
10353         (start_decl): Adjust diagnostics.  Remove unnecessary call to
10354         expand_decl.
10355         (grokparms): Return 0 if arg_types is error_mark_node.
10356         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
10357         reversed sense.  Rewrite for new bindings structures.  Do not
10358         leave any decls in the scope, to prevent pop_scope from doing
10359         contradictory things with them.
10360         (finish_struct, finish_enum): Remove redundant diagnostics.
10361         (build_enumerator): Don't cascade diagnostics for error_mark_node.
10362         Mark location where -pedantic changes the meaning of the program.
10363         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
10364         parameter decls into the function's scope structure using bind.
10365         Warn here about function definitions in the wrong style.
10366         Adjust diagnostics.
10367         (store_parm_decls): Correct the determination of whether a
10368         function was defined with a prototype.
10369         (c_write_global_declarations): Operate on all file decls and on
10370         the external scope.  Split body of the loop to...
10371         (c_write_global_declarations_1): ... this new function, to avoid
10372         code duplication.
10373         (truly_local_externals, first_builtin_decl, last_builtin_decl)
10374         (make_scope, pop_scope, in_parm_level_p, set_block)
10375         (any_external_decl, record_external_decl, bind_label, getdecls)
10376         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
10377         (c_reset_state): Delete.
10378         (visible_builtins, c_override_global_bindings_to_false)
10379         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
10380         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
10381         (external_scope, binding_freelist, bind, free_binding_and_advance)
10382         (push_file_scope, pop_file_scope): New.
10383         (pushtag, pushdecl_top_level, lookup_label, declare_label)
10384         (define_label, c_make_fname_decl, finish_decl)
10385         (mark_forward_parm_decls, build_compound_literal)
10386         (grokdeclarator, start_function, check_for_loop_decls)
10387         (identifier_global_value, record_builtin_type): Minor adjustments
10388         for new bindings structures.  Improve diagnostics and commentary.
10389         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
10390         pushlevel/poplevel respectively.
10391         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
10392         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
10393         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
10394         correct loop over multiple translation units; call fatal_error if
10395         requested to compile more than one file at once.  (This disables
10396         IMA temporarily - an up-front error being preferable to a crash.)
10397         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
10398         (all actions): Adjust calls to pushlevel/poplevel.
10399         (parsing_iso_function_signature): Delete.
10400         (extdef_1): Fold into extdef.
10401         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
10402         warn here about function definitions in the wrong style.
10403         (after_tyle_declarator, parm_declarator_starttypename)
10404         (parm_declarator_nostarttypename, notype_declarator): Remove
10405         commented-out productions.
10406         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
10407         an empty TREE_LIST node.  Adjust calls to get_parm_info.
10408         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
10409         to suppress -Wold-style-definition after this error.
10410         (c_parse_file): Don't clear the binding stack or call
10411         finish_fname_decls here.  Correct comment.
10412         * c-typeck.c (same_translation_unit_p): Export.
10413         (common_type): Use c_override_global_bindings_to_false, not
10414         pushlevel/poplevel/declare_parm_level.
10415         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
10416         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
10417         and LANG_HOOKS_GETDECLS with do-nothing stubs.
10418         * objc/objc-lang.c: Likewise.
10419         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
10420         get_parm_info.
10421         (OBJC_VOID_AT_END): Delete; replace all uses
10422         with void_list_node.
10423         (generate_forward_declaration_to_string_table): Delete.
10424         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
10425
10426         * coverage.c (create_coverage): Don't pushdecl anything.
10427         * langhooks.c (lhd_clear_binding_stack): Call
10428         lang_hooks.decls.poplevel, not poplevel.
10429         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
10430         circular list rather than going into an infinite loop.
10431
10432 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
10433
10434         * optabs.c (expand_binop): When synthesizing double word rotates
10435         from single word shifts, use a new register target if the provided
10436         target is not a REG already.
10437
10438 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10439
10440         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
10441         * c-common.c (handle_mode_attribute): Add extra arg to
10442         build_pointer_type_for_mode and build_reference_type_for_mode.
10443         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
10444         for INTEGER_CST.
10445         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
10446         Chain pointers via TYPE_NEXT_PTR_TO.
10447         (build_reference_type_for_mode): Similarly.
10448         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
10449         and build_reference_type_for_mode.
10450         (tree_check4_failed): New function.
10451         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
10452         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
10453         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
10454         Add check.
10455
10456 2004-03-23  Roger Sayle  <roger@eyesopen.com>
10457
10458         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
10459         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
10460         when both A and B are nonnegative.
10461         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
10462         nonzero.
10463
10464 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
10465
10466         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
10467         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
10468
10469 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
10470
10471         PR optimization/14669
10472         * fold-const.c (fold): Only unwiden integer comparisons for equality
10473         and inequality operators, or when the signedness doesn't change.
10474
10475 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
10476
10477         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
10478         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
10479         * config/sparc/t-linux: New file.
10480
10481 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
10482
10483         * gcse.c (can_assign_to_reg_p): New function, split out from...
10484         (want_to_gcse_p): ...here.
10485         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
10486         the rhs of a store.
10487
10488 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
10489
10490         * c-typeck.c (same_translation_unit_p): Fix pasto.
10491
10492 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
10493
10494         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
10495         (PARAM_MAX_SCHED_REGION_INSNS): New.
10496         * sched-rgn.c: Include params.h
10497         (MAX_RGN_BLOCKS): Delete.
10498         (MAX_RGN_INSNS): Delete.
10499         (too_large): Return bool.  Convert to PARAM_VALUE.
10500         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
10501         * doc/invoke.texi (param): Document max-sched-region-blocks and
10502         max-sched-region-insns.
10503
10504 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
10505
10506         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
10507         for base types.
10508
10509 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
10510
10511         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
10512         change.
10513
10514 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
10515
10516         PR c/14069
10517         * c-decl.c (finish_struct): Change type of incorrect flexible array
10518         field into error_mark_node.
10519
10520 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
10521
10522         PR target/14580
10523         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
10524         who are not local for Darwin PIC.
10525
10526 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
10527
10528         * regrename.c (regrename_optimize): Set regs_ever_live for all
10529         registers introduced as replacement.
10530
10531 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
10532
10533         PR middle-end/14470
10534         * expr.c (mark_queue): New function.
10535         (emit_insns_enqueued_after_mark): New function replacing
10536         emit_queue.  Clear the body of emitted queued insns.
10537         (emit_queue): Call emit_insns_enqueued_after_mark.
10538         (store_expr): Mark the increment queue on entry.  Emit
10539         only the incrementations queued when expanding the source.
10540
10541 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
10542
10543         * configure.ac: Allow --disable-coverage-flags (for the future benefit
10544         of top level bootstrap, and consistency).  Reindent.
10545         * configure: Regenerate.
10546
10547 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
10548
10549         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
10550         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
10551         unnecessary casts.
10552
10553 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
10554
10555         PR target/14291
10556         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
10557         __MINGW32__.
10558
10559 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
10560
10561         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
10562         to nonimmediate_operand.
10563         ("*doloop_di"): Likewise.
10564
10565 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
10566
10567         * real.h (struct real_value): Use the same type for all
10568         bitfields.  Rename exp to uexp.
10569         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
10570         Adjust all uses of exp...
10571         * builtins.c: ... here, ...
10572         * emit-rtl.c: ... here, and ...
10573         * real.c: ... and here.
10574
10575 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10576
10577         * pretty-print.c (pp_base_maybe_space): New function.
10578         * pretty-print.h (pp_base_maybe_space): Declare.
10579         (pp_maybe_space): New macro.
10580
10581 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
10582
10583         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
10584
10585 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
10586
10587         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
10588         of using register multiplication cost.
10589         (expand_mult): Adapt choose_mult_variant call.
10590         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
10591         of MODE; pass appropriate cost bound.  Adjust result when
10592         performing signed multiplication by a negative constant.
10593         Don't use intermediate modes larger than word_mode.
10594
10595 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10596
10597         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
10598         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
10599         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
10600         * explow.c (expr_size): Likewise.
10601         * expr.h (placeholder_list, find_placeholder): Deleted.
10602         * expr.c (store_constructor): Likewise.
10603         (get_inner_reference): Likewise.  Also don't call find_placeholder.
10604         (placeholder_list, find_placeholder): Deleted.
10605         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
10606         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
10607         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
10608         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
10609         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
10610         Likewise.
10611         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
10612         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
10613         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
10614         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
10615         Clean up by using first_rtl_op.
10616         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
10617         (substitute_placeholder_in_expr): New function.
10618         * tree.def (WITH_RECORD_EXPR): Deleted.
10619         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
10620         (substitute_placeholder_in_expr): New.
10621
10622 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
10623
10624         * dojump.c (prefer_and_bit_test): Fix which part of
10625         the and_test is replaced.
10626
10627 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
10628
10629         * frontends.texi: Add missing line.
10630
10631 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
10632             Chris Devers  <cdevers@pobox.com>
10633             Joseph S. Myers  <jsm@polyomino.org.uk>
10634
10635         * doc/frontends.texi: Rewrite.
10636         * doc/gcc.texi: Update last modification date.
10637
10638 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
10639
10640         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
10641         message before redirecting the edge.
10642
10643 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10644
10645         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
10646         flag.
10647         * explow.c (force_not_mem): Set REG_POINTER flag according to
10648         MEM_POINTER one.
10649         * rtl.h (MEM_POINTER): New macro.
10650         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
10651         for MEM_POINTER.
10652
10653 2004-03-20  Roger Sayle  <roger@eyesopen.com>
10654
10655         PR target/13889
10656         * cse.c (fold_rtx): Avoid substituting constants into unary
10657         conversion operations.
10658
10659 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10660
10661         * fold-const.c (fold): Replace "expr" with "t".
10662
10663 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
10664
10665         PR c/12373
10666         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
10667         DECL_ORIGINAL_TYPE if there isn't one.
10668
10669 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10670
10671         * fold-const.c (fold): Replace "final_type" with "type".
10672         Remove variable "final_type".
10673
10674 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10675
10676         * fold-const.c (fold): Constify "type".
10677         Replace "TREE_TYPE (t)" with "type".
10678
10679 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10680
10681         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
10682         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
10683         via (*targetm.foo) () with targetm.foo ().
10684
10685 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
10686
10687         PR other/14630
10688         * doc/install.texi: Add info directory category and entry.
10689
10690 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10691
10692         * fold-const.c (fold): Replace "t" with "tem" where it is used
10693         as a temporary variable.  Remove "orig_t" and all of its uses.
10694
10695 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10696
10697         * fold-const.c (fold): Remove variable "invert".
10698         Move the handling of relational expressions that can be folded
10699         to a constant ...
10700         (fold_relational_const): ... here.
10701         (tree_expr_nonzero_p): New.
10702
10703 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
10704
10705         PR c/14635
10706         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
10707         DEF_GCC_BUILTIN.
10708
10709 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
10710
10711         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
10712         (GTFILES): Add $(srcdir)/dojump.h.
10713         (gt-dojump.h): New dependency.
10714         * dojump.c (and_reg, and_test, shift_test): New static variables.
10715         (prefer_and_bit_test): New function.
10716         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
10717
10718 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10719
10720         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
10721         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
10722         reorg.c, tree.h: Fix comment typos.
10723
10724 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
10725
10726         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
10727         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
10728         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
10729         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
10730         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
10731         vmsdbgout.c: Replace calls via (*targetm.foo) () with
10732         targetm.foo ().
10733
10734 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
10735
10736         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
10737         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
10738         always_inline attribute.
10739         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
10740         Treat expansion as completed even if literal argument is
10741         invalid (so that other expansions are not tried in vain).
10742
10743 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
10744
10745         * loop-doloop.c (add_test): Replace GEN_INT (0) with
10746         const0_rtx.
10747
10748 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
10749
10750         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
10751         ...
10752         (fold_abs_const): ... here.
10753
10754 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10755
10756         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
10757
10758 2004-03-19  Denis Chertykov  <denisc@overta.ru>
10759
10760         PR target/11520
10761         * config/avr/avr.md ("call_insn"): Handle explicit integer
10762         specially.
10763         (call_value_insn): Likewise.
10764
10765 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10766
10767         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
10768
10769 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
10770
10771         * fold-const.c (negate_expr): Move the handling of constants
10772         ...
10773         (fold_negate_const): ... here.
10774
10775 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10776
10777         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
10778         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
10779         * tree.c (debug_no_type_hash): Deleted.
10780         (type_hash_canon): Abort if passed a variant.
10781         Check lang_hooks.types.hash_types.
10782         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
10783         (build_array_type): Remove unnecessary allocation of pointer type.
10784         (build_complex_type): Properly qualify resulting type.
10785
10786 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
10787
10788         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
10789
10790 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
10791
10792         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
10793         (expand_mult): ...here.
10794         (extract_high_half): New, split out from expand_mult_highpart.
10795         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
10796         (expand_highpart): Evaluate the cost of a shift/add sequence,
10797         then see if any of the specialized optabs are cheaper.
10798
10799 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
10800
10801         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
10802
10803 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10804
10805         * convert.c (convert_to_real): Add more math builtins.
10806
10807 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10808
10809         * convert.c (convert_to_real): Reformat using switch stmt.
10810
10811 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
10812
10813         * c-common.c (pointer_int_sum): Do not complain about using
10814         pointers to pointers-to-members.
10815
10816 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
10817
10818         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
10819         have moved to the target hooks structure".
10820
10821 2004-03-18  James E Wilson  <wilson@specifixinc.com>
10822
10823         * config/mips/mips.md (type): Split move into arith and fmove.  Split
10824         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
10825         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
10826         Likewise.
10827         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
10828         Likewise.
10829         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
10830         rm7_fp_quick): Likewise.
10831         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
10832         rm9k_fquick): Likewise.
10833         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
10834         Likewise.
10835         (ir_sr70_icmp): Delete.
10836
10837 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10838
10839         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
10840         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
10841         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
10842         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
10843         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
10844         Protect with proper check.
10845         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
10846         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
10847         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
10848         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
10849         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
10850         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
10851         not TYPE_FIELDS.
10852         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
10853
10854 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
10855
10856         * gcse.c (eliminate_partially_redundant_loads): Reject change if
10857         dest is set between beginning and current insn.
10858
10859 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
10860
10861         * c-decl.c (grokdeclarator): Do not complain about redeclaring
10862         visible "static" identifiers "extern" in a local scope.
10863         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
10864         post-increments/decrements.
10865
10866 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
10867
10868         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
10869         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
10870         (xtensa_va_start): Remove assignment to current_function_arg_words.
10871
10872 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
10873
10874         * alias.c (record_set): Detect the case where a register is assigned
10875         a new value that has the same base term as the old one.
10876
10877 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10878
10879         * doloop.c: Removed.
10880         * loop-doloop.c: New file.
10881         * Makefile.in (doloop.o): Remove.
10882         (loop-doloop.o): New.
10883         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
10884         * cfgloopanal.c (get_loop_level): New function.
10885         * loop-iv.c (iv_number_of_iterations): Handle case when loop
10886         is leaved immediatelly.
10887         * loop.c (strength_reduce): Do not call doloop optimization.
10888         * loop.h (LOOP_BCT): Removed.
10889         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
10890         (rest_of_handle_loop2): Call doloop_optimize_loops.
10891         (rest_of_compilation): Test for optimizations moved to
10892         rest_of_handle_loop2.
10893
10894 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
10895
10896         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
10897         for mixed mode.
10898         (rs6000_emit_prologue): Ditto.
10899         (rs6000_emit_epilogue): Ditto.
10900         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
10901         macro for mixed mode.
10902
10903 2004-03-18  Jan Hubicka  <jh@suse.cz>
10904
10905         * predict.c (propagate_freq): Compute correctly frequency of
10906         EXIT_BLOCK.
10907
10908 2004-03-17  Eric Christopher  <echristo@redhat.com>
10909
10910         * builtins.c (apply_args_size): Use reg_raw_mode.
10911         (apply_result_size): Ditto.
10912
10913 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
10914
10915         PR target/14620
10916         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
10917
10918 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
10919
10920         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
10921         32-bit builds when defaulting to 32-bit.
10922
10923 2004-03-17  Jan Hubicka  <jh@suse.cz>
10924
10925         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
10926         array.
10927
10928 2004-03-17  James E Wilson  <wilson@specifixinc.com>
10929
10930         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
10931         (hazard_nop): Change type to nop.
10932         (type): Split arith into arith, shift, slt, clz.  Delete darith.
10933         Fix all uses.  Change arith to multi if more than one insn emitted.
10934         * config/mips/5400.md (ir_vr54_arith): Likewise.
10935         * config/mips/5500.md (ir_vr55_arith): Likewise.
10936         * config/mips/7000.md (rm7_int_other): Likewise.
10937         * config/mips/9000.md (rm9k_int): Likewise.
10938         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
10939
10940 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
10941
10942         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
10943         to hold the subtype tree instead of recomputing it several times.
10944
10945 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
10946
10947         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
10948         CC_INVERT.
10949         * config/mn10300/mn10300.md (cc): Remove "invert".
10950
10951 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10952
10953         * builtins.c (integer_valued_real_p): Add builtin rint.
10954         (fold_builtin): Likewise.
10955         * convert.c (convert_to_real): Likewise.
10956
10957         * convert.c (convert_to_real): Fix typos in `long double'
10958         builtins.
10959
10960 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
10961
10962         PR c++/14481
10963         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
10964         generated COMPOUND_EXPRs.
10965
10966 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
10967
10968         * config/h8300/t-rtems (h8300-*-rtems*): New.
10969
10970 2004-03-16  Eric Christopher  <echristo@redhat.com>
10971
10972         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
10973
10974 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
10975
10976         * config/i386/i386-protos.h: Add a prototype for
10977         ix86_reverse_condition.
10978         * config/i386/i386.c (ix86_reverse_condition): New.
10979         * config/i386/i386.h (REVERSE_CONDITION): Use
10980         ix86_reverse_condition.
10981         * config/i386/i386.md: Use ix86_reverse_condition instead of
10982         REVERSE_CONDITION.
10983
10984 2004-03-16  J. Brobecker  <brobecker@gnat.com>
10985
10986         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
10987
10988 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
10989
10990         PR bootstrap/12974
10991         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
10992
10993 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
10994
10995         * c-common.c (c_common_type_for_mode): Build vector types on
10996         demand.
10997         (handle_mode_attribute): Deprecate using the mode attribute
10998         to create vector types.  Fix indentation.
10999         (vector_type_node_list): Remove.
11000         (handle_vector_size_attribute): Create vector types on demand.
11001         Strip a NON_LVALUE_EXPR from the attribute if there is one.
11002         * c-typeck.c (comptypes): Make vector types compatible if they
11003         have the same underlying mode.
11004         (convert_for_assignment): Use comptypes to convert between
11005         vector types.
11006         * tree.c (build_common_tree_nodes_2): Do not create vector types.
11007         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
11008         vector types.
11009         * tree.h: Remove vector types.
11010         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
11011         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
11012         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
11013         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
11014         * doc/extend.texi (Vector Types): Document how to use the
11015         vector_size attribute to create vectors, rather than mode.
11016
11017         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
11018         * config/i386/emmintrin.h: Likewise.
11019         * config/i386/mmintrin.h: Likewise.
11020         * config/i386/xmmintrin.h: Likewise.
11021         * config/sh/ushmedia.h: Likewise.
11022
11023 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
11024
11025         * config/freebsd-spec.h, config/arc/arc-protos.h,
11026         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
11027         config/arm/linux-gas.h, config/arm/semi.h,
11028         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
11029         config/ia64/freebsd.h, config/mips/7000.md,
11030         config/mips/9000.md, config/ns32k/ns32k-protos.h,
11031         config/sparc/pbd.h: Update copyright.
11032
11033 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
11034
11035         PR target/14577
11036         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
11037
11038 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
11039
11040         * combine.c (combine_simplify_rtx): Remove the "last"
11041         parameter and its documentation.  Adjust recursive calls.
11042         (simplify_logical): Always perform the only simplification
11043         controlled by "last", if the simplified expression is
11044         actually different.
11045         (try_combine): Do not pass the "last" parameter to
11046         combine_simplify_rtx.
11047
11048 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
11049
11050         PR target/14599
11051         * config/mips/mips.md (UNSPEC_GP): New constant.
11052         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
11053         an UNSPEC instead of (reg $gp).
11054         (mips16_gp_pseudo_reg): Change accordingly.
11055         (print_operand): Print $gp directly when handling CONST_GP_P.
11056
11057 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
11058
11059         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
11060         * longlong.h: Make code 68060 clean when compiling for m68060.
11061
11062 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
11063
11064         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
11065         * doc/md.texi: Clarify description of "i" constraint.
11066
11067 2004-03-15  James E Wilson  <wilson@specifixinc.com>
11068
11069         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
11070         Split store into store, fpstore, fpidxstore.  Fix all uses.
11071         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
11072         Likewise.
11073         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
11074         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
11075         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
11076         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
11077         ir_sr70_fstore): Likewise.
11078
11079 2004-03-15  Richard Henderson  <rth@redhat.com>
11080
11081         PR middle-end/14535
11082         * except.c (collect_one_action_chain): Record action for cleanup
11083         outer of exception spec.
11084
11085 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
11086
11087         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
11088         Fix the check for abort and only do the mmap if we can.
11089
11090 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
11091
11092         * config/sparc/sparc.h: Rework comments about the code model
11093         in 64-bit environment and the mode 'Pmode'.
11094         * doc/invoke.texi (SPARC options): Rework description of the
11095         different code models supported in 64-bit environment.
11096
11097 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
11098
11099         * defaults.h (REVERSIBLE_CC_MODE): Define.
11100         * jump.c (reversed_comparison_code_parts): Don't check if
11101         REVERSIBLE_CC_MODE is defined.
11102
11103 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
11104
11105         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
11106         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
11107         hosthooks.h, params.h, ra-colorize.c, web.c,
11108         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
11109         config/avr/avr-protos.h, config/avr/avr.md,
11110         config/fr30/fr30-protos.h, config/fr30/fr30.md,
11111         config/h8300/fixunssfsi.c, config/i386/darwin.h,
11112         config/i386/freebsd.h, config/i386/freebsd64.h,
11113         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
11114         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
11115         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
11116         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
11117         config/pa/pa64-regs.h, config/rs6000/aix41.h,
11118         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
11119         config/sparc/aout.h, config/sparc/freebsd.h,
11120         config/sparc/litecoff.h, config/vax/vax-protos.h,
11121         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
11122         copyright.
11123
11124 2004-03-15  Paul Brook  <paul@codesourcery.com>
11125
11126         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
11127
11128 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
11129
11130         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
11131         (pp_c_cv_qualifier): Document.
11132         (pp_c_space_for_pointer_operator): Likewise.
11133         (pp_c_integer_constant): Likewise.
11134         (pp_c_identifier): Likewise.
11135         (pp_c_init_declarator): Don't print function body.
11136
11137 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
11138
11139         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
11140         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
11141         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
11142         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
11143         wording and grammar.
11144
11145 2004-03-14  Roger Sayle  <roger@eyesopen.com>
11146
11147         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
11148         with lang_hooks.foo ().
11149         * builtins.c (expand_builtin_va_arg): Likewise.
11150         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
11151         c_common_type_for_mode, c_common_nodes_and_builtins,
11152         handle_mode_attribute, handle_vector_size_attribute): Likewise.
11153         * c-convert.c (convert): Likewise.
11154         * c-format.c (check_format_types): Likewise.
11155         * c-objc-common.c (c_tree_printer): Likewise.
11156         * c-typeck.c (build_unary_op, build_conditional_expr,
11157         build_binary_op): Likewise.
11158         * calls.c (try_to_integrate, expand_call,
11159         emit_library_call_value_1): Likewise.
11160         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
11161         Likewise.
11162         * cgraphunit.c (record_call_1, cgraph_analyze_function,
11163         cgraph_expand_function): Likewise.
11164         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
11165         * coverage.c (build_fn_info_type, build_ctr_info_type,
11166         build_gcov_info, create_coverage): Likewise.
11167         * dbxout.c (dbxout_init): Likewise.
11168         * diagnostic.c (diagnostic_report_current_function): Likewise.
11169         * dojump.c (do_jump): Likewise.
11170         * dwarf2out.c (dwarf2_name): Likewise.
11171         * except.c (init_eh): Likewise.
11172         * explow.c (expr_size, int_expr_size): Likewise.
11173         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
11174         Likewise.
11175         * expr.c (store_expr, store_constructor, safe_from_p,
11176         expand_expr_real, do_store_flag, try_casesi): Likewise.
11177         * function.c (push_function_context_to, pop_function_context_from,
11178         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
11179         put_var_into_stack, allocate_struct_function, current_function_name):
11180         Likewise.
11181         * integrate.c (copy_decl_for_inlining, expand_inline_function):
11182         Likewise.
11183         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
11184         lhd_print_error_function): Likewise.
11185         * opts.c (handle_option, decode_options): Likewise.
11186         * passes.c (open_dump_file): Likewise.
11187         * print-tree.c (print_node): Likewise.
11188         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
11189         expand_decl_cleanup, emit_case_nodes): Likewise.
11190         * stor-layout.c (variable_size): Likewise.
11191         * toplev.c (announce_function, wrapup_global_declarations,
11192         check_global_declarations, compile_file, default_tree_printer,
11193         process_options, lang_dependent_init, finalize): Likewise.
11194         * tree-dump.c (dequeue_and_dump): Likewise.
11195         * tree-inline.c (remap_decl, remap_block, copy_body_r,
11196         initialize_inlined_parameters, declare_return_variable,
11197         inlinable_function_p, expand_call_inline, optimize_inline_calls,
11198         walk_tree, copy_tree_r): Likewise.
11199         * tree-optimize.c (tree_rest_of_compilation): Likewise.
11200         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
11201         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
11202         variably_modified_type_p, dump_tree_statistics): Likewise.
11203         * varasm.c (assemble_variable, compare_constant, copy_constant,
11204         force_const_mem, compute_reloc_for_constant, output_constant,
11205         output_addressed_constants, initializer_constant_valid_p): Likewise.
11206
11207 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
11208
11209         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
11210
11211 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
11212
11213         * doc/install.texi: Reflect autoconf and automake version for
11214         libffi. Update autoconf version to 2.59.
11215
11216 2004-03-13  Roger Sayle  <roger@eyesopen.com>
11217
11218         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
11219         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
11220         make_range, build_range_check, fold_range_test, unextend,
11221         constant_boolean_node, fold_binary_op_with_conditional_arg,
11222         fold_truthop, fold_mathfn_compare, fold_inf_compare,
11223         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
11224         with lang_hooks.foo ().
11225
11226 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
11227
11228         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
11229
11230 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
11231
11232         * doc/install.texi: Note status of -fnew-ra.
11233
11234 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
11235
11236         PR middle-end/14470
11237         * expr.c (store_expr): Call emit_queue before generating the move
11238         from the temporary to the original target.  Protect the temporary
11239         from emit_queue.
11240
11241 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
11242
11243         PR target/14533
11244         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
11245         other than UNSPEC_GOTOFF.
11246
11247 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
11248
11249         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
11250         to arm_legitimate_index_p.  Update all callers with SET as default
11251         value.
11252         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
11253         range if OUTER is a sign-extend operation on QImode.  Correctly
11254         reject shift operations on sign-extended QImode addresses.
11255         (bad_signed_byte_operand): Delete.
11256         (arm_extendqisi_mem_op): New function.
11257         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
11258         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
11259         constraints.
11260         (CONSTRAINT_LEN): New.
11261         (EXTRA_CONSTRAINT): Delete.  Replace with...
11262         (EXTRA_CONSTRAINT_STR): ... this.
11263         (PREDICATE_CODES): Remove bad_signed_byte_operand.
11264         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
11265         is now always default.
11266         (define_splits for bad sign-extend loads): Delete.
11267         (arm_extendqisi, arm_extendqisi_v5): Likewise.
11268         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
11269         Rework 'U' constraint to 'Uv'.
11270         * arm-protos.h: Remove bad_signed_byte_operand.  Add
11271         arm_extendqisi_mem_op.
11272         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
11273         Add Uq constraint.
11274
11275 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
11276
11277         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
11278         with targetm version.
11279
11280         PR target/14567
11281         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
11282         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
11283         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
11284         Update all users of RS6000_ARG_SIZE.
11285         (function_arg_advance): Count fregno using mode size.
11286         (function_arg): Handle long double split over regs and memory.
11287         (function_arg_partial_nregs): Likewise.
11288         (rs6000_va_arg): Repackage complex args.
11289
11290 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
11291
11292         PR target/14047
11293         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
11294         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
11295         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
11296
11297 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
11298
11299         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
11300         prototype.
11301         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
11302         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
11303
11304 2004-03-12  Andrew Pinski  <apinski@apple.com>
11305
11306         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
11307         Use ret instead of result. Use addr instead of base.
11308
11309 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
11310
11311         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
11312         fixes required by libstdc++ and update installation instructions
11313         for libstdc++.a.
11314
11315 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
11316
11317         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
11318         leading '@' on fastcall symbols before stripping suffix.
11319
11320 2004-03-12  Roger Sayle  <roger@eyesopen.com>
11321
11322         * combine.c (unmentioned_reg_p): New function to check whether an
11323         expression is a "specialization" of another, i.e. that there are
11324         no registers or memory references mentioned in the first that don't
11325         appear in the second.
11326         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
11327         (combine_instructions): Also try combining instructions using the
11328         REG_EQUAL note from a preceding log-linked instruction.
11329
11330 2004-03-12  Roger Sayle  <roger@eyesopen.com>
11331
11332         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
11333
11334 2004-03-12  Matt Austern  <austern@apple.com>
11335
11336         * target.h (struct gcc_target): New target hook, unwind_label.
11337         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
11338         * output.h (default_emit_unwind_label): New function.
11339         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
11340         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
11341         (TARGET_SUPPORTS_HIDDEN): New target macro.
11342         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
11343         that corresponds to this FDE.
11344         (FRAME_BEGIN_LABEL): Allow target to override default label.
11345         (output_call_frame_info): If FDEs are linknonce, then use extra
11346         indirection for FDE encoding, output a label for each FDE, and
11347         output an empty label for each function without an FDE.
11348         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
11349         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
11350         decls with DECL_ONE_ONLY set, if that macro is defined.
11351         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
11352         for a SUPPORTS_ONE_ONLY target.
11353         * config/darwin-protos.h (darwin_unique_section): Declare.
11354         (darwin_asm_named_section): Likewise.
11355         (darwin_section_type_flags): Likewise.
11356         (darwin_non_lazy_pcrel): Likewise.
11357         (darwin_emit_unwind_label): Likewise.
11358         (darwin_make_decl_one_only): Likewise.
11359         * config/darwin.c (machopic_finish): Get rid of tweak that
11360         eliminate stubs for symbols that are defined.
11361         (darwin_encode_section_info): Don't treat weak functions as defined.
11362         (darwin_make_decl_one_only): Define.
11363         (darwin_asm_named_section): Likewise.
11364         (darwin_section_type_flags): Likewise.
11365         (darwin_unique_section): Likewise.
11366         (darwin_emit_unwind_label): Likewise.
11367         (darwin_non_lazy_pcrel): Likewise.
11368         (darwin_asm_output_dwarf_delta): Difference between two labels is
11369         local only if both labels are local.
11370         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
11371         (ASM_MAKE_LABEL_LINKONCE): Likewise.
11372         (TARGET_SUPPORTS_HIDDEN): Likewise.
11373         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
11374         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
11375         (FRAME_BEGIN_LABEL): Likewise.
11376         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
11377         (ASM_DECLARE_FUNCTION_NAME): Likewise.
11378         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
11379         (TARGET_ASM_UNIQUE_SECTION): Define.
11380         (EH_FRAME_SECTION_NAME): Define.
11381         (EH_FRAME_SECTION_ATTR): Likewise.
11382         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
11383         (TARGET_ASM_NAMED_SECTION): Likewise.
11384         (TARGET_SECTION_TYPE_FLAGS): Likewise.
11385         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
11386         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
11387         TARGET_ASM_EMIT_UNWIND_LABEL.
11388
11389 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11390
11391         * builtins.c (expand_builtin_mathfn): Add pow10* to the
11392         existing exp10* case.
11393         (expand_builtin): Likewise.
11394
11395 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
11396
11397         * doc/tm.texi (registers) <Values in Registers>: Add
11398         entry for REGMODE_NATURAL_SIZE.
11399
11400 2004-03-12  Richard Henderson  <rth@redhat.com>
11401
11402         PR target/14547
11403         * target.h (struct gcc_target): Move calls substructure before
11404         booleans.  Add split_complex_arg.
11405         * function.c (assign_parms, split_complex_args): Use it.
11406         * calls.c (expand_call): Likewise.
11407         (split_complex_values): Likewise.  Check for splittable types
11408         before allocating memory.
11409         (split_complex_types): Likewise.
11410         * system.h (SPLIT_COMPLEX_ARGS): Poison.
11411         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
11412         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
11413         * config/alpha/alpha.c (alpha_split_complex_arg): New.
11414         (TARGET_SPLIT_COMPLEX_ARG): New.
11415         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
11416         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
11417         (rs6000_override_options): Zap it for non-AIX.
11418         (rs6000_function_value): Use targetm.calls.split_complex_arg.
11419         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
11420         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
11421         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
11422         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
11423         SPLIT_COMPLEX_ARGS entry.
11424
11425 2004-03-11  Richard Henderson  <rth@redhat.com>
11426
11427         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
11428         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
11429         (alpha_emit_xfloating_arith): Update to match.
11430         (alpha_emit_xfloating_compare): Likewise.
11431         (alpha_emit_xfloating_cvt): Likewise.
11432         (alpha_emit_xfloating_libcall): Take already built symbol,
11433         mark call const.
11434         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
11435         op1 in a register.
11436
11437 2004-03-11  Richard Henderson  <rth@redhat.com>
11438
11439         PR target/14539
11440         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
11441
11442         * simplify-rtx.c (simplify_relational_operation): Fix typo.
11443
11444 2004-03-11  Richard Henderson  <rth@redhat.com>
11445
11446         PR middle-end/14477
11447         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
11448
11449 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
11450
11451         PR target/14262
11452         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
11453         defined, pass small BLKmode values in registers in the low-order part.
11454
11455 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
11456
11457         * combine.c (if_then_else_cond): Check for NULL return value of
11458         simplify_gen_subreg.
11459
11460 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
11461
11462         PR target/14496
11463         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
11464         TARGET_SINGLE_FLOAT.
11465
11466 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
11467
11468         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
11469         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
11470         * config/ia64/ia64.c (ia64_init_libfuncs): New.
11471         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
11472
11473 2004-03-11  Roger Sayle  <roger@eyesopen.com>
11474
11475         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
11476         -((int)X>>C) where C is an integer constant one bit less than the
11477         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
11478         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
11479
11480         * simplify-rtx.c (simplify_unary_operation): Also implement the
11481         above transformations at the RTL level.
11482
11483 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
11484
11485         * real.c (encode_ibm_extended): Do round low word.
11486
11487 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
11488
11489         * config/arm/arm.md (is_xscale): Comment this attribute and move
11490         it a bit further up in the file, closer to related attributes.
11491
11492 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
11493
11494         * config/host-solaris.c (sol_gt_pch_use_address): Add
11495         missing terminating marker to comment.
11496
11497 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
11498
11499         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
11500         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
11501         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
11502         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
11503         move_operand as source predicate in all cases.
11504         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
11505         Test reg_or_0_operand.  Use move_operand as source predicate.
11506         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
11507         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
11508         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
11509         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
11510         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
11511         Use move_operand as source predicate.  Remove 'K' constraint.
11512         (*movqi_internal): Likewise movqi_internal.
11513         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
11514         reg_or_0_operand.  Use move_operand as source predicate.
11515         (*movsf_softfloat): Likewise movsf_internal2.
11516         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
11517         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
11518         (*movdf_softfloat): Likewise movdf_internal2.
11519         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
11520         for DImode if !TARGET_64BIT.
11521         (mips_legitimize_move): Simplify accordingly.
11522
11523 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
11524
11525         PR/14362
11526         * var-tracking.c (struct variable_def): Added field refcount.
11527         (variable_htab_free): Decrease the refcount and delete variable
11528         only if there are no more references.
11529         (unshare_variable): New function.
11530         (vars_copy_1): Increase refcount instead of copying the variable.
11531         (variable_union): Share the variables where possible, unshare
11532         the variables if needed.
11533         (variable_different_p): Return false if var1 and var2 are
11534         the same structure.
11535         (variable_was_changed): Init the refcount of new variable.
11536         (set_frame_base_location): Unshare variable if needed.
11537         (set_variable_part): Init the refcount of new variable.
11538         Unshare the variables if needed.
11539         (delete_variable_part): Unshare the variables if needed.
11540         (emit_notes_for_differences_1): Init the refcount of new variable.
11541         (vt_add_function_parameters): Do not add function parameters to
11542         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
11543         (vt_initialize): Do not add frame_base_decl to IN set of
11544         ENTRY_BLOCK_PTR because it is unused anyway.
11545
11546 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
11547
11548         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
11549         (vars_copy): Likewise.
11550         (variable_union): Likewise.
11551         (set_variable_part): Likewise.
11552         (delete_variable_part): Likewise.
11553
11554 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
11555
11556         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
11557         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
11558         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
11559         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
11560         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
11561         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
11562         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
11563         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
11564         config/stormy16/stormy16.c: Fix comment typos and formatting.
11565
11566 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
11567
11568         * configure: Regenerate, since I forgot to while committing Paolo's
11569         changes.
11570
11571 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
11572
11573         PR ada/14131
11574         Move language detection to the top level.
11575         * configure.ac: Remove code to detect languages,
11576         it now lives exclusively in the top level.
11577         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
11578         top level, renamed to ACX_PROG_GNAT.
11579
11580 2004-03-10  Richard Henderson  <rth@redhat.com>
11581
11582         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
11583         extra arguments.
11584         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
11585         and host_xmake_file fragments.
11586         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
11587         (gt_pch_restore): Similarly for gt_pch_use_address.
11588         (default_gt_pch_get_address): New.
11589         (mmap_gt_pch_get_address): Split out of gt_pch_save.
11590         (default_gt_pch_use_address): Split out of gt_pch_restore.
11591         (mmap_gt_pch_use_address): Likewise.
11592         * hooks.c (hook_voidp_size_t_null): Remove.
11593         (hook_bool_voidp_size_t_false): Remove.
11594         * hooks.h: Likewise.
11595         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
11596         default_ or mmap_ definitions.
11597         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
11598         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
11599         and gt_pch_use_address.
11600         * config/host-linux.c, config/host-solaris.c: New files.
11601         * config/x-linux, config/x-solaris: New files.
11602         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
11603         Update for changed definition.
11604         (darwin_rs6000_gt_pch_use_address): Likewise.
11605         * doc/hostconfig.texi: Update docs.
11606
11607 2004-03-10  Richard Henderson  <rth@redhat.com>
11608
11609         PR c/14517
11610         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
11611         except for pedantic c90 mode.
11612
11613 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
11614
11615         * configure.ac: Bump AC_PREREQ to 2.59.
11616         * configure: Regenerate.
11617
11618 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
11619
11620         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
11621         (exp10_optab, exp2_optab): Define corresponding macros.
11622         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
11623         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
11624         using exp10?f2 and exp2?f2 patterns.
11625         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
11626         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
11627         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
11628         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
11629
11630         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
11631         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
11632         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
11633
11634 2004-03-10  Anthony Green  <green@redhat.com>
11635
11636         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
11637
11638 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
11639
11640         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
11641         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
11642         __LONGDOUBLE128.
11643         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
11644         TARGET_OS_AIX_CPP_BUILTINS.
11645         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
11646         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
11647         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
11648         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
11649         previous change.
11650
11651 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11652
11653         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
11654
11655 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
11656
11657         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
11658         __LONGDOUBLE128 on AIX.
11659
11660 2004-03-10  Andrew Haley  <aph@redhat.com>
11661
11662         PR optimization/14381
11663         * function.c (expand_function_end): Emit a blockage insn before
11664         the epilogue when -fnon-call-exceptions is used.
11665
11666         * except.c (expand_start_all_catch): Make comment more accurate.
11667
11668 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
11669
11670         PR target/14480
11671         * config/rs6000/t-rtems: Add missing file on branch.
11672
11673 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
11674
11675         * dbxout.c (dbxout_symbol_location): Do not output references
11676         to optimized-out constant pool symbols.
11677
11678 2004-03-10  Andreas Schwab  <schwab@suse.de>
11679
11680         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
11681         twon34_r.
11682
11683 2004-03-09  James E Wilson  <wilson@specifixinc.com>
11684
11685         * alias.c (alias_sets_might_conflict_p): New.
11686         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
11687         * common.opt (Wstrict-aliasing=): New.
11688         * flags.h (warn_strict_aliasing): Change type to int.
11689         * opts.c (warn_strict_aliasing): Change type to int.
11690         (common_handle_option): Handle OPT_Wstrict_aliasing_.
11691         * tree.h (alias_sets_might_conflict_p): Declare it.
11692         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
11693
11694 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
11695
11696         PR bootstrap/12371
11697         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
11698         (CALL_USED_REGISTERS): Likewise.
11699         (REG_CLASS_CONTENTS): Likewise.
11700         (REG_ALLOC_ORDER): New.
11701         (REGNO_REG_CLASS): Use regno_reg_class.
11702         * config/m68k/m68k.c: Add regno_reg_class array.
11703
11704 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
11705
11706         * config/ia64/ia64.md (divsi3): Fix algorithm.
11707           (udivsi3): Ditto.
11708           (setf_exp_xf): Remove '*' from name.
11709         * testsuite/gcc.dg/20040309-1.c: New test.
11710
11711 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
11712
11713         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
11714         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
11715         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
11716         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
11717         (sparc_aout_select_rtx_section): Don't check
11718         SUNOS4_SHARED_LIBRARIES.
11719         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
11720
11721 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
11722
11723         PR other/14474
11724         * doc/md.texi (Pattern Ordering, Dependent Patterns)
11725         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
11726         INTERNALS".
11727
11728 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
11729
11730         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
11731         (LIBGCC_SPEC): Update to match.
11732
11733 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
11734
11735         * c-decl.c (last_function_parms, last_function_parm_tags)
11736         (last_function_parm_others, current_function_parms)
11737         (current_function_parm_tags, current_function_parm_others):
11738         Delete.
11739         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
11740         New macros.
11741         (grokdeclarator): For function definitions, save the arg-info
11742         block from the declarator in DECL_ARGUMENTS.
11743         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
11744         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
11745         contains only PARM_DECLs.  Improve diagnostics.
11746         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
11747         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
11748         (store_parm_decls_newstyle): Take the function to operate on,
11749         and an arg-info block, as arguments; don't get anything from
11750         current_function_* globals.
11751         (store_parm_decls_oldstyle): Likewise.
11752         (store_parm_decls): Pass fndecl and its arg-info block down to
11753         store_parm_decls_newstyle/oldstyle.  Send functions with empty
11754         argument lists through store_parm_decls_newstyle to reduce
11755         overhead.
11756         (pushdecl): Comment on the problems with the call to copy_node.
11757         Clear DECL_ARGUMENTS of the old node after copying it, if it
11758         is an arg-info block instead of a chain of decls.
11759         (start_function): Do not manipulate current_function_parm* or
11760         last_function_parm*.
11761
11762 2004-03-09  Roger Sayle  <roger@eyesopen.com>
11763             Andrew Pinski  <pinskia@physics.uc.edu>
11764
11765         * ifcvt.c (noce_try_sign_mask): New function to transform
11766         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
11767         (noce_process_if_block): Call noce_try_sign_mask.
11768
11769 2004-03-09  Andrew Pinski  <apinski@apple.com>
11770
11771         * c-typeck.c (tagged_types_tu_compatible_p):
11772         Fix typo.
11773
11774 2004-03-09  Roger Sayle  <roger@eyesopen.com>
11775
11776         * simplify-rtx.c (simplify_const_relational_operation): New function
11777         renamed from simplify_relational_operation.
11778         (simplify_relational_operation): Change prototype to accept an
11779         additional mode argument.  Call simplify_const_relational_operation.
11780         (simplify_gen_relational): Update simplify_relational_operation call.
11781         (simplify_ternary_operation): Update simplify_relational_operation
11782         subroutine call to use simplify_const_relational_operation instead.
11783
11784         * rtl.h (simplify_const_relational_operation): Prototype here.
11785         (simplify_relational_operation): Add addtional mode argument.
11786
11787         * combine.c (combine_simplify_rtx): Update calls to
11788         simplify_relational_operation.
11789         (simplify_set): Likewise.
11790         (gen_binary): Likewise.
11791         * cse.c (fold_rtx): Likewise.
11792         * dojump.c (compare_from_rtx): Likewise.
11793         (do_compare_rtx_and_jump): Likewise.
11794         * integrate.c (subst_constants): Likewise.
11795         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
11796
11797 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
11798
11799         * config/m32r/m32r.md: Remove all define_peephole's.
11800
11801 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
11802
11803         * config/rs6000/rs6000.md: Remove trailing whitespace.
11804
11805 2004-03-08  Eric Christopher  <echristo@redhat.com>
11806
11807         * Makefile.in (site.exp): Add libiconv variable definition.
11808
11809 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
11810
11811         * configure: Regenerate for config/accross.m4 correction.
11812
11813 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
11814
11815         PR target/14480
11816         * config/rs6000/t-rtems: Add missing file on branch.
11817
11818 2004-03-08  Roger Sayle  <roger@eyesopen.com>
11819
11820         PR middle-end/14289
11821         * c-typeck.c (c_mark_addressable): A register variable should
11822         be considered global if its not automatic, i.e. TREE_PUBLIC,
11823         TREE_STATIC or DECL_EXTERNAL.
11824         * function.c (put_var_into_stack): Call abort when placing a
11825         hard register into the stack, if x_parm_reg_stack_loc is NULL.
11826
11827 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
11828
11829         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
11830         ("*extendqisi2_short_displ"): Likewise.
11831
11832 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
11833
11834         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
11835         (comp_operator): Likewise.
11836         * config/pdp11/pdp11-protos.h: Remove corresponding
11837         prototypes.
11838
11839 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
11840
11841         * expr.c (highest_pow2_factor_for_type): Rename into
11842         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
11843         TYPE_ALIGN when the target is a COMPONENT_REF.
11844         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
11845
11846 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
11847
11848         * config/rs6000/rs6000.c: Formatting fix.
11849         (legitimate_offset_address_p): Correct offset range check.
11850
11851         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
11852         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
11853         and MASK_STRING.
11854
11855 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
11856
11857         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
11858         for little endian.
11859         ("ashrdi3_no_power"): Disable for little endian.
11860         (ashrdi3): Same.
11861
11862 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11863
11864         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
11865         builtins.
11866
11867 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
11868
11869         PR target/14471
11870         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
11871         case, checking for -no-mul-bug-abort option.
11872         * configure, config.in: Regenerate.
11873         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
11874         and -mno-mul-bug-workaround.
11875         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
11876         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
11877         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
11878         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
11879         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
11880         sure mulu.d is not last on cache-line.
11881         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
11882         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
11883         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
11884         (TARGET_SWITCHES): New options -mmul-bug-workaround and
11885         -mno-mul-bug-workaround.
11886         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
11887         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
11888         * config/cris/cris.c (cris_operand_extend_operator): Clarify
11889         relation to MULT in head comment.
11890         (cris_op_str): Abort for MULT.
11891         (cris_print_operand) <case '!'>: New case.
11892
11893 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
11894
11895         PR debug/11983
11896         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
11897         dw_val_class_vec.  Replace use throughout file.
11898         (dw_float_const): Delete.
11899         (dw_vec_const): New.
11900         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
11901         throughout file.
11902         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
11903         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
11904         (size_of_die): Adjust dw_val_class_vec sizing.
11905         (output_die): Output dw_val_class_vec.
11906         (insert_int, extract_int, insert_float): New functions.
11907         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
11908         Handle CONST_VECTOR.
11909         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
11910
11911 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
11912
11913         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
11914         AltiVec abi cannot co-exist.
11915
11916         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
11917
11918 2004-03-07  Jan Hubicka  <jh@suse.cz>
11919
11920         * except.c (emit_to_new_bb_before):  Break fallthru edges.
11921
11922 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
11923
11924         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
11925         ("*lshrsi3"): Also accept an immediate for 68HC12.
11926         ("*ashrsi3_const"): Likewise.
11927         ("*ashrsi3"): Likewise.
11928         ("*ashlsi3_const"): Likewise.
11929         ("*ashlsi3"): Likewise.
11930         ("cmphi_1_hc12"): Compare two hard register by pushing them and
11931         comparing with a pop; don't use a split for that.
11932         ("cmphi split"): Disable compare split for 68HC12.
11933
11934         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
11935         the status operands if they have side effects.
11936
11937 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
11938
11939         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
11940         definition.
11941         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
11942         config/h8300/h8300.h, config/ia64/ia64.h,
11943         config/mcore/mcore.h, config/mmix/mmix.h,
11944         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
11945         config/stormy16/stormy16.h, config/v850/v850.h,
11946         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
11947         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
11948         definition.
11949
11950 2004-03-07  Roger Sayle  <roger@eyesopen.com>
11951
11952         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
11953         <XOR_EXPR>: Fold x ^ x as zero.
11954         <AND_EXPR>: Fold x & x as x.
11955
11956 2004-03-07  Roger Sayle  <roger@eyesopen.com>
11957
11958         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
11959         "foo++ == const" into "++foo == const+incr".
11960
11961 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
11962
11963         * config/mips/mips.c (mips_in_small_data_p): Return false if
11964         TARGET_ABICALLS.
11965
11966 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
11967
11968         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
11969         the stack register.
11970         (expand_prologue): Don't make an interrupt or a trap handler a far
11971         symbol.
11972         (m68hc11_initial_elimination_offset): Likewise.
11973
11974 2004-03-06  Richard Henderson  <rth@redhat.com>
11975
11976         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
11977
11978 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
11979
11980         * config/ns32k/ns32k-protos.h: Add a prototype for
11981         ns32k_notice_update_cc.
11982         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
11983         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
11984         ns32k_notice_update_cc.
11985
11986 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
11987
11988         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
11989         "*load_multiple_si"): Allow only if reload_completed.
11990         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
11991         Likewise.
11992
11993 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
11994
11995         * config/vax/vax-protos.h: Add a prototype for
11996         vax_notice_update_cc.
11997         * config/vax/vax.c (vax_notice_update_cc): New.
11998         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
11999         vax_notice_update_cc.
12000
12001 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
12002
12003         * collect2.c (main): Only export initfunc and finifunc if
12004         LD_INIT_SWITCH not defined.
12005         (scan_prog_file): Only export constructors and destructors if
12006         LD_INIT_SWITCH not defined.  Only export symbols not found in
12007         shared objects.
12008
12009 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12010
12011         * pa.md (icacheflush): Reorder operands to make match_scratch operand
12012         last.
12013         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
12014         from calls to gen_icacheflush.
12015
12016 2004-03-06  Richard Henderson  <rth@redhat.com>
12017
12018         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
12019         (TARGET_LONG_DOUBLE_128): New.
12020         (TARGET_SWITCHES): Add long-double-{128,64}.
12021         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
12022         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
12023         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
12024         (WIDEST_HARDWARE_FP_SIZE): New.
12025         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
12026         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
12027         if TARGET_VAX_FLOAT.
12028         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
12029         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
12030
12031 2004-03-06  Richard Henderson  <rth@redhat.com>
12032
12033         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
12034         botched rtx class conversion.
12035
12036 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12037
12038         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
12039         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
12040
12041         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
12042         macros.
12043         * fold-const.c (fold_mathfn_compare, fold): Likewise.
12044
12045 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
12046
12047         PR target/14343
12048         * config/i386/i386.md (movv2di_internal): Conditionalize on
12049         TARGET_SSE, not TARGET_SSE2.
12050
12051 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
12052
12053         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
12054         duplicated line.
12055
12056 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12057
12058         * builtins.c: Consistently use logN not log* in comments.
12059
12060 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
12061
12062         * rtl.h (mem_expr_equal_p): Function prototype added.
12063         * cfgcleanup.c (merge_memattrs): New function.
12064         (flow_find_cross_jump): Call merge_memattrs for matching insns.
12065         * emit-rtl.c (mem_expr_equal_p): New function.
12066
12067 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
12068
12069         * objc/objc-act.c (synth_module_prologue): Const-qualify
12070         objc_selector type if using the GNU runtime; fix generated
12071         signatures for objc_msg_lookup and objc_msg_lookup_super
12072         to match what GNU ObjC headers provide; reformat and clean up.
12073         (synth_self_and_ucmd_args): Use previously constructed (and
12074         hence possibly const-qualified) objc_selector type.
12075
12076 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
12077
12078         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
12079
12080 2004-03-05  Jason Merrill  <jason@redhat.com>
12081
12082         * tree.h (TYPE_HASH): Use TYPE_UID.
12083         (TREE_HASH): New macro with old definition of TYPE_HASH.
12084         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
12085         (build_array_type, build_function_type): Likewise.
12086         (build_method_type_directly): Likewise.
12087         (build_offset_type, build_complex_type): Likewise.
12088         (type_hash_list, attribute_hash_list): Likewise. Now static.
12089         * except.c: s/TYPE_HASH/TREE_HASH/.
12090
12091 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
12092
12093         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
12094         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
12095         __va_ndx by 2 words when referencing an argument on the stack.
12096         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
12097         words when an arg on the stack is first seen.
12098
12099 2004-03-05  Paul Brook  <paul@codesourcery.com>
12100
12101         * arm.h (ARM_FLAG_VFP): Remove.
12102         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
12103         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
12104
12105 2004-03-05  Paul Brook  <paul@codesourcery.com>
12106
12107         * function.c (assign_parms): Include pretend alignment offset.
12108
12109 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12110
12111         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
12112         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
12113
12114 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
12115
12116         * configure.ac: When passing --enable-languages to subdir
12117         configure when host != build, make sure we don't pass an empty
12118         value.
12119         * configure: Regenerate.
12120
12121 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
12122
12123         PR 13577
12124         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
12125         options.
12126
12127 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
12128
12129         * simplify-rtx.c (simplify_relational_operation): If
12130         flag_wrapv is set, do not move terms between the two
12131         side of a relational operator.
12132
12133 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
12134
12135         * rtlanal.c: Include target.h and output.h
12136         (rtx_cost, address_cost, default_address_cost): Move from...
12137         * cse.c (rtx_cost, address_cost, default_address_cost):
12138         ... this file.
12139         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
12140         * Makefile.in: Adjust dependencies.
12141
12142 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
12143
12144         * cse.c (cse_end_of_basic_block): Make static.
12145         * local-alloc.c (function_invariant_p): Move to
12146         reload1.c.
12147         * loop.c (libcall_other_reg, record_excess_regs):
12148         Make static.
12149         * reload1.c (function_invariant_p): Moved here
12150         from local-alloc.c, made static.
12151         * rtl.h (cse_end_of_basic_block, function_invariant_p,
12152         libcall_other_reg, record_excess_regs): Remove
12153         declarations.
12154
12155 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
12156
12157         * config/m32r/m32r.c (signed_comparison_operator): Add a
12158         missing parenthesis.
12159
12160 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
12161
12162         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
12163         going to call mmap again.  Read the file into the right place.
12164         Give a fatal error if we have to relocate.
12165
12166 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
12167
12168         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
12169         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
12170
12171 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
12172
12173         PR other/14354
12174         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
12175         round the same.  When rounding, clear bits that would cause a
12176         second rounding in pack_d.
12177         (_fpmul_parts): Ditto.  Remove #if 0:d code.
12178
12179 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
12180
12181         PR c++/14425, c++/14426
12182         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
12183         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
12184         Change C++ definitions to accept a 'const int' argument;
12185         the prototypes already do.
12186         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
12187         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
12188         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
12189         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
12190         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
12191         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
12192         end in ..._int; change them to accept an int instead of a char
12193         as the last parameter.
12194
12195 2004-03-04  Phil Edwards  <phil@codesourcery.com>
12196
12197         * genmultilib:  Change '=' to '-' when translating option names
12198         to directory names.
12199
12200 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12201
12202         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
12203         stack slot for temp used for result of BLKmode but in integral mode.
12204
12205 2004-03-04  Jan Hubicka  <jh@suse.cz>
12206
12207         * reload.c (find_reloads): Reorganize if seqeunce to switch.
12208
12209         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
12210         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
12211
12212 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
12213
12214         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
12215         * testsuite/gcc.dg/20040303-1.c: New test.
12216
12217 2004-03-04  Steven Bosscher  <stevenb@suse.de>
12218
12219         * ppro.md: Rewrite as a DFA pipeline description.
12220         * i386.md: Remove all uses of the ppro_uops attribute.
12221         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
12222         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
12223         ix86_sched_reorder, ix86_variable_issue,
12224         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
12225         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
12226         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
12227         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
12228         * athlon.md (athlon_ssecmp_load): Fix comment
12229
12230 2004-03-04  Stuart Hastings  <stuart@apple.com>
12231
12232         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
12233
12234 2004-03-04  Stuart Hastings  <stuart@apple.com>
12235
12236         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
12237         686, tell Darwin assembler to allow prefetch insns, non-empty def
12238         of SUBTARGET_OPTION_TRANSLATE_TABLE.
12239
12240 2004-03-04  DJ Delorie  <dj@redhat.com>
12241
12242         PR optimization/14282
12243         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
12244         between a call and the assignment of its return value.
12245
12246 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
12247
12248         * config/h8300/h8300.c: Put a comment for every function.
12249
12250 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
12251
12252         * config/h8300/h8300.md: Add comments about peephole2's.
12253
12254 2004-03-04  Steven Bosscher  <stevenb@suse.de>
12255
12256         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
12257
12258 2004-03-04  Jan Hubicka  <jh@suse.cz>
12259
12260         * cfgcleanup.c (thread_jump): Update call of cselib_init.
12261         * cselib.c (cselib_record_memory): New static variable.
12262         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
12263         Give up on memories when asked for.
12264         (cselib_init): Accept new argument.
12265         * cselib.h (cselib_init): Update prototype.
12266         * gcse.c (local_cprop_pass): Update call of cselib_init.
12267         * loop.c (load_mems): Update call of cselib_init.
12268         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
12269         * sched-deps.c (sched_analyze): Update call of cselib_init.
12270
12271 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
12272             GP <gp@qnx.com>
12273
12274         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
12275         when compiling PIC.
12276
12277 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
12278
12279         PR/14362
12280         * var-tracking.c (track_expr_p): Do not track variables which
12281         should be ignored for debugging purposes.
12282
12283 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
12284
12285         * real.c (encode_ibm_extended): Don't bother rounding low double.
12286         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
12287         when fmt->pnan < fmt->p.
12288
12289 2004-03-04  Eric Christopher  <echristo@redhat.com>
12290
12291         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
12292         only range of valid arg registers and fixed_regs.
12293
12294 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
12295
12296         PR target/14406
12297         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
12298         (abstf2, abstf2_internal): New define_expand.
12299
12300 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
12301
12302         PR optimization/14235
12303         * expr.c (convert_move): Copy the source to a new pseudo
12304         when converting from a sub-word source to a larger-than-word
12305         register which conflicts with the source.
12306
12307 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
12308
12309         PR 13728
12310         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
12311         parameters with the same name, unless one is a forward decl.
12312         Do not issue a redundant-redeclaration warning for forward
12313         decls of parameters.
12314
12315 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
12316
12317         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
12318         configuration.
12319
12320 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
12321
12322         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
12323
12324 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
12325
12326         * target-def.h (TARGET_OPTF): Delete.
12327         * c-opts.c (TARGET_OPTF): Define.
12328
12329 2004-03-04  Jan Hubicka  <jh@suse.cz>
12330
12331         * cselib.c (cselib_finish): Fix another miss-application of my previous
12332         patch.
12333
12334 2004-03-03  Mike Stump  <mrs@apple.com>
12335
12336         Add framework support for darwin.
12337
12338         * c-incpath.c: Include target.h and machmode.h.
12339         (add_path): Use a consistent style for cpp_dir.  Initialize
12340         p->construct to 0.
12341         (add_cpp_dir_path): New.
12342         (register_include_chains): Add use of extra_includes callback.
12343         (hook_void_int): Add.
12344         (target_c_incpath): Add.
12345         * c-incpath.h (add_cpp_dir_path): New.
12346         (target_c_incpath_s): Add.
12347         (target_c_incpath): Add.
12348         (C_INCPATH_INIT): Add.
12349         * c-opts.c (c_common_missing_argument,
12350         c_common_handle_option): Add -F argument processing.
12351         * c.opt: Add -F argument processing.
12352         * gcc.c (trad_capable_cpp): Add -F argument processing.
12353         * cppfiles.c (find_file_in_dir): Update to use construct
12354         callback.
12355         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
12356         cpp_get_prev): New.
12357         (_cpp_find_file): Use search_path_exhausted.
12358         (make_cpp_dir): Initialize construct to 0.
12359         * cpplib.h (missing_header_cb
12360         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
12361         (cpp_callbacks): Add missing_header
12362         (cpp_dir): Add construct.
12363         * target-def.h: (TARGET_OPTF): New.
12364         * hooks.c (hook_void_int, hook_void_charptr): Add.
12365         * hooks.h (hook_void_int, hook_void_charptr): Add.
12366         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
12367         $(MACHMODE_H) dependencies.
12368         * doc/invoke.texi (Darwin Options): Document -F.
12369         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
12370         (TARGET_OPTF): Add.
12371         * fix-header.c (target_c_incpath): Add.
12372
12373         * config/darwin-c.c: Add c-incpath.h include.
12374         (using_frameworks, find_subframework_file,
12375         find_subframework_header, add_system_framework_path,
12376         frameworks_in_use, num_frameworks, max_frameworks,
12377         add_framework, find_framework, struct framework_header,
12378         framework_header_dirs, framework_construct_pathname,
12379         find_subframework_file, add_system_framework_path,
12380         add_framework_path, framework_defaults,
12381         darwin_register_frameworks, find_subframework_header): Add.
12382         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
12383         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
12384         (CPP_SPEC): Add __APPLE_CC__ support.
12385         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
12386
12387 2004-03-04  Jan Hubicka  <jh@suse.cz>
12388
12389         * cselib.c (cselib_finish): Fix miss-application of my previous
12390         patch.
12391
12392 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
12393
12394         * hooks.c (hook_tree_tree_identity): New.
12395         * hooks.h: Add a prototype for hook_tree_tree_identity.
12396         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
12397         instead of MD_ASM_CLOBBERS.
12398         * system.h (MD_ASM_CLOBBERS): Poison.
12399         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
12400         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
12401         * target.h (gcc_target): Add md_asm_clobbers.
12402         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
12403         (ix86_md_asm_clobbers): New.
12404         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
12405         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
12406         TARGET_MD_ASM_CLOBBERS.
12407
12408 2004-03-03  Stuart Hastings  <stuart@apple.com>
12409
12410         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
12411
12412 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
12413
12414         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
12415
12416         * config/sparc/sparc.h (ASM_FLOAT): Delete.
12417         (ASM_DOUBLE): Likewise.
12418         (ASM_LONGDOUBLE): Likewise.
12419         * config/sparc/pbd.h (ASM_INT_OP): Delete.
12420
12421 2004-03-03  Richard Henderson  <rth@redhat.com>
12422
12423         PR opt/13862
12424         * cselib.c (cselib_record_sets): Don't record multiple sets in
12425         asm insns.
12426
12427 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
12428
12429         * common.opt: Add description of the new -fgcse-after-reload flag.
12430
12431         * flags.h (flag_gcse_after_reload): Declaration of global variable.
12432
12433         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
12434         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
12435         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
12436         get_bb_avail_insn, hash_scan_set_after_reload,
12437         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
12438         gcse_after_reload, get_bb_avail_insn): New functions to implement
12439         gcse-after-reload.
12440         (gcse_after_reload_main): New function, the main entry point to
12441         gcse-after-reload.
12442
12443         * rtl.h (gcse_after_reload_main): Declaration of the new function.
12444
12445         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
12446
12447         * toplev.c (flag_gcse_after_reload): Initialization.
12448
12449         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
12450
12451         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
12452         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
12453         the gcse after reload optimization.
12454
12455         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
12456         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
12457         parameters.
12458
12459         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
12460
12461 2004-03-03  Nicolas Pitre <nico@cam.org>
12462
12463         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
12464         small negative values.
12465
12466 2004-03-03  Jan Hubicka  <jh@suse.cz>
12467
12468         * cselib.c (hash_table):  Remove GTY marker.
12469         (reg_values): Turn into array.
12470         (used_regs): Likewise.
12471         (n_used_regs): New static variable.
12472         (reg_values_old): Kill.
12473         (clear_table): Update uses of arrays.
12474         (cselib_lookup): Likewise.
12475         (cselib_record_set): Likewise.
12476         (cselib_init): Likewise.
12477         (cselib_finish): Likewise.
12478         (cselib_udpate_varray_sizes): Kill.
12479         * cselib.h (cselib_update_varray_sizes): Kill.
12480
12481 2004-03-03  Paul Brook  <paul@codesourcery.com>
12482
12483         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
12484
12485 2004-03-03  Jan Hubicka  <jh@suse.cz>
12486
12487         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
12488         Rename from ...; make statistics transparent.
12489         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
12490         (loc_descriptor): New structure.
12491         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
12492         add_statistics):
12493         New static function.
12494         (ggc_record_overhead, dump_statistics): New global function.
12495         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
12496         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
12497         from ...; accept locations
12498         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
12499         ggc_realloc, ggc_alloc_typed):  ... this one.
12500         from ...; accept locations
12501         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
12502         ggc_alloc_stat): Rename from ... ; pass locations
12503         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
12504         ... this one.
12505         (ggc_alloc_stat): Record overehead.
12506         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
12507         ggc_realloc, ggc_alloc_typed):  Turn to macros
12508         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
12509         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
12510         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
12511         * langhooks.h (lhd_make_node): Declare.
12512         (LANG_HOOKS_MAKE_TYPE): Default to new function,
12513         * langhooks.c (lhd_make_node): New.
12514         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
12515         locations.
12516         (rtx_alloc, swallow_copy_rtx): ... this one.
12517         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
12518         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
12519         * toplpev.c (finalize): Dump stats.
12520         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
12521         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
12522         Rename from ... ; pass locators.
12523         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
12524         build?,  build_decl): Declare.
12525         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
12526         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
12527         Declare.
12528         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
12529         build?,  build_decl): New macros.
12530         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
12531         * statistics.h: New file.
12532
12533 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
12534             Richard Sandiford  <rsandifo@redhat.com>
12535
12536         * config/mips/mips.h (MASK_FIX_SB1): Bump.
12537         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
12538         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
12539         * config/mips/mips.c (mips_output_division): Fill the branch delay
12540         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
12541         TARGET_FIX_R4400.
12542         (mips_output_division): Adjust accordingly.
12543         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
12544         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
12545
12546 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
12547
12548         * alias.c (rtx_equal_for_memref_p): Use predicates
12549         to test rtx classes and new rtx class codes, possibly
12550         splitting conditionals that tested against '<' and 'o'.
12551         * caller-save.c (save_call_clobbered_regs): Likewise.
12552         * combine.c (contains_muldiv, find_split_point, subst,
12553         combine_simplify_rtx, simplify_if_then_else,
12554         simplify_set, simplify_logical, expand_compound_operation,
12555         make_compound_operation, if_then_else_cond, known_cond,
12556         apply_distributive_law, cached_nonzero_bits,
12557         cached_num_sign_bit_copies, simplify_shift_const,
12558         gen_binary, simplify_comparison, update_table_tick,
12559         record_value_for_reg, get_lsat_value_validate): Likewise.
12560         * cse.c (mention_regs, find_best_addr, find_comparison_args,
12561         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
12562         Likewise.
12563         * emit-rtl.c (copy_insn_1): Likewise.
12564         * expr.c (force_operand): Likewise.
12565         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
12566         * flow.c (notice_stack_pointer_modification_1,
12567         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
12568         and_reg_cond, elim_reg_cond): Likewise.
12569         * function.c (update_epilogue_consts): Likewise.
12570         * genattrtab.c (attr_rtx_1): Likewise.
12571         * genopinit.c (gen_insn): Likewise.
12572         * integrate.c (subst_constants): Likewise.
12573         * jump.c (reversed_comparison_code_parts,
12574         reversed_comparison_code, delete_related_insns,
12575         rtx_renumbered_equal_p): Likewise.
12576         * local-alloc.c (block_alloc): Likewise.
12577         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
12578         canonicalize_condition): Likewise.
12579         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
12580         Likewise.
12581         * optabs.c (add_equal_node, expand_binop): Likewise.
12582         * predict.c (estimate_probability): Likewise.
12583         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
12584         * recog.c (validate_replace_rtx_1, comparison_operator,
12585         offsettable_address_p, constrain_operands): Likewise.
12586         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
12587         Likewise.
12588         * regclass.c (scan_one_insn): Likewise.
12589         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
12590         * regrename.c (kill_autoinc_value): Likewise.
12591         * reload.c (find_reusable_reload, find_reloads,
12592         reg_overlap_mentioned_for_reload_p): Likewise.
12593         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
12594         * rtl.c (copy_rtx): Likewise.
12595         * rtl.h (CONSTANT_P, INSN_P): Likewise.
12596         * rtlanal.c (commutative_operand_precedence): Likewise.
12597         * sched-deps.c (conditions_mutex_p): Likewise.
12598         * sched-rgn.c (is_cfg_nonregular): Likewise.
12599         * simplify-rtx.c (simplify_gen_binary,
12600         simplify_gen_relational, simplify_replace_rtx,
12601         simplify_unary_operation, simplify_binary_operation,
12602         simplify_ternary_operation, simplify_rtx): Likewise.
12603         * unroll.c (reg_dead_after_loop): Likewise.
12604         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
12605         print_operand): Likewise.
12606         * config/arc/arc.c (proper_comparison_operator): Likewise.
12607         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
12608         Likewise.
12609         * config/avr/avr.c (_reg_unused_after): Likewise.
12610         * config/frv/frv.c (frv_ifcvt_modify_tests,
12611         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
12612         * config/i386/i386.c (ix86_comparison_operator,
12613         ix86_carry_flag_operator, fcmov_comparison_operator,
12614         arith_or_logical_operator, print_operand,
12615         ix86_expand_binary_operator, ix86_binary_operator_ok):
12616         Likewise.
12617         * config/i386/i386.md: Likewise.
12618         * config/ia64/ia64.c (not_postinc_memory_operand,
12619         ia64_print_operand, update_set_flags, errata_emit_nops):
12620         Likewise.
12621         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
12622         CONSTRAINT_OK_FOR_S): Likewise.
12623         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
12624         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
12625         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
12626         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
12627         Likewise.
12628         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
12629         eqne_comparison_operator, signed_comparison_operator):
12630         Likewise.
12631         * config/mips/mips.c (cmp_op, symbolic_expression_p):
12632         Likewise.
12633         * config/mmix/mmix (mmix_foldable_comparison_operator,
12634         mmix_comparison_operator): Likewise.
12635         * config/pa/pa.c (hppa_legitimize_address): Likewise.
12636         * config/rs6000/rs6000.c (stmw_operation,
12637         branch_comparison_operator, trap_comparison_operator,
12638         ccr_bit): Likewise.
12639         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
12640         * config/s390/s390.c (s390_alc_comparison,
12641         s390_slb_comparison):L Likewise.
12642         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
12643         Likewise.
12644         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
12645         noov_compare_op, noov_compare64_op, v9_regcmp_op,
12646         emit_hard_tfmode_operation, reg_unused_after)
12647         * doc/md.texi, doc/rtl.texi: Likewise.
12648
12649         * ra-debug.c: Add 2004 to list of copyright years.
12650         * unroll.c: Likewise.
12651
12652         * combine.c (simplify_logical): Remove dummy test,
12653         (apply_distributive_law): Fix typo in comment.
12654         GET_CODE (x) == AND so x is a commutative binary op.
12655         * jump.c (delete_related_insns): simplify loop
12656         condition, move testing of RTX codes inside the loop.
12657         (rtx_renumbered_equal_p): do not use RTX_CODE.
12658         * rtl.c (rtx_class): Declare as enum rtx_class.
12659         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
12660         Move to RTX_COMM_COMPARE class.
12661         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
12662         Move to RTX_CONST_OBJ class.
12663         * rtl.h (enum rtx_class): New declaration,
12664         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
12665         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
12666         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
12667         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
12668         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
12669         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
12670         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
12671         OBJECT_P): New macros.
12672         * config/sparc/sparc.c (noov_compare_op): Remove register
12673         from parameter.
12674
12675 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
12676
12677         * target.h: Remove texi jargons in comments.
12678
12679 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12680
12681         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
12682         threshold to 0x4f.
12683
12684         Revert:
12685         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
12686         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
12687         as well.
12688         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
12689         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
12690
12691 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12692
12693         * doc/md.texi (cbranchmode4): New.
12694
12695 2004-03-02  Eric Christopher  <echristo@redhat.com>
12696
12697         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
12698         fix_trunc.
12699         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
12700         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
12701         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
12702         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
12703
12704 2004-03-02  Richard Henderson  <rth@redhat.com>
12705
12706         PR middle-end/11767
12707         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
12708         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
12709         before the compare, if flag_non_call_exceptions.
12710
12711 2004-03-02  Richard Henderson  <rth@redhat.com>
12712
12713         PR middle-end/14327
12714         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
12715         emitting the label, not after.
12716
12717 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12718
12719         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
12720         (m68hc11_mov_addr_mode): Likewise.
12721         (m68hc11_override_options): Initialize them based on target.
12722         (register_indirect_p): Allow a MEM for indirect addressing modes and
12723         use flags to control what is allowed.
12724         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
12725         supported addressing modes.
12726         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
12727         (go_if_legitimate_address_internal): Likewise.
12728         (m68hc11_indirect_p): Likewise and check the mode.
12729         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
12730
12731 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12732
12733         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
12734         (expand_builtin_setjmp_setup): Use
12735         targetm.builtin_setjmp_frame_value instead of
12736         BUILTIN_SETJMP_FRAME_VALUE.
12737         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
12738         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
12739         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
12740         * target.h (gcc_target): Add builtin_setjmp_frame_value.
12741         * targhooks.c (default_builtin_setjmp_frame_value): New.
12742         * targhooks.h: Add a prototype for
12743         default_builtin_setjmp_frame_value.
12744         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
12745         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
12746
12747 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12748
12749         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
12750         sequences of moves.
12751         (add peepholes): New peepholes to optimize sequences adding small
12752         constants.
12753         (bset peepholes): New peepholes to transform an OR in a bset form
12754         (bclr peepholes): Likewise for bclr form.
12755         (cmp peepholes): New peepholes to avoid register copies when comparing.
12756
12757 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12758
12759         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
12760         to separate push from moves.
12761         ("*pushdf_internal"): Likewise.
12762         ("*pushsf_internal"): Likewise.
12763         ("*pushsi_internal"): Likewise.
12764         ("movdi_internal"): Use define_insn_and_split; non push operand.
12765         ("movdf_internal"): Likewise.
12766         ("movsf_internal"): Likewise.
12767         ("movsi_internal"): Likewise.
12768         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
12769         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
12770         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
12771
12772 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12773
12774         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
12775         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
12776         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
12777         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
12778         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
12779         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
12780         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
12781         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
12782         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
12783         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
12784         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
12785
12786 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12787
12788         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
12789         (SOFT_XY_REGNUM): Define.
12790         (cmp split): Use the above instead of hard coded numbers.
12791         (8-bit op split): No need to check the mode; allow Q_REG.
12792         (ashift split): Adjust the first operand if it uses the SP and we
12793         are pushing the shifted value.
12794         (plus shift split): Fix when a source is in register D+X.
12795         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
12796
12797 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12798
12799         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
12800         comparing with Z register.
12801
12802 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12803
12804         * cfgloop.h (struct loop_desc): Removed.
12805         (struct loop): Fields simple, desc and has_desc removed.
12806         (simple_loop_p, count_loop_iterations): Declaration removed.
12807         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
12808         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
12809         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
12810         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
12811         simple_loop_exit_p, variable_initial_value, variable_initial_values,
12812         simple_condition_p, simple_increment, count_strange_loop_iterations,
12813         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
12814         Removed.
12815         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
12816
12817 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12818
12819         * genattrtab.c: Don't handle MATCH_INSN.
12820         * genrecog.c: Likewise.
12821         * gensupport.c: Likewise.
12822         * rtl.def (match_insn): Remove.
12823         * doc/md.texi (match_insn, match_insn2): Remove.
12824
12825 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
12826
12827         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
12828         macro results in memory allocation.
12829
12830 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
12831
12832         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
12833         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
12834         %(fbsd_dynamic_linker),
12835         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
12836         config/i386/freebsd.h
12837         * config/arm/freebsd.h: Ditto.
12838         * config/i386/freebsd.h: Ditto.
12839         * config/i386/freebsd64.h: Ditto.
12840         * config/ia64/freebsd.h: Ditto.
12841         * config/rs6000/sysv4.h: Ditto.
12842         * config/sparc/freebsd.h: Ditto.
12843
12844 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
12845
12846         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
12847
12848 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12849
12850         * rtl.def (define_combine): Remove.
12851
12852 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12853
12854         * config/h8300/h8300.md: Tweak formatting.
12855
12856 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12857
12858         * config/h8300/h8300.md (*cmphi_h8300): Rename to
12859         *cmphi_h8300_znvc.
12860         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
12861
12862 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
12863
12864         PR bootstrap/14356
12865         * gcc.c (process_command): Remove const-qualification from argv.
12866         (main): Likewise.
12867
12868 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12869
12870         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
12871         pushqi1_h8300hs_advanced.  Adjust its caller.
12872         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
12873         Adjust its caller.
12874
12875 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
12876
12877         * Makefile.in (install-libgcc, install-multilib): Pass
12878         mkinstalldirs var to libgcc.mk.
12879
12880 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
12881
12882         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
12883         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
12884
12885 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
12886
12887         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
12888         * config/h8300/h8300.md: Split several peephole2's, each into
12889         two.
12890
12891 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12892
12893         * dominance.c (recount_dominator): Handle postdominators.
12894
12895 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
12896
12897         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
12898         (NUM_SYMBOL_TYPES): Likewise.
12899         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
12900         (mips_unspec_address): Declare.
12901         (mips_gotoff_page, mips_gotoff_global): Delete.
12902         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
12903         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
12904         (mips_symbolic_constant_p, mips_symbolic_address_p)
12905         (mips_symbol_insns): Handle new symbol types.
12906         (general_symbolic_operand): New predicate.
12907         (mips_unspec_address): Make extern.
12908         (mips_gotoff_page, mips_gotoff_global): Delete.
12909         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
12910         Handle new symbol types.
12911         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
12912         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
12913         mips_unspec_address directly.
12914         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
12915         the documentation of -mexplicit-relocs.
12916
12917 2004-03-01  Jeff Law  <law@redhat.com>
12918
12919         * fold-const.c (fold): An equality comparison of a non-weak object
12920         against zero has a known result.  Similarly an equality comparison
12921         of the address of two non-weak, unaliased symbols has a known result.
12922
12923         * ggc-page.c (struct page_entry): New field PREV.
12924         (ggc_alloc): Update PREV field appropriately.
12925         (sweep_pages): Likewise.
12926         (ggc_free): Likewise.  Use PREV field rather than loop to
12927         improve ggc_free performance.
12928
12929 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
12930
12931         * config/mips/mips.c (mips_output_division): Use the division
12932         instruction to fill the delay slot of a zero check.
12933         (mips_idiv_insns): Adjust accordingly.
12934
12935 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
12936
12937         * config.gcc: Create a default tmake_file for linux, and use
12938         it in all but two linux clauses.  Comment those two.
12939
12940 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
12941
12942         * combine.c (try_combine):  Do not refer to is_replaced.
12943         (gen_lowpart_for_combine):  Perverse subregs now have a
12944         more politically correct name.
12945         * cse.c (cse_insn): Likewise.
12946         * jump.c: Fix bogus reference to delete_insn.
12947
12948 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
12949
12950         PR debug/14328
12951         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
12952         constants as signed values.
12953
12954         PR middle-end/13448
12955         * c-tree.h (readonly_warning): Rename to ...
12956         (readonly_error): ... this.
12957         * c-typeck.c (build_unary_op): Adjust accordingly.
12958         (readonly_warning): Rename to ...
12959         (readonly_error): ... this and issue errors, not warnings.
12960         (build_modify_expr): Call readonly_error, not readonly_warning.
12961         (c_expand_asm_operands): Likewise.
12962         * tree-inline.c (optimize_inline_calls): Do not inline functions
12963         after errors have occurred.
12964
12965 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
12966
12967         * configure.ac: Rearrange some threading code for clarity;
12968         add section comment.
12969         * configure: Regenerate.
12970
12971 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
12972
12973         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
12974         typos.
12975         * doc/cppopts.texi: Fix a typo.
12976
12977 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
12978
12979         * config/i386/i386.md: Fix formatting.
12980
12981 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
12982
12983         * configure.ac: Add some comments delineating sections of code.
12984
12985         * doc/install.texi: Note that libada uses autoconf 2.57 also.
12986
12987         * doc/install.texi: Fix idiot typo in previous commit.
12988
12989         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
12990
12991 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
12992
12993         * config/h8300/h8300.md: Add comments about peephole2's.
12994
12995 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
12996
12997         * config/h8300/h8300.md: Tweak operand numbers of some
12998         peephole2's.
12999
13000 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
13001
13002         * config/h8300/h8300.md: Tweak comments about peephole2's.
13003
13004 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
13005
13006         PR middle-end/14203
13007         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
13008         instead of testing whether DECL_RTL is not NULL.
13009
13010 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
13011
13012         * config/sh/sh.c: Fix formatting.
13013
13014 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
13015
13016         * config/sh/sh.c: Convert to ISO-C.
13017
13018 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
13019
13020         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
13021         my previous patch.
13022
13023         * config/darwin.h (machopic_finish): Output stub even if the
13024         symbol is already defined.
13025
13026 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13027
13028         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
13029
13030 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
13031
13032         * genattr.c (main): Don't define
13033         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
13034         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
13035         (DFA_PIPELINE_INTERFACE): Likewise.
13036         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
13037         (DFA_PIPELINE_INTERFACE): Likewise.
13038
13039 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
13040
13041         * config/mips/mips.md (tstsi, tstdi): Delete.
13042
13043 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
13044
13045         * config/mips/mips.c (override_options): Remove an obsolete
13046         duplicate definition of the "e" constraint.
13047         * config/mips/mips.h: Update a comment accordingly.
13048
13049 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
13050
13051         * config/mips/mips.md: Complete the unfinished R4000
13052         multiply/shift errata workaround.  Improve documentation.
13053         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
13054         has a hilo hazard.
13055         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
13056         (muldi3, muldi3_internal): Likewise.
13057         (muldi3_internal2): Remove, replacing with...
13058         (muldi3_mult3, muldi3_r4000): ...these new patterns.
13059         (mulsidi3): Take the errata into account.
13060         (mulsidi3_32bit): Remove, replacing with...
13061         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
13062         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
13063         (umulsidi3): Take the errata into account.
13064         (umulsidi3_32bit): Remove, replacing with..
13065         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
13066         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
13067         TARGET_FIX_R4000.
13068         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
13069         (smuldi3_highpart, umuldi3_highpart): Likewise.
13070         * doc/invoke.texi: Document the errata workaround.
13071
13072 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
13073
13074         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
13075         * config/mips/mips.h (MASK_FIX_SB1): Bump.
13076         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
13077         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
13078         * config/mips/mips.c (mips_idiv_insns): New function.
13079         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
13080         (mips_output_division): Add a workaround for the R4000 divide/shift
13081         errata.
13082         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
13083         the length of an "idiv" instruction.
13084         * doc/invoke.texi: Document the new switches.
13085
13086 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
13087
13088         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
13089         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
13090
13091 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13092
13093         PR optimization/14229
13094         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
13095
13096 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
13097
13098         * fold-const.c (fold): Strip NOPs that change the signedness
13099         for RSHIFT too.  Expand comment.
13100
13101 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
13102
13103         PR optimization/7871
13104         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
13105         from or to call insns.
13106
13107 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
13108
13109         PR optimization/7871
13110         * flow.c (propagate_one_insn): Interpret calls as setting global
13111         registers, not merely clobbering them.
13112
13113 2004-02-27  Dale Johannesen  <dalej@apple.com>
13114
13115         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
13116         config/darwin-protos.h:  Ditto.
13117         config/darwin.h:  Remove call to it.
13118         * combine.c (distribute_notes): Do not place a REG_DEAD note
13119         when value is both set and used.
13120
13121 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
13122
13123         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
13124         as well.
13125         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
13126         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
13127
13128 2004-02-27  Andrew Pinski  <apinski@apple.com>
13129
13130         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
13131         Speedup common case of the type values being in the same order.
13132
13133 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
13134
13135         * config/ia64/ia64.h (no-inline-float-divide): New option.
13136         * config/ia64/ia64.h (no-inline-int-divide): New option.
13137         * config/ia64/ia64.h (no-inline-sqrt): New option.
13138         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
13139         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
13140         * config/ia64/ia64.c (ia64_override_options): Modify error
13141         checking for inlined division/sqrt.
13142
13143 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
13144
13145         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
13146         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
13147         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
13148         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
13149         copyright.
13150
13151 2004-02-27  Paul Brook  <paul@codesourcery.com>
13152
13153         * function.c (assign_parms): Don't count pretend args for alignment.
13154
13155 2004-02-27  Richard Henderson  <rth@redhat.com>
13156
13157         * passes.c: New file.
13158         * Makefile.in (OBJS-common): Add it.
13159         * diagnostic.c (rtl_dump_and_exit): Move decl ...
13160         * flags.h (rtl_dump_and_exit): ... here.
13161         * output.h (size_directive_output, last_assemble_variable_decl):
13162         Move from toplev.c.
13163         * rtl.h (reg_alloc): Move from toplev.c.
13164         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
13165         struct dump_file_info, enum dump_file_index, dump_file_tbl,
13166         open_dump_file, close_dump_file, rest_of_decl_compilation,
13167         rest_of_type_compilation, rest_of_handle_final,
13168         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
13169         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
13170         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
13171         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
13172         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
13173         rest_of_handle_tracer, rest_of_handle_if_conversion,
13174         rest_of_handle_if_after_combine, rest_of_handle_web,
13175         rest_of_handle_branch_prob,
13176         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
13177         rest_of_handle_addressof, rest_of_handle_sibling_calls,
13178         rest_of_handle_jump_bypass, rest_of_handle_inlining,
13179         rest_of_handle_null_pointer, rest_of_handle_combine,
13180         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
13181         rest_of_handle_gcse, rest_of_handle_loop_optimize,
13182         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
13183         (decode_d_option): Use enable_rtl_dump_file.
13184         (compile_file, finalize, do_compile): Move profile+combine+graph
13185         cleanup to finish_optimization_passes.
13186         * toplev.h (init_optimization_passes, finish_optimization_passes,
13187         enable_rtl_dump_file): Declare.
13188
13189 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
13190             Roger Sayle  <roger@eyesopen.com>
13191
13192         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
13193         operands to build a tree with swapped operands.
13194         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
13195         'unsignedp' predicate to specify the signedness.
13196
13197 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
13198
13199         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
13200         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
13201         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
13202         comment typos and formatting.  Follow spelling conventions.
13203
13204 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
13205
13206         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
13207         fix_truncsfsi2.
13208
13209         * config/rs6000/spe.md: Delete spe_efsctuiz.
13210         Add spe_fixuns_truncsfsi2.
13211         Add spe_fix_truncsfsi2.
13212
13213 2004-02-26  Eric Christopher  <echristo@redhat.com>
13214
13215         * c-lex.c (c_lex_string_translate): New variable.
13216         (lex_string): Use to determine string translation.
13217         * c-pragma.h: Prototype.
13218         * c-parse.in (start_string_translation): New. Set above.
13219         (stop_string_translation): Ditto.
13220         (attribute, attribute_list, asm_def, asm_stmt,
13221         asm_operand): Use above functions.
13222         * cp/parser.c (cp_parser_declaration): Translate strings
13223         unless token is RID_EXTERN. Set c_lex_string_translate
13224         for recursive use.
13225         (cp_parser_asm_definition): Only translate argument strings
13226         to asms.
13227         (cp_parser_asm_operand_list): Ditto.
13228         (cp_parser_attribute_list): Do not translate attribute strings.
13229
13230 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13231
13232         * stmt.c (expand_start_case_dummy): Remove.
13233         * tree.h: Remove the corresponding prototype.
13234
13235 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13236
13237         * builtins.c (apply_args_register_offset): Remove.
13238         * tree.h: Remove the corresponding prototype.
13239
13240 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13241
13242         * stor-layout.c (is_pending_size): Remove.
13243         * tree.h: Remove the corresponding prototype.
13244
13245 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13246
13247         * recog.c (validate_replace_src): Remove.
13248         * recog.h: Remove the corresponding prototype.
13249
13250 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13251
13252         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
13253         MAYBE_REG_PARM_STACK_SPACE.
13254         * function.c: Likewise.
13255         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
13256         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
13257         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
13258         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
13259
13260 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13261
13262         * c-decl.c (c_expand_deferred_function): Remove.
13263         * c-tree.h: Remove the corresponding prototype.
13264
13265 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13266
13267         * postreload.c (reload_cse_move2add): Generate just a PLUS
13268         instead of an entire SET.
13269
13270 2004-02-26  Jan Hubicka  <jh@suse.cz>
13271
13272         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
13273         /pentium4m.
13274         * i386.c (override_options): Add support for new CPUs.
13275         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
13276         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
13277         constants.
13278         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
13279
13280 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
13281
13282         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
13283
13284 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
13285
13286         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
13287         (sparc_emit_fixunsdi): New prototype.
13288         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
13289         (sparc_emit_fixunsdi): New function.
13290         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
13291         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
13292         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
13293         to sparc_emit_floatunsdi.
13294         (fixuns_truncsfdi2): New expander.
13295         (fixuns_truncdfdi2): Likewise.
13296
13297 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
13298
13299         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
13300         unless HAVE_cc0.
13301
13302 2004-02-25  Richard Henderson  <rth@redhat.com>
13303
13304         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
13305         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
13306         use (op0-op1) == 0 if op0 is a pointer.
13307         * config/alpha/alpha.md (cmpdi): Use some_operand.
13308         (three comparison combine splits): Remove.
13309
13310 2004-02-25  Richard Henderson  <rth@redhat.com>
13311
13312         PR c/12794
13313         * c-common.c (handle_alias_attribute): Reject the attribute if
13314         current_function_decl is set.
13315
13316 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
13317
13318         * config.gcc: Add comment describing extra_gcc_objs.
13319         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
13320         * configure.ac (extra_gcc_objs): New substitution variable.
13321         (host_extra_gcc_objs): Don't substitute.
13322         * configure: Regenerate.
13323         * Makefile.in: Use extra_gcc_objs.
13324
13325 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
13326
13327         * doc/contrib.texi: Add an entry for myself.
13328
13329 2004-02-25  Jan Hubicka  <jh@suse.cz>
13330
13331         * basic-block.h (make_eh_edge, break_superblocks): Declare.
13332         * cfgbuild.c (make_eh_edge):  Make global.
13333         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
13334         * except.c (build_post_landing_pads, connect_post_landing_pads,
13335         dw2_build_landing_pads, sjlj_emit_function_enter,
13336         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
13337         sjlj_build_landing_pads): Update CFG.
13338         (emit_to_new_bb_before): New function.
13339         (finish_eh_generation): Do not rebuild the CFG.
13340
13341 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13342
13343         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
13344         target_cpu_default defines.
13345         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
13346         * pa.h (TARGET_DEFAULT): Likewise.
13347
13348 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
13349
13350         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
13351         comparisons with regard to signedness.
13352
13353 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
13354
13355         * arm.c (thumb_legitimize_address): New function.
13356         * arm-protos.h: Prototype it.
13357         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
13358         (LEGITIMIZE_ADDRESS): Use it.
13359
13360 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
13361
13362         * reload1.c (reload): Only spill eliminable register with multiple
13363         adjacent elimination alternatives if all alternatives fail.
13364
13365 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
13366
13367         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
13368         is -4095...+4095 inclusive.
13369
13370 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
13371
13372         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
13373         the bootstrap failure with Sun CC 5.4 and 5.5.
13374
13375 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
13376
13377         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
13378         which modifies NEWREG.
13379         (cse_condition_code_reg): Update the mode of CC_REG in
13380         CC_SRC_INSN on our own.
13381
13382 2004-02-24  Michael Matz  <matz@suse.de>
13383
13384         * config/i386/i386.c (ix86_comp_type_attributes): Check for
13385         regparm attributes.
13386
13387 2004-02-24  Richard Henderson  <rth@redhat.com>
13388
13389         * toplev.c (dump_file_tbl): Rename from dump_file.
13390         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
13391         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
13392         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
13393         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
13394         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
13395         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
13396         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
13397         s/rtl_dump_file/dump_file/g.
13398
13399 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
13400
13401         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
13402         (spe_fixuns_truncsfsi2): Delete.
13403
13404         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
13405         (fixuns_truncsfsi2): Delete.
13406
13407 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
13408
13409         PR/14240
13410         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
13411
13412 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
13413
13414         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
13415
13416 2004-02-24  Jason Merrill  <jason@redhat.com>
13417
13418         * tree.c (check_qualified_type): New fn.
13419         (get_qualified_type): Use it.  If type already has the desired
13420         quals, just return it.
13421         * tree.h: Declare it.
13422
13423 2004-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
13424
13425         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
13426         TARGET_SCHED_FINISH_GLOBAL): New macros.
13427
13428         * target.h (md_init_global, md_finish_global): Function
13429         declarations corresponding to new target macros.
13430
13431         * haifa-sched.c (sched_init, sched_finish): Allow target to
13432         call the new schedular hooks.
13433
13434         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
13435         call to update_life_info.
13436
13437         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
13438         flag_schedule_insns for SH4.
13439
13440         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
13441         find_set_regmode_weight, find_insn_regmode_weight,
13442         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
13443         sh_variable_issue, high_pressure, ready_reorder,
13444         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
13445         functions used to throttle the insn movement in first
13446         scheduling pass for SH.
13447
13448         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
13449         TARGET_SCHED_FINISH_GLOBAL.
13450
13451 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
13452
13453         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
13454         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
13455         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
13456         symbols in sections named by the user.
13457         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
13458         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
13459         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
13460         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
13461         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
13462         the above.
13463         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
13464         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
13465         one more pseudo to further improve code generation.
13466         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
13467         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
13468         inside UNSPEC.
13469         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
13470         * config/frv/frv.c (frv_legitimate_address_p): Added
13471         allow_double_reg_p argument.  Adjust all callers.  Use it to
13472         decide whether to enable double-register indirect addressing.
13473         (frv_funcdesc_alias_set): Remove.
13474         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
13475         register.  Emit movdi_ldd.
13476         (ldd_address_operand): New.
13477         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
13478         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
13479         (PREDICATE_CODES): Add ldd_address_operand.
13480         * config/frv/frv.md (movdi_ldd): New.
13481         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
13482         intermediate computations if possible.
13483         (symGOTOFF2reg_i): Fix harmless typo.
13484         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
13485         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
13486         relocated p_vaddr to vaddr type.
13487         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
13488         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
13489         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
13490         MEM, or use a funcdesc alias set.  Use regular move instead of
13491         ldd.
13492         (dbl_memory_one_insn_operand): Recognize function descriptors by
13493         type or by alias set, and don't split them.
13494         * config/frv/frv.md (call, call_value): Never use call_internal
13495         for fdpic.
13496         (call_internal, call_value_internal): Never match for FDPIC.
13497         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
13498         call_value_fdpicsi): Require FDPIC.
13499         (ldd): Removed.
13500         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
13501         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
13502         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
13503         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
13504         FDPIC.  Compute data base address.
13505         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
13506         before the other self-specs are processed.
13507         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
13508         Build with -fPIC.
13509         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
13510         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
13511         inhibit_libc is defined.
13512         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
13513         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
13514         __FRV_FDPIC__.
13515         (__RELOC_POINTER): Define.
13516         (_Unwind_IteratePhdrCallback): Use it.
13517         * config/frv/frv.h (Twrite): Define.
13518         (TRANSFER_FROM_TRAMPOLINE): Use it.
13519         * config/frv/linux.h (INVOKE__main): Undefine.
13520         (Twrite): Override.
13521         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
13522         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
13523         (-mlibrary-pic): Emphasize that this option generates EABI code.
13524         (-mcpu): Add fr550.
13525         (-mpack): Remove.
13526         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
13527         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
13528         and CONSTs in FDPIC mode.
13529         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
13530         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
13531         * config/frv/frv.c (move_source_operand): Don't accept symbolic
13532         constants.
13533         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
13534         rather than 'i' constraint for the 2-instruction alternative.
13535         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
13536         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
13537         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
13538         EXTRA_CONSTRAINT_FOR_Y.
13539         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
13540         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
13541         (addsi3): Change 'Y' constraint to 'Q'.
13542         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
13543         * reload.c (CONST_POOL_OK_P): New macro.
13544         (find_reloads): Use it to decide whether a constant can be forced
13545         into memory.
13546         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
13547         constant satisfies got12_operand.
13548         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
13549         (frv_legitimate_address_p): Check for valid unspec offsets using
13550         got12_operand rather than frv_legitimate_fdpic_operand_p.
13551         (frv_legitimate_fdpic_operand_p): Delete.
13552         (frv_emit_movsi): Abort if we try to use the FDPIC register during
13553         or after reload.
13554         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
13555         TARGET_FDPIC.
13556         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
13557         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
13558         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
13559         (frv_fdpic_fptr_operand): Don't declare here.
13560         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
13561         rather than fdpic_got12_operand.
13562         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
13563         got12_operand and const_unspec_operand.
13564         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
13565         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
13566         (symbolic_operand): Remove.
13567         (const_unspec_operand): New predicate.
13568         * config/frv/frv.md (*movsi_got): Use got12_operand.
13569         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
13570         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
13571         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
13572         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
13573         * config/frv/frv.c (frv_unspec): New structure.
13574         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
13575         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
13576         validate CONST indices.  Use frv_output_const_unspec to print them.
13577         (frv_print_operand): Update call to unspec_got_name.  Use
13578         frv_output_const_unspec to print constant unspecs.
13579         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
13580         Reject UNSPECs otherwise.
13581         (unspec_got_name): Take the relocation number as argument, not an
13582         rtx containing it.
13583         (frv_output_addr_const_extra): Remove, replacing with...
13584         (frv_output_const_unspec): ...this new function.
13585         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
13586         (gpr_or_int12_operand): Use fdpic_got12_operand.
13587         (dbl_memory_one_insn_operand): Likewise.
13588         (fdpic_got12_operand): Use frv_const_unspec_p.
13589         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
13590         are already legitimate.  Use frv_small_data_reloc_p when deciding
13591         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
13592         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
13593         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
13594         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
13595         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
13596         label, for real this time.
13597         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
13598         representation of visibility.
13599         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
13600         such.
13601         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
13602         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
13603         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
13604         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
13605         it was explicitly disabled.
13606         (frv_stack_info): There is no need to save the link register in every
13607         frame unless TARGET_LINKED_FP is true.
13608         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
13609         frame pointer if the stack pointer might change value.
13610         (frv_return_addr_rtx): Check and process "count" argument.
13611         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
13612         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
13613         (frv_find_base_term): Declare.
13614         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
13615         (FIND_BASE_TERM): Define.
13616         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
13617         small_data_register_operand, small_data_symbolic_operand.  Add
13618         symbolic_operand.
13619         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
13620         (frv_print_operand_memory_reference, output_move_single): Remove
13621         special handling for unlegitimized sdata addresses.
13622         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
13623         and symbolic addresses.
13624         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
13625         (frv_find_base_term): New function.
13626         (int_2word_operand): Check specifically for symbolic address constants.
13627         (pic_register_operand, pic_symbolic_operand): Delete.
13628         (small_data_register_operand, small_data_symbolic_operand): Delete.
13629         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
13630         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
13631         (move_source_operand): Only accept CONSTs if they're a two-insn
13632         symbolic constant.
13633         (fdpic_got12_operand): Don't require TARGET_FDPIC.
13634         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
13635         using gen_symGOTOFF2reg*.
13636         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
13637         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
13638         themselves a cost of 3 insns.
13639         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
13640         Change predicate to symbolic_operand.
13641         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
13642         (*movsi_lda_sdata): Delete.
13643         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
13644         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
13645         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
13646         frv-*-*linux*.
13647         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
13648         label.
13649         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
13650         -multilib-library-pic.
13651         (LINK_SPEC): Add -z text for -mfdpic.
13652         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
13653         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
13654         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
13655         Override.
13656         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
13657         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
13658         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
13659         crtstuff-generated files.
13660         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
13661         * config.gcc: Add frv-*-*linux*.
13662         * config/frv/linux.h, config/frv/t-linux: New.
13663         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
13664         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
13665         when -mfdpic even if a linker script is explicitly listed.
13666         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
13667         * config/frv/frv.c (frv_override_options): Clear asm_out
13668         unaligned_op for SImode on FDPIC.
13669         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
13670         argument passed to decl_readonly_section.
13671         (frv_assemble_integer): Revert 2003-09-30's change, but make the
13672         whole block run with FDPIC even with -fno-PIC.
13673         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
13674         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
13675         symbol or label plus offset to memory.
13676         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
13677         GOTOFF and GPREL for LABEL_REF.
13678         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
13679         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
13680         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
13681         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
13682         * doc/invoke.texi: Document them.
13683         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
13684         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
13685         (frv_splittable_got_operand): Removed.
13686         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
13687         LO_SUM.  Add comments.
13688         (frv_override_options): Moved enabling of FDPIC to
13689         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
13690         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
13691         (frv_legitimize_fdpic_address): Don't duplicate logic in
13692         frv_emit_movsi.
13693         (frv_gen_GPsym2reg): New.
13694         (unspec_got_name): Added gprel.
13695         (frv_expand_fdpic_call): Add support for inlining PLTs.
13696         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
13697         (gpr_or_int12_operand): Added GPREL12.
13698         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
13699         (small_data_symbolic_operand): Fail if FDPIC.
13700         (fdpic_splittable_got_operand): Removed.
13701         (fdpic_got12_operand): Added GPREL12.
13702         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
13703         when appropriate.  Fix sdata GOTOFF.
13704         (frv_legitimate_constant_p): Require legitimate PIC operand for
13705         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
13706         (frv_assemble_integer): Move FDPIC funcdesc handling out of
13707         flag_pic case.
13708         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
13709         frv_assemble_integer fails.
13710         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
13711         (SUBTARGET_DRIVER_SELF_SPECS): New.
13712         (ASM_SPEC): Don't pass -mno-fdpic.
13713         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
13714         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
13715         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
13716         -multilib-library-pic.
13717         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
13718         condexec_si_media_operator, condexec_sf_add_operator and
13719         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
13720         and condexec_sf_unary_operator.
13721         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
13722         New.
13723         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
13724         movsi_internal.  Give them internal names.  movsi_got has type
13725         int.
13726         (fdpic got splitters): Remove.
13727         (symGPREL2reg, symGPREL2reg_hilo): New.
13728         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
13729         to -mlibrary-pic.  Map -multilib-library-pic to it.
13730         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
13731         Document.
13732         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
13733         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
13734         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
13735         (frv_cannot_force_const_mem): New function.
13736         (const_small_data_p, plus_small_data_p): Update comments on sdata
13737         on FDPIC.
13738         (frv_override_options): Set flag_pie for FDPIC too.
13739         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
13740         call-saved registers on FDPIC.
13741         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
13742         don't force LR to be preserved.
13743         (frv_expand_prologue): Likewise.
13744         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
13745         (frv_frame_pointer_required): Don't force it just because the
13746         FDPIC register is used.
13747         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
13748         operand only if !condexec_p.
13749         (frv_legitimize_address): Return the FDPIC-legitimized address.
13750         Don't match small data here on FDPIC.
13751         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
13752         symbols.  Use TRUE/FALSE instead of 1/0.
13753         (frv_local_funcdesc_p): New.
13754         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
13755         immediates when possible.
13756         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
13757         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
13758         an UNSPEC_GOT.
13759         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
13760         12-bit immediates when possible.
13761         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
13762         are not legitimate pic operands.
13763         (frv_in_small_data_p): Re-enable for FDPIC.
13764         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
13765         (FRV_GLOBAL_P): Removed.
13766         * config/frv/frv.md: Add modes to CONSTs.
13767         (movsi_got): New.
13768         (movsi_lo_sum_got): Use separate matches instead of match_dup.
13769         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
13770         (fdpic splittable operations): Match on flag_pic != 1.
13771         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
13772         * config/frv/frv.c (frv_asm_out_constructor,
13773         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
13774         bytes, not bits.
13775         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
13776         * config/frv/frv.c (frv_assemble_integer): Reject complex
13777         expressions referencing function SYMBOL_REFs.
13778         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
13779         (move_source_operand): Reject CONSTs that reference function
13780         SYMBOL_REFs on FDPIC.
13781         (frv_emit_movsi): If we get such a CONST, break it up.
13782         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
13783         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
13784         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
13785         MEM.
13786         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
13787         (frv_trampoline_size): Increase for FDPIC.
13788         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
13789         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
13790         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
13791         Disable use of GOTOFF for now.
13792         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
13793         Disable use of small data in FDPIC for now.
13794         (frv_asm_output_mi_thunk): Implement for FDPIC.
13795         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
13796         * config/frv/frv.c (frv_asm_out_constructor): Use
13797         frv_assemble_integer for FDPIC pointers.
13798         (frv_asm_out_destructor): Likewise.
13799         * config/frv/frv.md (ldd): Fix order of operands.  Use
13800         address_operand for input.
13801         2003-09-18  DJ Delorie  <dj@redhat.com>
13802         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
13803         (unspec_got_name): Correct typo.
13804         (frv_emit_movsi): Pre-expand splittable GOTs.
13805         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
13806         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
13807         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
13808         * config/frv/t-frv: Add -mfdpic multilibs.
13809         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
13810         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
13811         * config/frv/frv.c (frv_override_options): -mfdpic assumes
13812         flag_pic, default to 32-bit pics, require DWORD ops.
13813         (frv_override_options): Add W and Z constraints.
13814         (frv_expand_prologue): No pic prologue for -mfdpic.
13815         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
13816         (frv_print_operand_memory_reference): Handle GOT constants.
13817         (frv_legitimate_address_p): Allow GOT constants.
13818         (frv_legitimize_address): Handle GOT addresses too.
13819         (frv_legitimate_fdpic_operand_p): New.
13820         (frv_legitimize_fdpic_address): New.
13821         (unspec_got_name): New.
13822         (frv_output_addr_const_extra): New.
13823         (frv_expand_fdpic_call): New.
13824         (frv_fdpic_fptr_operand): New.
13825         (gpr_or_int12_operand): Handle GOT operands.
13826         (int_2word_operand): Handle GOT operands.
13827         (fdpic_operand): New.
13828         (fdpic_splittable_got_operand): New.
13829         (fdpic_got12_operand): New.
13830         (frv_emit_movsi): Handle GOT operands.
13831         (frv_assemble_integer): -mfdpic doesn't use rofixups.
13832         (frv_print_operand): Support 'g' code for GOT operands.
13833         * config/frv/frv-protos.h: Add prototypes as needed.
13834         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
13835         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
13836         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
13837         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
13838         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
13839         R_FRV_GOTOFFLO): New.
13840         (movsi_high_got, movsi_lo_sum_got): New.
13841         (*movsi_pic): Don't use this splitter for -mfdpic.
13842         (addsi3): Allow GOT references also.
13843         (call, call_value): Handle -mfdpic separately.
13844         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
13845         call_value_fdpicsi): New.
13846         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
13847         symGOTOFF2reg_i): New.
13848         * config/frv/frv.h (MASK_FDPIC): New.
13849         (TARGET_FDPIC): New.
13850         (TARGET_SWITCHES): Add -mfdpic.
13851         (FDPIC_FPTR_REGNO): New.
13852         (FDPIC_REGNO): New.
13853         (OUR_FDPIC_REG): New.
13854         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
13855         FDPIC_CALL_REGS.
13856         (REG_CLASS_NAMES): Likewise.
13857         (REG_CLASS_CONTENTS): Likewise.
13858         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
13859         (EXTRA_CONSTRAINT): Add it here.
13860         (FRV_GLOBAL_P): New.
13861         (OUTPUT_ADDR_CONST_EXTRA): New.
13862
13863 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
13864
13865         * config/sparc/sparc.h: Remove commented-out definitions of
13866         TARGET_EDOM and GEN_ERRNO_RTX.
13867
13868 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
13869
13870         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
13871         df_analyse with df_analyze.
13872
13873 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
13874
13875         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
13876         beginning of block.
13877
13878 2004-02-23  James E Wilson  <wilson@specifixinc.com>
13879
13880         * calls.c (precompute_arguments): Update comment.
13881
13882 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
13883
13884         * et-forest.c: Replace et_occurences with et_occurrences.
13885
13886 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
13887
13888         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
13889         with iv_analyze.
13890
13891 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
13892
13893         * config/i386/i386.c: Rename pni to sse3.
13894         * config/i386/i386.h: Likewise.
13895         * config/i386/i386.md: Likewise.
13896         * config/i386/pmmintrin.h: Likewise.
13897         * doc/extend.texi: Likewise.
13898         * doc/invoke.texi: Likewise.
13899
13900 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
13901             Kazu Hirata  <kazu@cs.umass.edu>
13902
13903         Remove -fwritable-strings.
13904         * c-common.c (fix_string_type): Don't check
13905         flag_writable_strings.
13906         (fix_string_type): Likewise.
13907         * c-opts.c (set_std_c89): Don't initialize
13908         flag_writable_strings.
13909         (set_std_c99): Likewise.
13910         * common.opt (fwritable-strings): Remove.
13911         * flags.h: Remove the external declaration of
13912         flag_writable_strings.
13913         * opts.c (common_handle_option) <OPT_fwritable_strings>:
13914         Remove.
13915         * toplev.c (flag_writable_strings): Remove.
13916         (f_options): Remove an entry for writable-strings.
13917         * varasm.c (const_hash_1) <STRING_CST>: Don't check
13918         flag_writable_strings.
13919         (compare_constant) <STRING_CST>: Likewise.
13920         (build_constant_desc): Likewise.
13921         * config/darwin.c (machopic_select_section): Likewise.
13922         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
13923         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
13924         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
13925         * config/mips/mips.c (mips_select_section): Likewise.
13926         (mips_encode_section_info): Likewise.
13927         * config/pa/pa.c (pa_select_section): Likewise.
13928         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
13929         * config/v850/v850.c (v850_select_section): Likewise.
13930         * doc/invoke.texi (-fwritable-strings): Remove.
13931         (-fno-const-strings): Don't mention -fwritable-strings.
13932         * doc/trouble.texi: Don't mention -fwritable-strings.
13933
13934 2004-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
13935
13936         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
13937
13938 2004-02-23  Dale Johannesen  <dalej@apple.com>
13939
13940         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
13941         (movdf_hardfloat64):  Ditto.
13942         (movdf_softfloat64):  Ditto.
13943
13944 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
13945         * config/rs6000/rs6000.c (function_arg): call to
13946         rs6000_mixed_function_arg for DFmode moved to allow
13947         normal DFmode incoming register assignment.
13948
13949 2004-02-23  Dale Johannesen  <dalej@apple.com>
13950
13951         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
13952         (movdf_hardfloat64):  Ditto.
13953
13954 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
13955
13956         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
13957         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
13958         copyright.
13959
13960 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
13961
13962         PR c/14156
13963         * c-typeck.c (c_expand_return): Change check for VAR_DECL
13964         to use DECL_P instead.
13965
13966         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
13967         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
13968
13969 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
13970
13971         * Makefile.in (opts.o): Depend on target.h.
13972         * opts.c (decode_options): Use targetm.default_short_enums
13973         instead of DEFAULT_SHORT_ENUMS.
13974         * system.h (DEFAULT_SHORT_ENUMS): Poison.
13975         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
13976         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
13977         * target.h (gcc_target): Add default_short_enums.
13978         * config/cris/cris.h: Remove a comment about
13979         DEFAULT_SHORT_ENUMS.
13980         * config/ip2k/ip2k.h: Likewise.
13981         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
13982         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
13983
13984 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
13985             Falk Hueffner  <falk@debian.org>
13986
13987         PR c/14188
13988         * builtins.c (expand_builtin_va_arg): Emit an informative message
13989         if a trap is generated.
13990         * c-typeck.c (build_function_call): Likewise.
13991
13992 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
13993
13994         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
13995         fopen.
13996         * libgcov.c: Include sys/stat.h.
13997         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
13998         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
13999         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
14000         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
14001
14002 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
14003
14004         * reorg.c: Remove comments about dead ports.
14005
14006 2004-02-22  Christopher Faylor  <cgf@redhat.com>
14007
14008         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
14009         extra host object file when targetting cygwin rather than generic
14010         object files.
14011
14012 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
14013
14014         Merge from tree-ssa:
14015         2003-11-20  Richard Henderson  <rth@redhat.com>
14016
14017                 * tree-inline.c (insert_decl_map): New.
14018                 (remap_decl, remap_type, remap_block, copy_body_r,
14019                 initialize_inlined_parameters, declare_return_variable,
14020                 remap_save_expr): Use it.
14021
14022         * function.c (copy_body_r): Add mapping from id->ret_label to
14023         id->ret_label.  Revert test for ret_label.
14024
14025 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
14026
14027         * genoutput.c (process_template): Strip trailing whitespace in @
14028         templates and issue a warning if there was any.
14029
14030 2004-02-21  Christopher Faylor  <cgf@redhat.com>
14031
14032         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
14033         object file when targetting cygwin.
14034         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
14035         overridden by top-level Makefile.
14036
14037 2004-02-21  Roger Sayle  <roger@eyesopen.com>
14038
14039         * config/i386/i386.c (standard_80387_constant_p): Also prefer
14040         the x87's load constant instructions when optimizing for size.
14041
14042 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
14043
14044         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
14045         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
14046         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
14047         * fold-const.c: Likewise.
14048         * simplify-rtx.c: Likewise.
14049
14050 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
14051
14052         * combine.c (can_combine_p): Don't ignore SETs marked with
14053         REG_EH_REGION notes.
14054         (try_combine): When attemting to fix unrecognized insns, don't
14055         split a PARALLEL that contains the original i2.
14056
14057 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
14058
14059         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
14060         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
14061         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
14062         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
14063         (vector, pixel, bool): #define to __vector, __pixel and __bool.
14064         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
14065         portion of header.
14066         (__altivec_link_error_invalid_argument): Remove prototype; will use
14067         __builtin_altivec_compiletime_error("vec_*") instead.
14068         (vec_*): Fix/complete set of available operation overloads given the
14069         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
14070         cv-correctness of pointer arguments; in C, always check for correct
14071         argument types before macro expansion.
14072         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
14073         defining Darwin/PowerPC-specific '-f[no-]altivec' and
14074         '-W[no-]altivec-long-deprecated' switches.
14075         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
14076         '__vector', '__pixel' and '__bool' macros using
14077         '__attribute__((altivec(...)))' types.
14078         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
14079         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
14080         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
14081         New type nodes.
14082         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
14083         handling '-W[no-]altivec-long-deprecated'.
14084         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
14085         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
14086         altivec_expand_dst_builtin): Remove casts from integer literals.
14087         (altivec_expand_builtin): Likewise; handle expansion of new
14088         '__builtin_altivec_compiletime_error' function.
14089         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
14090         types, and make them distinct from other vector types; register
14091         '__builtin_altivec_compiletime_error' function.
14092         (print_operand): For 'P', print a full target register name instead of
14093         merely its number.
14094         (rs6000_attribute_table): Add "altivec" attribute.
14095         (rs6000_handle_altivec_attribute): New function.
14096         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
14097         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
14098         maps to).
14099         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
14100         declare.
14101         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
14102
14103 2004-02-20  James E Wilson  <wilson@specifixinc.com>
14104
14105         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
14106         check.
14107         (shift_mix4left+2): Delete redundant pattern.
14108
14109 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
14110
14111         * alias.c (OUTGOING_REGNO): Don't define the default.
14112         * builtins.c (OUTGOING_REGNO): Likewise.
14113         (INCOMING_REGNO): Likewise.
14114         (apply_args_register_offset): Always use OUTGOING_REGNO.
14115         * combine.c (OUTGOING_REGNO): Likewise.
14116         * sibcall.c (OUTGOING_REGNO): Likewise.
14117         * defaults.h (INCOMING_REGNO): Provide the default.
14118         (OUTGOING_REGNO): Likewise.
14119
14120 2004-02-21  Jan Hubicka  <jh@suse.cz>
14121
14122         * params.def (max-peeled-insns, max-completely-peeled-insns,
14123         max-once-peeled-insns): Set to 400.
14124
14125 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14126
14127         PR c++/12007
14128         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
14129         are set for parameters before outputing debugging information.
14130
14131 2004-02-20  Falk Hueffner  <falk@debian.org>
14132
14133         PR target/14201
14134         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
14135         numbers.
14136
14137 2004-02-20  Per Bothner  <per@bothner.com>
14138
14139         * input.h:  Don't #include line-map.h.  It may cause link problems
14140         with undefined linemap_line_start when line-map.h is included but
14141         line-map.o is not linked, as currently happens with gengtype on
14142         compilers that don't support inline.
14143         * toplev.c:  So we do have to explicitly #include line-map.h here.
14144
14145 2004-02-20  Richard Henderson  <rth@redhat.com>
14146
14147         * doc/invoke.texi: Add -Wvariadic-macros.
14148
14149 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
14150
14151         * haifa-sched.c (sched_emit_insn): Remove.
14152         * sched-int.h: Remove the corresponding prototype.
14153
14154 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
14155
14156         Revert:
14157         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14158         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
14159         * system.h (DEFAULT_SHORT_ENUMS): Poison.
14160         * config/cris/cris.h: Remove a comment about
14161         DEFAULT_SHORT_ENUMS.
14162         * config/ip2k/ip2k.h: Likewise.
14163         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
14164
14165 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
14166             Tom Tromey  <tromey@redhat.com>
14167
14168         * doc/install.texi: Moved --disable-libgcj and
14169         --with-system-zlib documentation to new section for
14170         Java-specific options.
14171         Added explicit Cross-Compiler-Specific Options subheading.
14172         Added section for Java-specific options.
14173
14174 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
14175
14176         * doc/install.texi (Building the Ada compiler): Remove
14177         example.
14178
14179 2004-02-20  James E Wilson  <wilson@specifixinc.com>
14180
14181         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
14182
14183 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
14184
14185         * gcc.c (process_command): Allow translation of the copyright
14186         symbol but not the rest of the copyright message.
14187         * gcov.c (print_version): Likewise.  Allow translation of the
14188         message about warranty.
14189
14190 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
14191
14192         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
14193         predicate.
14194         ("*andsi_clear"): Tweak constraints to not match postincrement.
14195         Adjust the predicate to exclude a volatile memory reference.
14196         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
14197         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
14198
14199 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
14200
14201         * move-if-change: Remove.
14202         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
14203         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
14204         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
14205         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
14206         (s-gtyp-gen, s-iov): Use the top level move-if-change.
14207         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
14208
14209 2004-02-19  James E Wilson  <wilson@specifixinc.com>
14210
14211         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
14212         for operand2.  Add condition that requires register_operand operand2
14213         before reload.
14214
14215 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
14216             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
14217
14218         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
14219         * config/mips/mips.md: Expand comment above unaligned loads and stores.
14220
14221 2004-02-19  Richard Henderson  <rth@redhat.com>
14222
14223         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
14224         * tree.c (build0, build1, build2, build3, build4): Split out from...
14225         (build): ... here.  Call them.
14226         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
14227
14228         * convert.c (convert_to_integer): Remove extra build argument.
14229         * tree-inline.c (expand_call_inline): Likewise.
14230
14231 2004-02-19  Richard Henderson  <rth@redhat.com>
14232
14233         * c-opts.c (warn_variadic_macros): New.
14234         (c_common_handle_option): Set it.
14235         (sanitize_cpp_opts): Copy it to cpp_opts.
14236         * c.opt (Wvariadic-macros): New.
14237         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
14238         * cppinit.c (cpp_create_reader): Initialize it.
14239         * cppmacro.c (parse_params): Check it.
14240
14241 2004-02-19  David Daney <ddaney@avtrex.com>
14242
14243         PR preprocessor/14198
14244         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
14245         builtin_assert ("machine=mips")
14246
14247 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14248
14249         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
14250         * system.h (DEFAULT_SHORT_ENUMS): Poison.
14251         * config/cris/cris.h: Remove a comment about
14252         DEFAULT_SHORT_ENUMS.
14253         * config/ip2k/ip2k.h: Likewise.
14254         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
14255
14256 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
14257
14258         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
14259         when passing single SFmode quantities in general registers,
14260         put them in the high half.
14261
14262 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
14263
14264         * doc/md.texi (Standard Names): Document additional dependency on
14265         fix pattern.
14266
14267         * optabs.c (ftruncify): Remove.
14268         (expand_fix): Manually inline ftruncify above.
14269         (can_fix_p): Add FIXME note.
14270
14271 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
14272
14273         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
14274         spe_fixuns_truncsfsi2.
14275
14276         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
14277         fixuns_truncsfsi2.
14278
14279 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
14280
14281         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
14282         * testsuite/gcc.dg/20040219-1.c: New test.
14283
14284 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
14285
14286         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
14287         "*subsf3_cconly"): Subtraction is not commutative.
14288
14289 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
14290
14291         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
14292         (sdbout_symbol): If called before sdbout_init, queue DECL for
14293         later and return.
14294         (sdbout_init): Set sdbout_initialized true, process decls
14295         queued earlier by sdbout_symbol.
14296         (sdbout_finish): Use size_t for index variable.
14297
14298 2004-02-19  Jeff Law  <law@redhat.com>
14299
14300         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
14301         for unordered comparison codes.
14302
14303 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
14304
14305         * reload1.c (reload): Correct comment.
14306         (scan_paradoxical_subregs): Remove #if 0 and old comment.
14307         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
14308         register variables are not used by reload.
14309
14310 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
14311
14312         PR target/14209
14313         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
14314         constraints to not match postincrement.  Adjust the predicate to
14315         exclude a volatile memory reference.
14316
14317 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14318
14319         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
14320
14321 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14322
14323         * hooks.c (hook_void_tree_int): Remove.
14324         (hook_void_constcharptr): Likewise.
14325         (hook_int_void_0): Likewise.
14326         * hooks.h: Remove the prototypes for the above three
14327         functions.
14328         * targhooks.c (hook_bool_machine_mode_true): Remove.
14329         * targhooks.h: Remove the prototype for
14330         hook_bool_machine_mode_true.
14331
14332 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14333
14334         * emit-rtl.c (subreg_realpart_p): Remove.
14335         (reorder_insns_with_line_notes): Likewise.
14336         (end_full_sequence): Likewise.
14337         * rtl.h: Remove the prototype for the above functions.
14338
14339 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14340
14341         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
14342         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
14343         config/iq2000/iq2000.h, config/m32r/m32r.h,
14344         config/pdp11/pdp11.h, config/sparc/sparc.h,
14345         config/xtensa/xtensa.h: Remove commented-out or useless
14346         definitions of CASE_VECTOR_PC_RELATIVE.
14347
14348 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14349
14350         * loop.c (all_sets_invariant_p): Remove.
14351
14352 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
14353
14354         PR target/12916
14355         * config/sparc/sparc.h (NPARM_REGS): Delete.
14356         (BASE_RETURN_VALUE_REG): Likewise.
14357         (BASE_OUTGOING_VALUE_REG): Likewise.
14358         (BASE_PASSING_ARG_REG): Likewise.
14359         (BASE_INCOMING_ARG_REG): Likewise.
14360         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
14361         TARGET_ARCH64, not TARGET_V9.
14362         (function_arg_slotno): Dispatch based on the mode class.
14363         Handle vector modes like floating-point modes.
14364         (function_arg_record_value_1): Handle vector types like
14365         floating-point types.
14366         (function_arg_record_value_2): Likewise.
14367         Calculate regno after mode transformation.
14368         (function_arg): Handle vector modes like floating-point modes.
14369         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
14370         If ARCH64, do not recheck alignment.
14371         (function_arg_pass_by_reference): Reorder the conditions.
14372         (sparc_return_in_memory): Move after function_arg_padding.
14373         Implement calling conventions for vector modes.
14374         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
14375         (function_value): Move scope of 'regbase'.
14376         Implement calling conventions for vector modes.
14377         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
14378         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
14379         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
14380         the argument is passed by reference.
14381         (sparc_type_code): Handle vector types.
14382
14383 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
14384
14385         * function.c (assign_parms): When building decl_rtl for
14386         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
14387
14388 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
14389
14390         * expr.c (is_aligning_offset): Check if we are aligning the
14391         expressions's address over BIGGEST_ALIGNMENT in bytes, not
14392         in bits.
14393
14394 2004-02-18  Matt Austern  <austern@apple.com>
14395
14396         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
14397         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
14398         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
14399         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
14400         spec string.
14401         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
14402
14403 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
14404
14405         * dwarf2out.c (loclabel_num): Move outside #ifdef
14406         DWARF2_DEBUGGING_INFO and mark with GTY(()).
14407         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
14408         Mark with GTY(()).
14409         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
14410         Allocate memory with ggc_alloc.  No need to copy anything.
14411         (ia64_hpux_file_end): Update to match.
14412
14413 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
14414
14415         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
14416         by default.
14417
14418 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
14419
14420         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
14421         ("divmodtisi3"): Likewise.
14422         ("udivmoddi4", "udivmodtidi3"): Likewise.
14423         ("divmodsi4", "divmoddisi3"): Likewise.
14424         ("udivmodsi4", "udivmoddisi3"): Likewise.
14425         ("udivsi3", "umodsi3"): Likewise.
14426
14427 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
14428
14429         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
14430         placeholder insn when chunkifying the pool.
14431
14432 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14433
14434         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
14435         generating PIC code.
14436
14437 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14438
14439         * config/h8300/h8300-protos.h: Add a prototype for
14440         h8300_expand_branch.
14441         * config/h8300/h8300.c (h8300_expand_branch): New.
14442         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
14443         bgtu, beq, bne): Call h8300_expand_branch().
14444
14445 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14446
14447         * config/h8300/h8300-protos.h: Add prototypes for
14448         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
14449         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
14450         (h8300_hard_regno_mode_ok): Likewise.
14451         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
14452         h8300_hard_regno_nregs().
14453         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
14454
14455 2004-02-18  Per Bothner  <per@bothner.com>
14456
14457         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
14458         partly reverts my 2003-10-01 change, because we're back to logically
14459         including <command line> inside the main line.
14460         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
14461         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
14462         Fixes PR preprocessor/14103.
14463
14464         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
14465         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
14466         (cpp_push_include):  Don't need to increment pfile's line field.
14467         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
14468
14469         * c-ppoutput.c (print struct):  New first_time field.
14470         (init_pp_output):  Set print.first_time.
14471         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
14472         which is set also for (say) <command line>.  Clear print.first_time.
14473
14474         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
14475         does not match the code, so fix both.
14476         (should_stack_file):  Inline include_pch_p function.
14477         (include_pch_p):  Remove pointless function.
14478
14479         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
14480
14481 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14482
14483         * config/h8300/h8300.md (four define_peephole2's): Use
14484         h8300_regs_ok_for_stm().
14485
14486 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14487
14488         * config/h8300/h8300-protos.h: Update the prototype for
14489         expand_a_rotate().
14490         * config/h8300/h8300.c (expand_a_rotate): Remove the first
14491         argument.
14492         * config/h8300/h8300.md: Update all callers.
14493
14494 2004-02-18  Jan Hubicka  <jh@suse.cz>
14495
14496         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
14497         floats.
14498         (simplify_binary_operation): Deal with logicals on floats.
14499
14500         * i386.md (SSE fabs splitters): Emit new patterns.
14501         (SSE cmov splitters): Likewise.
14502         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
14503         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
14504         subregs.
14505         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
14506         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
14507
14508 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14509
14510         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
14511         by hand.
14512         (output_a_rotate): Tweak a comment.
14513         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
14514         (*rotlhi3_1): Change to rotlhi3_1.
14515         (*rotlsi3_1): Change to rotlsi3_1.
14516
14517 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
14518
14519         PR target/13866
14520         * arm.c (load_multiple_operation): Don't insist that the source reg
14521         of a post-increment component is the same as the destination.
14522         (store_multiple_operation): Likewise.
14523
14524 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14525
14526         * config/h8300/h8300.md: Move movsf patterns into one section
14527         of the file.
14528
14529 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14530
14531         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
14532         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
14533         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
14534         config/mips/linux64.h, config/pa/pa-64.h,
14535         config/rs6000/aix51.h, config/rs6000/aix52.h,
14536         config/rs6000/spe.md, config/sparc/linux.h,
14537         config/sparc/linux64.h: Update copyright.
14538
14539 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14540
14541         * config/h8300/h8300.md: Move push patterns into one
14542         section of the file.
14543
14544 2004-02-18  Mark Mitchell <mark@codesourcery.com>
14545
14546         PR c++/11326
14547         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
14548         fntype.
14549
14550 2004-02-18  Paul Brook  <paul@codesourcery.com>
14551
14552         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
14553
14554 2004-02-18  Paul Brook  <paul@codesourcery.com>
14555
14556         PR debug/12934
14557         * dwarf2out.c (loc_descriptor_from_tree): Handle
14558         EXPR_WITH_FILE_LOCATION.
14559
14560 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
14561
14562         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
14563         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
14564         trailing whitespace from instructions.
14565
14566 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
14567
14568         * configure.ac: When generating auto-build.h, pass
14569         --enable-languages to the sub-configure.
14570         Put quotes around ${program_transform_name} when generating
14571         name of as, ld, nm, objdump.
14572         * configure: Regenerate.
14573
14574 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
14575
14576         * Makefile.in (s-check, s-config, s-conditions, s-flags)
14577         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
14578         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
14579         (s-preds, s-iov): Do not depend on move-if-change.
14580
14581 2004-02-17  James E Wilson  <wilson@specifixinc.com>
14582
14583         * caller-save.c (insert_restore): Pass mem through copy_rtx.
14584         (insert_save): Likewise.
14585
14586 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14587
14588         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
14589         warning.
14590
14591 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14592
14593         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
14594         *one_cmplsi2_h8300.
14595         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
14596
14597 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14598
14599         * config/h8300/h8300-protos.h: Update the prototype of
14600         fix_bit_operand().
14601         * config/h8300/h8300.c (fix_bit_operand): Remove the second
14602         argument "what".
14603         * config/h8300/h8300.md: Update all callers.
14604
14605 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14606
14607         * config/h8300/h8300.c (fix_bit_operand): Change the name of
14608         the last argument to "code" from "type".
14609
14610 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14611
14612         * config/h8300/h8300.c: Remove an extern declaration of
14613         rtx_equal_function_value_matters.
14614
14615 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14616
14617         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
14618         by hand.
14619         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
14620         (*iorqi3_1): Change to iorqi3_1.
14621         (*xorqi3_1): Change to xorqi3_1.
14622
14623 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14624
14625         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
14626         typos.
14627
14628 2004-02-17  Jan Hubicka  <jh@suse.cz>
14629
14630         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
14631
14632 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
14633
14634         PR optimization/14119
14635         * combine.c (try_combine): When attemting to fix unrecognized insns,
14636         don't delete SETs marked with REG_EH_REGION notes.
14637
14638 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
14639
14640         * combine.c (simplify_if_then_else): Do not replace
14641         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
14642         modes differ.
14643
14644 2004-02017  Steven Bosscher  <stevenb@suse.de>
14645
14646         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
14647         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
14648         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
14649         * ada/utils.c: Likewise.
14650         * cp/decl.c: Likewise.
14651         * f/com.c: Likewise.
14652         * java/class.c: Likewise.
14653
14654 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14655
14656         * config/h8300/h8300.md: Fix comment typos.
14657
14658 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14659
14660         * config/mips/t-iris6gld: Renamed to ...
14661         * config/mips/t-irix-gld: ... this.
14662         * config.gcc (mips-sgi-irix6*): Reflect this
14663         (mips-sgi-irix5*): Use it with GNU ld.
14664
14665         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
14666         to ...
14667         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
14668         * config/mips/t-irix-gld: Reflect this.
14669         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
14670
14671         * config/mips/iris5gld.h: New file.
14672         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
14673         Only use collect2 without gas.
14674
14675         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
14676         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
14677         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
14678         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
14679
14680         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
14681         * config/mips/iris5.h: ... here.
14682
14683         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
14684         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
14685         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
14686
14687         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
14688         using irix_startfile_spec, irix_endfile_spec.
14689
14690 2004-02-16  Gunther Nikl  <gni@gecko.de>
14691
14692         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
14693
14694 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14695
14696         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
14697         insns by hand.
14698
14699 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14700
14701         * cfghooks.c (split_edge): Speed up updating of dominators.
14702
14703 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
14704
14705         PR c++/11326
14706         * c-common.c (flag_abi_version): Remove.
14707         * c-common.h (flag_abi_version): Likewise.
14708         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
14709         * c.opt (fabi-version): Remove.
14710         * calls.c (expand_call): Always pass a function type to
14711         struct_value_rtx.  Use convert_memory_address.
14712         * common.opt (fabi-version): Add it.
14713         * flags.h (flag_abi_version): Likewise.
14714         (abi_version_at_least): New macro.
14715         * opts.c (common_handle_option): Add OPT_fabi_version.
14716         * toplev.c (flag_abi_version): Define it.
14717         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
14718         New function.
14719         (ia64_output_mi_thunk): Use it.
14720         (ia64_struct_value_rtx): Likewise.
14721
14722 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14723
14724         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
14725         Don't generate insns by hand.
14726
14727 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
14728
14729         PR c++/14178
14730         * doc/invoke.texi (fabi-version): The default is 2 now.
14731
14732 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14733
14734         * loop-iv.c: New file.
14735         * Makefile.in (loop-iv.o): New.
14736         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
14737         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
14738         num_loop_branches): New functions.
14739         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
14740         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
14741         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
14742         get_simple_loop_desc, free_simple_loop_desc): Declare.
14743         (simple_loop_desc): New inline function.
14744         (struct rtx_iv, struct niter_desc): New.
14745         * cfgloopmanip.c (loopify): Specify semantics more precisely.
14746         * expr.c (force_operand): Handle subregs of expressions created by
14747         loop unroller.
14748         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
14749         parts of the initialization to toplev.c
14750         * loop-unroll.c (loop_exit_at_end_p): New.
14751         (unroll_and_peel_loops): Call iv_analysis_done.
14752         (decide_peel_once_rolling, decide_peel_completely,
14753         decide_unroll_stupid, decide_unroll_constant_iterations,
14754         decide_unroll_runtime_iterations, decide_peel_simple,
14755         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
14756         unroll_loop_runtime_iterations): Use new simple loop analysis.
14757         * loop-unswitch.c (compare_and_jump_seq): New.
14758         (may_unswitch_on_p): Renamed to ...
14759         (may_unswitch_on): Use new iv analysis.
14760         (reversed_condition): Export.
14761         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
14762         * predict.c (estimate_probability): Use new simple loop analysis.
14763         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
14764         canon_condition, simplify_using_condition): Declare.
14765         * stor-layout.c (get_mode_bounds): New.
14766         * toplev.c (rest_of_handle_loop2): Some parts of
14767         initialization/finalization moved here from loop-init.c.
14768
14769 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14770
14771         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
14772         pointer.
14773         (CALL_USED_REGISTERS): Likewise.
14774         (REG_ALLOC_ORDER): Likewise.
14775         (REG_CLASS) <GENERAL_REGS>: Likewise.
14776
14777 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
14778
14779         * doc/md.texi (Insn Canonicalizations): Document left-chaining
14780         in associative operators.
14781         * rtlanal.c (commutative_operand_precedence): Create some new
14782         variables.  Prefer a commutative operand on the left, then
14783         binary expressions, then NEG and NOT.
14784
14785 2004-02-16  Matthias Klose  <doko@debian.org>
14786
14787         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
14788         in terms of SHLIB_SOVERSION.
14789         * config/m68k/t-slibgcc-elf-ver: New file.
14790         * config/pa/t-slibgcc-elf-ver: New file.
14791         * config.gcc (m68k-linux, parisc-linux): Use them when not
14792         sjlj exceptions are not configured.
14793
14794 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
14795
14796         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
14797
14798 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
14799
14800         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
14801
14802 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
14803
14804         * doc/sourcebuild.texi: Mention backends.html.
14805
14806 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
14807
14808         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
14809         line-map.c, line-map.h, var-tracking.c: Fix comment
14810         formatting.
14811
14812 2004-02-16  Richard Henderson  <rth@redhat.com>
14813
14814         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
14815
14816         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
14817
14818 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
14819
14820         * config/h8300/h8300.md: Remove unnecessary parallels from
14821         all define_insn and define_split patterns.
14822
14823 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
14824
14825         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
14826         "clobber").
14827
14828 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
14829
14830         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
14831         '%#'.
14832
14833 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
14834
14835         * config/ia64/ia64.c, config/mips/mips.c,
14836         config/mmix/mmix-modes.def: Fix comment typos.
14837
14838 2004-02-15  Roger Sayle  <roger@eyesopen.com>
14839
14840         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
14841         (get_directive_line): Remove unused function prototype.
14842
14843 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
14844
14845         * tree-inline.c (copy_body_r): Do not replace ret_label.
14846
14847 2004-02-14  Jan Hubicka  <jh@suse.cz>
14848
14849         * i386.c (x86_four_jump_limit): New variable.
14850         (k8_avoid_jump_misspredicts): Rename to ...
14851         (ix86_avoid_jump_misspredicts): .. this one.
14852         (ix86_pad_returns): Break out from ...
14853         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
14854         to.
14855         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
14856
14857 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
14858
14859         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
14860         PARALLEL is NULL.
14861
14862 2004-02-14  Per Bothner  <per@bothner.com>
14863
14864         * fix-header.c (line_table):  Move local variable in main to global.
14865         * scan.h (line_table):  Use it.
14866         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
14867         line (recently renamed to src_loc) before calling recognized_function.
14868
14869 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
14870
14871         * Makefile.in: Fix comment typos.
14872
14873 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
14874
14875         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
14876         for start_value when it is directly moved into reg, and factorize
14877         the retrieval of GET_MODE (reg).
14878
14879 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
14880
14881         * config/mips/mips-protos.h (mips_load_got_page): Delete.
14882         (mips_load_got_global): Delete.
14883         (mips_gotoff_page): Declare.
14884         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
14885         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
14886         UNSPEC_LOAD_GOT pattern rather than a MEM.
14887         (*load_got[sd]i): New patterns.
14888         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
14889         (mips_load_got_page, mips_load_got_global): Delete.
14890         (mips_gotoff_page): New function.
14891         (override_options): Don't initialize mips_got_alias_set.
14892
14893 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
14894
14895         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
14896         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
14897         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
14898         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
14899         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
14900         * config/mips/mips.c: Fix some overly-long lines.
14901         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
14902         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
14903
14904 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14905
14906         * configure.ac: Search for as, ld below libexec/gcc.
14907         * configure: Regenerate.
14908
14909 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
14910
14911         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
14912         __builtin_arm_setwcx ().
14913         * config/arm/arm.c (arm_expand_builtin): Generate operands
14914         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
14915
14916 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
14917
14918         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
14919         and "wmuluh" to "wmulsm" and "wmulum", respectively.
14920         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
14921         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
14922         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
14923         (_mm_mulhi_pu16): Likewise.
14924
14925 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
14926
14927         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
14928         DECL_NAME != 0 before dereferencing.
14929
14930 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
14931
14932         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
14933         (s390_output_addr_const_extra): Declare.
14934         (s390_output_pool_entry): Remove FILE * argument.
14935         * config/s390/s390.c (s390_output_symbolic_const): Remove.
14936         (s390_output_addr_const_extra): New function.
14937         (print_operand_address): Call output_addr_const instead of
14938         s390_output_symbolic_const.
14939         (print_operand): Likewise.
14940         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
14941         Remove FILE * argument.
14942         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
14943         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
14944         call.
14945
14946 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14947
14948         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
14949         (struct edge, struct vertex, struct graph): New.
14950         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
14951         free_graph): New functions.
14952
14953 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
14954
14955         * config/mips/mips.md (casesi_internal, casesi_internal_di):
14956         Use ".set macro" to avoid warnings about multi-instruction
14957         macros, since they're intentional.
14958
14959 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
14960
14961         * config/darwin.h: Add include guards.  Remove old, now incorrect,
14962         comment about STANDARD_EXEC_PREFIX.
14963
14964         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
14965         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
14966         for installing .1 manpages.  Add rules for installing cpp
14967         and gcov manpages under their installed names.
14968
14969 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
14970
14971         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
14972         host, but try LD_FOR_TARGET first.
14973         * configure: Rebuilt.
14974
14975 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
14976
14977         * dbxout.c: Move declaration of dbxout_type_decl outside
14978         #ifdef DBX_DEBUGGING_INFO.
14979         * c-parse.in: Don't give the asmdef production a type.
14980
14981 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
14982
14983         * debug.h (struct gcc_debug_hooks): Add type_decl field.
14984         (debug_nothing_tree_int): Prototype.
14985         (dwarf_debug_hooks): Delete, unused.
14986         * debug.c (do_nothing_debug_hooks): Update.
14987         (debug_nothing_tree_int): New function.
14988         * langhooks.h (struct lang_hooks_for_decls):
14989         Remove builtin_type_decls field.
14990         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
14991         (LANG_HOOKS_DECLS): Update.
14992         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
14993         Use debug_hooks->type_decl.
14994         * dbxout.c (preinit_symbols): New static.
14995         (dbx_debug_hooks, xcoff_debug_hooks): Update.
14996         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
14997         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
14998         for symbols to output.
14999         (dbxout_type_decl): New function.
15000         (dbxout_symbol): If called before dbxout_init has run, queue
15001         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
15002         to TYPE_DECLs before emitting them.
15003         * xcoffout.c (assign_type_number): Delete.
15004         (xcoff_type_numbers): New static table.
15005         (xcoff_assign_fundamental_type_number): New function.
15006         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
15007         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
15008         * sdbout.c: Include varray.h.
15009         (deferred_global_decls): New static.
15010         (sdb_debug_hooks): Update.
15011         (sdbout_global_decl): If we can't emit something right now,
15012         remember it in deferred_global_decls.
15013         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
15014         (sdbout_init): Initialize deferred_global_decls.
15015         * Makefile.in: Update dependencies of sdbout.o.
15016         * dwarf2out.c (dwarf2out_type_decl): New function.
15017         (dwarf2_debug_hooks): Update.
15018         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
15019         * c-decl.c (getdecls): Just return 0.
15020         (check_for_loop_decls): Don't use getdecls.
15021         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
15022         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
15023
15024 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
15025
15026         * config/s390/s390.c (s390_sched_reorder2): Remove.
15027         (TARGET_SCHED_REORDER2): Do not redefine.
15028
15029 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
15030
15031         * c-parse.in (maybe_type_qual): Delete.
15032         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
15033         (asm_argument): New grammar rules.
15034         (extdef_1): Use asmdef.
15035         (maybeasm): Move down with other asm rules; use simple_asm_expr.
15036         (xexpr): Move up with other expression rules.
15037         (stmt): Use asm_stmt.
15038
15039         * c-typeck.c (build_asm_expr): New function - body mostly
15040         pulled from build_asm_stmt.
15041         (build_asm_stmt): Just handle tacking on the volatile qualifier.
15042         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
15043
15044 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
15045
15046         PR bootstrap/13617
15047         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
15048         (mips_declare_object): Make variadic.
15049         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
15050         mips_output_aligned_decl_common.
15051         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
15052         (mips_declare_object): Make variadic.
15053
15054 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15055
15056         * function.c (update_epilogue_consts): Teach about binary operations.
15057
15058         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
15059         previous MEM_VOLATILE in REF.
15060         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
15061         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
15062
15063 2004-02-12  Gunther Nikl  <gni@gecko.de>
15064
15065         * config.gcc: Restore support for m68k-openbsd.
15066
15067 2004-02-12  Jan Hubicka  <jh@suse.cz>
15068
15069         * tree-optimize.c (tree_rest_of_compilation): Do not release
15070         DECL_ARGUMENTS.
15071
15072 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
15073
15074         * doc/install.texi: Fix the spelling of "explicitly".
15075
15076 2004-02-11  Eric Christopher  <echristo@redhat.com>
15077
15078         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
15079         duplicate argument structure of cpp_interpret_string.
15080         * cpphash.h: Move prototype...
15081         * cpplib.h: Here.
15082         * cpplib.c: Fix calls to match new function signature.
15083
15084 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
15085
15086         PR c/456
15087         * cppexp.c (num_binary_op): Don't allow comma operators in #if
15088         constant expressions at all outside C99 mode if pedantic.
15089
15090 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
15091
15092         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
15093         (log10_optab, log2_optab): Define corresponding macros.
15094         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
15095         * genopinit.c (optabs): Implement log10_optab and log2_optab
15096         using log10?f2 and log2?f2 patterns.
15097         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
15098         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
15099         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
15100         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
15101
15102         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
15103         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
15104         log2, log2f and log2l built-ins as inline x87 intrinsics.
15105
15106 2004-02-11  Richard Henderson  <rth@redhat.com>
15107
15108         PR target/1532
15109         * flow.c (insn_dead_p): A clobber of a dead hard register is a
15110         dead insn after reload.
15111
15112 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
15113
15114         * tree.h (frame_base_decl): Add GTY marker.
15115         * var-tracking.c (frame_base_decl): Likewise.
15116
15117 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
15118
15119         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
15120         incorrect, hunk.
15121         (add_location_or_const_value_attribute): Use text_section_label,
15122         not TEXT_SECTION_NAME.
15123
15124 2004-02-11  Per Bothner  <per@bothner.com>
15125
15126         Represent column numbers using line-map's source_location.
15127         The "next available source_location" is now managed internally by
15128         line-maps.c rather than by clients.
15129         * line-map.h (struct line_map):  New field column_bits.
15130         <from_line>:  Rename field to start_location.
15131         (struct line_maps):  New fields highest_location and max_column_hint.
15132         (linemap_check_files_exited):  New declaration.
15133         (linemap_line_start):  New declaration.
15134         (linemap_add):  Remove from_line parameter; use highest_location field.
15135         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
15136         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
15137         (CURRENT_LINE_MAP):  Remove macro.
15138         (linemap_position_for_column):  New inline function.
15139         * line-map.c (linemap_init):  Clear new fields.
15140         (linemap_check_files_exited):  New function, extracted from ...
15141         (linemap_free):  Use linemap_check_files_exited.
15142         (linemap_add):  Remove from_line parameter.  Various updates.
15143         (linemap_line_start):  New function.
15144         (linemap_lookeup):  Update for new field names.
15145         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
15146         linemap_position_for_column may unpredictably change the current map,
15147         it is cleaner and simpler for us to not cache it in cpp_reader.
15148         (struct cpp_buffer):  New sysp field.
15149         Changed warned_cplusplus_comments and from_stage3 to bitfields.
15150         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
15151         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
15152         current map using linemap_lookup.
15153         (do_linemarker):  Also set buffer's sysp field.
15154         (destringize_and_run):  No longer need to decrement current line.
15155         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
15156         (search_path_head, open_file_failed):  Use buffer's sysp.
15157         (cpp_make_system_header):  Get current map using linemap_lookup.
15158         Also set buffer's sysp flag.
15159         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
15160         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
15161         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
15162         (struct cpp_reader):  ... and adding saved_line_base field.
15163         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
15164         Update accordingly.  Don't adjust line.
15165         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
15166         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
15167         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
15168         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
15169         * cpplex.c (_cpp_lex_direct):  Likewise.
15170         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
15171         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
15172         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
15173         Remove col field as it is now subsumed by src_loc.
15174         * cpperror.c:  Update various field, parameter, and macro names.
15175         (print_location):  If col==0, try SOURCE_COLUMN of line.
15176         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
15177         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
15178         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
15179         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
15180         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
15181         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
15182         (_cpp_lex_direct):  Use linemap_position_for_column.
15183         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
15184         parameter.  Instead get it from the line_table global.  Adjust callers.
15185         (print):  Remove map field.  Replace line field to src_line.
15186         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
15187         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
15188         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
15189         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
15190         * cpptrad.c (copy_comment):  Rename variable.
15191         * c-lex.c (map):  Remove static variable, for same reason we removed
15192         cpp_reader's map field.
15193         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
15194         to call linemap_lookup.
15195         (cb_line_change):  Token's line field replaced by src_loc.
15196         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
15197         Don't save new_map.
15198
15199         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
15200         source_location.
15201
15202 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
15203
15204         * config/rs6000/altivec.md (*movv4si_internal): At least one
15205         operand must be register_operand.
15206         (*movv8hi_internal1): Likewise.
15207         (*movv16qi_internal1): Likewise.
15208         (*movv4sf_internal1): Likewise.
15209
15210 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
15211
15212         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
15213         operand.
15214         (movv4hi_internal): Same.
15215         (movv2sf_internal): Same.
15216         (movv1di_internal): Same.
15217
15218 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
15219
15220         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
15221         TARGET_OLDABI consistently.
15222         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
15223         mips_va_arg,override_options,compute_frame_size,
15224         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
15225         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
15226         and TARGET_OLDABI consistently.
15227         * config/mips/mips.md (exception_receiver): Likewise.
15228         * config/mips/linux64.h: Likewise.
15229
15230 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
15231
15232         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
15233         Set AltiVec ABI and vrsave as default for ppc64 linux.
15234         (init_cumulative_args): Post error, if try to return
15235         value in AltiVec register without enable AltiVec.
15236         (function_arg_advance): Ditto for passing arguments.
15237
15238 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
15239
15240         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
15241         a label before updating its usage count.
15242
15243 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
15244
15245         * doc/install.texi: Remove extra cd.
15246
15247 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
15248
15249         * c-common.c (vector_size_helper): Remove; call
15250         reconstruct_complex_type() instead.
15251         * tree.c (reconstruct_complex_type): New function
15252         (formerly vector_size_helper() in c-common.c).
15253         (make_vector): Make externally visible.
15254         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
15255
15256 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
15257
15258         * config/h8300/h8300-protos.h: Add a prototype for
15259         h8300_regs_ok_for_stm.
15260         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
15261         * config/h8300/h8300.md (stm_h8300s_2_advanced,
15262         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
15263         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
15264         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
15265         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
15266         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
15267         ldm_h8300s_4_normal, ldm_h8300s_4): Use
15268         h8300_regs_ok_for_stm().
15269
15270 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
15271
15272         PR c/14088
15273         * real.c (real_from_string): Look for 'X' as well as 'x' in
15274         hexfloat strings.
15275
15276 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
15277
15278         * config/h8300/h8300.md: Remove an incorrect comment about
15279         peephole2.  Add comments.
15280
15281 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
15282
15283         PR/14058
15284         * emit-rtl.c (set_decl_incoming_rtl): New.
15285         * tree.h (set_decl_incoming_rtl): New.
15286         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
15287         DECL_INCOMING_RTL.
15288         * ada/misc.c (adjust_decl_rtl): Likewise.
15289
15290 2004-02-10  Per Bothner  <per@bothner.com>
15291
15292         * c-opts.c (c_common_post_options):   Don't emit working directory
15293         in cpp output if -P was specified.
15294
15295 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
15296
15297         PR c/14092
15298         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
15299         negate_expr back to the original type.
15300
15301 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
15302
15303         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
15304         bump retaddr here.
15305
15306 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
15307
15308         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
15309         gen_lowpart_SUBREG): Move under the file in which they
15310         are actually declared.
15311
15312 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
15313
15314         * doc/sourcebuild.texi: Add libada documentation.
15315
15316         * doc/install.texi: Update documentation on Ada build, now
15317         that the GNAT lib and tools are built automatically.
15318
15319 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
15320
15321         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
15322         && TARGET_IRIX.
15323
15324 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
15325
15326         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
15327         boundaries outside build_component_ref() call (a macro in ObjC++).
15328
15329 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
15330
15331         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
15332         (init_cumulative_args): Likewise.
15333         (a7_overlap_mentioned_p): Delete prototype.
15334         * config/xtensa/xtensa.c (struct machine_function): Replace
15335         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
15336         Add set_frame_ptr_insn field.
15337         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
15338         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
15339         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
15340         at the function entry and replace the operand with the pseudo.
15341         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
15342         argument and record this flag in CUMULATIVE_ARGS.
15343         (function_arg): Remove result_mode and special-case code to handle
15344         arguments in a7.  Instead, set need_a7_copy flag when there is an
15345         incoming argument in a7.
15346         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
15347         and use the value recorded in cfun->machine->set_frame_ptr_insn.
15348         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
15349         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
15350         special-case code.
15351         (a7_overlap_mentioned_p): Delete.
15352         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
15353         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
15354         arguments to init_cumulative_args and pass "incoming" flag instead.
15355         (BLOCK_REG_PADDING): Delete.
15356         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
15357         checks for reload_in_progress and reload_completed.  Update calls to
15358         xtensa_copy_incoming_a7.
15359         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
15360         to call xtensa_copy_incoming_a7.
15361
15362 2004-02-09  DJ Delorie  <dj@redhat.com>
15363
15364         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
15365         longer modify standard_exec_prefix, standard_bindir_prefix, or
15366         standard_startfile_prefix.
15367
15368 2004-02-09  James E Wilson  <wilson@specifixinc.com>
15369
15370         PR c++/11295
15371         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
15372         to expand_expr_real call, and pass in alt_rtl as last argument.
15373
15374         PR libstdc++/5625
15375         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
15376         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
15377         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
15378         * except.c (expand_builtin_extend_pointer): New.
15379         * except.h (expand_builtin_extend_pointer): Declare.
15380
15381 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
15382
15383         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
15384         unaligned loads and stores.
15385
15386 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15387
15388         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
15389         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
15390
15391         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
15392         * config/mips/iris5.h: ... here.
15393         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
15394
15395         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
15396         * config/mips/iris5.h: ... here.
15397
15398 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15399
15400         * configure.ac: Remove default executable files before AC_PROG_CC.
15401         * configure: Regenerate.
15402
15403 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
15404
15405         PR target/13721
15406         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
15407         print a operand other than a register.
15408
15409 2004-02-09  Roger Sayle  <roger@eyesopen.com>
15410
15411         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
15412         tree code rather than call fold_convert, which doesn't specify a
15413         default floating point to integer conversion.
15414
15415 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
15416
15417         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
15418         code to support SGS assembler.  Reformat adjacent code where possible.
15419         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
15420         definition.
15421         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
15422         for '%#'.
15423         * config/m68k/linux.h, config/m68k/m68k.c,
15424         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
15425         macros and asm_printf() format strings.
15426         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
15427         * config/m68k/linux.h: Update copyright.
15428         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
15429
15430 2004-02-08  Andreas Schwab  <schwab@suse.de>
15431             Bernardo Innocenti  <bernie@develer.com>
15432
15433         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
15434         REGISTER_PREFIX.
15435         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
15436         frame pointer register, overridable by OS targets.
15437         * (M68K_REGNAME): Macro to obtain register name for asm output,
15438         eventually replacing %a6 with M68K_FP_REG_NAME.
15439         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
15440         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
15441         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
15442         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
15443         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
15444
15445 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
15446
15447         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
15448         hook_rtx_tree_int_null.
15449         * targhooks.c (default_struct_value_rtx): Remove.
15450         * targhooks.h: Remove the prototype for
15451         default_struct_value_rtx.
15452         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
15453         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
15454         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
15455         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
15456         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
15457         config/rs6000/rs6000.c, config/s390/s390.c,
15458         config/stormy16/stormy16.c, config/v850/v850.c,
15459         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
15460         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
15461
15462 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
15463
15464         * README.Portability: Change "ISO C89" to "ISO C90".
15465         * c-parse.in (primary, initelt): Likewise.
15466
15467 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
15468
15469         * real.c (encode_ibm_extended): Normalize the input value before
15470         converting it to a double.  Handle the case where a normal value
15471         rounds to infinity.
15472
15473 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
15474
15475         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
15476         warning.
15477         * cse.c (preferrable): Change to preferable. Update all of its
15478         callers.
15479         * genautomata.c (ainsn): Change
15480         first_ainsn_with_given_equialence_num to
15481         first_ainsn_with_given_equivalence_num.  Update all of its
15482         references.
15483
15484 2004-02-08  Jan Hubicka  <jh@suse.cz>
15485
15486         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
15487
15488 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
15489
15490         * function.c (assign_parms): Fix formatting.
15491
15492 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
15493
15494         * default.h (PROMOTE_PROTOTYPES): Remove.
15495         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
15496         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
15497         EXPAND_BUILTIN_SAVEREGS): Poison.
15498         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
15499         hook_bool_tree_false.
15500         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15501         * target.h: Replace SETUP_INCOMING_VARARGS with
15502         targetm.calls.setup_incoming_varargs().
15503         * targhooks.c (default_promote_function_return): Remove.
15504         (default_promote_prototypes): Likewise.
15505         (default_struct_value_rtx): Always abort().
15506         (default_expand_builtin_saveregs): Always print an error
15507         message.
15508         (default_setup_incoming_varargs): Do nothing.
15509         (default_pretend_outgoing_varargs_named): Don't depend on
15510         SETUP_INCOMING_VARARGS.
15511         * targhooks.h: Remove the prototype for
15512         default_promote_function_return and
15513         default_promote_prototypes.
15514
15515 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
15516
15517         * system.h (SHARED_SECTION_ASM_OP): Poison.
15518         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
15519         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
15520
15521 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
15522
15523         Bug 13856
15524         * c-decl.c (diagnose_mismatched_decls): Only give special
15525         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
15526         is also true.
15527         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
15528         DECL_FUNCTION_CODE when defining a built-in function.
15529         Don't update DECL_ESTIMATED_INSNS.
15530         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
15531         FUNCTION_DECLs.
15532         * tree.h: Delete DECL_ESTIMATED_INSNS.
15533         * tree-inline.c (struct inline_data): Delete inlined_insns field.
15534         (expand_call_inline, optimize_inline_calls): Don't update
15535         DECL_ESTIMATED_INSNS nor inlined_insns.
15536         * cgraphunit.c (cgraph_analyze_function): Don't update
15537         DECL_ESTIMATED_INSNS.
15538
15539 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
15540
15541         * c-common.c (shadow_warning): Delete.
15542         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
15543         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
15544         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
15545         * c-parse.in (free_parser_stacks): Delete.
15546
15547 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
15548
15549         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
15550         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
15551         Use the top level mkinstalldirs, not the one in the gcc subdir.
15552         * mkinstalldirs: Remove (from the gcc subdir).
15553
15554 2004-02-07  Roger Sayle  <roger@eyesopen.com>
15555
15556         PR middle-end/13696
15557         * fold-const.c (fold_convert): New function to provide type
15558         conversion to the middle-end without using convert.
15559         (negate_expr, associate_trees, size_diffop, omit_one_operand,
15560         operand_equal_for_comparison_p, pedantic_omit_one_operand,
15561         invert_truthvalue, optimize_bit_field_compare, range_binop,
15562         decode_field_reference, make_range, build_range_check, unextend,
15563         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
15564         fold_binary_op_with_conditional_arg, fold_inf_compare,
15565         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
15566         convert with calls to fold_convert.
15567
15568 2004-02-07  Jan Hubicka  <jh@suse.cz>
15569
15570         * genrecog.c (find_operand): add extra argument stop.
15571         (validate_pattern): Verify that mach_dup is duplicating operand
15572         defined lexically earlier.
15573
15574 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
15575
15576         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
15577         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
15578         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
15579         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
15580         config/ia64/ia64.h, config/ip2k/ip2k.h,
15581         config/iq2000/iq2000.h, config/mips/iris5.h,
15582         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
15583         config/rs6000/aix51.h, config/rs6000/aix52.h,
15584         config/rs6000/darwin.h, config/rs6000/rs6000.h,
15585         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
15586         config/sparc/linux.h, config/sparc/linux64.h,
15587         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
15588         config/xtensa/xtensa.h: Remove the definitions of
15589         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
15590         MAX_WCHAR_TYPE_SIZE.
15591         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
15592         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
15593
15594 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
15595
15596         PR bootstrap/13990
15597         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
15598         gen_rtx_NE.
15599
15600 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
15601
15602         * var-tracking.c (vt_add_function_parameters): Surround checkings by
15603         #ifdef ENABLE_CHECKING and #endif.
15604
15605 2004-02-07  Roger Sayle  <roger@eyesopen.com>
15606
15607         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
15608         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
15609         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
15610         integer types and floating point with unsafe_math_optimizations.
15611         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
15612         Optimize A - B as A + (-B), if B is easily negated.
15613
15614 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
15615
15616         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
15617         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
15618         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
15619         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
15620         Update copyright.
15621
15622 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
15623
15624         * c-ppoutput.c, var-tracking.c: Fix comment typos.
15625
15626 2004-02-06  James E Wilson  <wilson@specifixinc.com>
15627
15628         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
15629         glibc 2.3 or better.
15630
15631 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15632
15633         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
15634         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
15635
15636 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
15637
15638         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
15639         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
15640         (SHLIB_MKMAP_OPTS): Delete.
15641         (TARGET_LIBGCC2_CFLAGS): Add -specs.
15642         (bispecs): Add rule.
15643         * config/rs6000/libgcc-ppc64.ver: New file.
15644         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
15645         (__floatdidf, __floatdisf): Optimize multiply.
15646         (__fixunstfdi): New function.
15647         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
15648         real and imag parts larger than one register.
15649         (function_arg): Correct type of reg used when fp arg split partially
15650         to stack.
15651         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
15652         and __MACH__ or __powerpc64__.
15653
15654 2004-02-06  Roger Sayle  <roger@eyesopen.com>
15655             Ulrich Weigand  <uweigand@de.ibm.com>
15656
15657         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
15658         of gen_highpart or gen_lowpart when the floating point format is
15659         wider than the result mode.
15660
15661 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
15662
15663         * dwarf2out.c (loclabel_num): Move into #ifdef
15664         DWARF2_DEBUGGING_INFO.
15665
15666 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
15667
15668         * objc/objc-act.c (build_super_template) the 'class' field of
15669         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
15670         (get_super_receiver): Likewise.
15671
15672 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15673
15674         * reload1.c (check_eliminable_occurrences): Optimize the reset
15675         of can_eliminate.
15676         (eliminate_regs_in_insn): Likewise.
15677
15678 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
15679             Josef Zlomek  <zlomekj@suse.cz>
15680
15681         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
15682         at the beginning of function, call dwarf2out_var_location for
15683         NOTE_INSN_VAR_LOCATION note.
15684         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
15685         decl_loc_table): New.
15686         (lookup_decl_loc): New function.
15687         (add_var_loc_to_decl): New function.
15688         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
15689         only if can_use_fbreg.
15690         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
15691         functions.
15692         (loc_descriptor): Likewise. Process VAR_LOCATION.
15693         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
15694         (loc_descriptor_from_tree): Call mem_loc_descriptor with
15695         can_use_fbreg == true.
15696         (add_location_or_const_value_attribute): Added parameter enum
15697         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
15698         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
15699         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
15700         with attr == DW_AT_location.
15701         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
15702         if frame_base_decl is defined and has a location list.
15703         (gen_variable_die): Call add_location_or_const_value_attribute with
15704         attr == DW_AT_location.
15705         (dwarf2out_var_location): New function.
15706         (dwarf2out_begin_function): New function.
15707         (dwarf2out_init): Create decl_loc_table.
15708
15709 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
15710
15711         * loop.c (force_movables): Transitively increase the priorities of
15712         all insns forces by an insn, not just the first one.
15713
15714 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
15715             Daniel Berlin <dberlin@dberlin.org>
15716
15717         Josef Zlomek  <zlomekj@suse.cz>
15718         * Makefile.in (var-tracking.o): New.
15719         * common.opt (fvar-tracking): New.
15720         * flags.h (flag_var_tracking): New.
15721         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
15722         * opts.c (common_handle_option): Add OPT_fvar_tracking.
15723         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
15724         * rtl.c (note_insn_name): Likewise.
15725         * rtl.def (VAR_LOCATION): New.
15726         * rtl.h (NOTE_VAR_LOCATION): New.
15727         (NOTE_VAR_LOCATION_DECL): New.
15728         (NOTE_VAR_LOCATION_LOC): New.
15729         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
15730         (variable_tracking_main): New exported function.
15731         * timevar.def (TV_VAR_TRACKING): New.
15732         * toplev.c (enum dump_file_index): Added DFI_vartrack.
15733         (dump_file): "vartrack" was added (-dV).
15734         (flag_var_tracking): New.
15735         (f_options): "var-tracking" was added.
15736         (rest_of_handle_variable_tracking): New function.
15737         (rest_of_compilation): Run variable tracking.
15738         (process_options): If user has not specified flag_var_tracking set it
15739         according to optimize, debug_info_level and debug_hooks.
15740         * tree.h (frame_base_decl): New.
15741         * var-tracking.c: New file.
15742         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
15743         (ia64_override_options): Set flags to run variable tracking in machine
15744         dependent reorg instead of toplev.c.
15745         (ia64_reorg): Run variable tracking if wanted.
15746         * doc/invoke.texi: Mention variable tracking in -dV,
15747         add and -fvar-tracking.
15748         * doc/passes.texi: Added variable tracking pass.
15749
15750         Daniel Berlin <dberlin@dberlin.org>
15751         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
15752         * dbxout.c (dbx_debug_hooks): Likewise.
15753         (xcoff_debug): Likewise.
15754         * debug.c (do_nothing_debug_hooks): Likewise.
15755         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
15756         * dwarfout.c (dwarf_debug_hooks): Likewise.
15757         * sdbout.c (sdb_debug_hooks): Likewise.
15758         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
15759         * final.c (final_scan_insn): Call var_location debug hook for each
15760         NOTE_INSN_VAR_LOCATION.
15761
15762 2004-02-06  Jan Hubicka  <jh@suse.cz>
15763
15764         * flow.c (update_life_info): Allocate reg_deaths when called from
15765         scheudler.
15766         (attempt_auto_inc):  Update life ranges accordingly.
15767
15768 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
15769
15770         PR debug/11816
15771         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
15772
15773 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
15774
15775         * cfganal.c (flow_call_edges_add): Never split a libcall block.
15776
15777 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
15778
15779         * dwarf2out.c (output_loc_list): Don't use deltas if we have
15780         a separate line info table in use.
15781         Use the correct size for terminators.
15782         (output_die): Use offset, not delta.
15783
15784 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
15785
15786         * doc/invoke.texi: Remove the pni option from -mfpmath=.
15787
15788 2004-02-06  Jan Hubicka  <jh@suse.cz>
15789
15790         * recog.c (split_all_insns): Do not update reg info.
15791         * regrename.c (regrename_optimize): Likewise.
15792         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
15793         * flow.c (struct propagate_block_info): Add insn_num field.
15794         (reg_deaths): New array.
15795         (life_analysis): Free reg_deaths info.
15796         (allocate_reg_life_data): Allocate reg_deaths array.
15797         (propagate_one_insn): Use new array.
15798         (init_propagate_block): Initialize it.
15799         (free_propagate_block_info): Finish compuation of
15800         REG_LIVE_LENGTH
15801         (attempt_auto_inc): Sanity check that REG_INFO is not
15802         computed at same time.
15803         (mark_used_regs): Update new array.
15804
15805         * reg-stack.c (subst_stack_regs): Unshare clobbers before
15806         substitution.
15807
15808 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15809
15810         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
15811         *extendqisi2_short_displ.
15812
15813 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
15814
15815         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
15816         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
15817         (emit_library_call_value_1): Likewise pass nargs.
15818         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
15819         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
15820         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
15821         parameter instead of scanning TYPE_ARGS_TYPES to count args.
15822         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
15823         prototype.
15824         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
15825         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
15826         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
15827         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
15828         INIT_CUMULATIVE_ARGS.
15829         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
15830         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
15831         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
15832         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
15833         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
15834         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
15835         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
15836         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
15837         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
15838         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
15839         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
15840         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
15841
15842 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15843
15844         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
15845         possible.
15846
15847 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15848
15849         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
15850         note containing (plus (reg) (const_int)), where reg is an
15851         eliminable reg, then perform the register elimination without
15852         depending on eliminate_regs().
15853
15854 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15855
15856         * config/arc/arc.c (arc_return_in_memory): Check the return
15857         value of int_size_in_bytes against -1.  Don't check
15858         TREE_ADDRESSABLE.
15859         * config/avr/avr.c (avr_return_in_memory): Check the return
15860         value of int_size_in_bytes against -1.
15861         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
15862         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
15863         Likewise.
15864         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
15865         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
15866         Likewise.
15867
15868 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15869
15870         * config/frv/frv-protos.h: Remove the prototype for
15871         frv_setup_incoming_varargs.
15872         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
15873         (frv_setup_incoming_varargs): Make it static.
15874         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
15875
15876 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15877
15878         * config/fr30/fr30-protos.h: Remove the prototype for
15879         fr30_setup_incoming_varargs.
15880         Update the prototypes for fr30_num_arg_regs and
15881         fr30_function_arg_partial_nregs.
15882         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
15883         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15884         (fr30_setup_incoming_varargs): Make it static.
15885         Add argument second_time.  Don't do anything when second_time
15886         is nonzero.
15887         (fr30_num_arg_regs): Change the type of the first argument to
15888         enum machine_mode.
15889         (fr30_function_arg_partial_nregs): Change the type of the
15890         second argument to enum machine_mode.
15891         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
15892         (SETUP_INCOMING_VARARGS): Remove.
15893
15894 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15895
15896         * config/arc/arc-protos.h: Remove the prototype for
15897         arc_setup_incoming_varargs.
15898         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15899         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15900         (arc_setup_incoming_varargs): Make it static.
15901         (arc_external_libcall): Likewise.
15902         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
15903         Remove the commented-out definition of
15904         ASM_OUTPUT_EXTERNAL_LIBCALL.
15905
15906 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
15907
15908         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
15909         to $$(slibdir) in the installation commands.
15910
15911 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
15912
15913         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
15914         with inner_regno, not regno.
15915         * rtlanal.c (refers_to_regno_p): Same.
15916
15917 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
15918
15919         * config.gcc: Remove i370 support.
15920
15921 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
15922
15923         * doc/install.texi:  Update automake and autoconf version
15924         requirements.  Note where to find gcj automake version.
15925
15926 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
15927
15928         * Makefile.in (generate-manpages): Move dependencies to ...
15929         (man): here.
15930         * doc/makefile.texi: Document new targets.
15931         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
15932
15933 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
15934
15935         PR/13485
15936         Makefile.in (srcextra):  Add a level of indirection to ...
15937         (gcc.srcextra): ... here.
15938         (po-generated): Delete.
15939         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
15940         options.c.
15941         (start.encap): Remove superfluous lang.srcextra dependency.
15942         objc/Make-lang.in (po-generated):  Delete.
15943
15944 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
15945
15946         * config/ia64/ia64.c (REG_GP): Remove.
15947
15948 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15949
15950         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
15951
15952 2004-02-05  Devang Patel  <dpatel@apple.com>
15953
15954         * dwarf2out.c (force_type_die): Look up input type itself
15955         instead of root_type() of type.
15956
15957 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
15958
15959         * config/s390/s390.md ("*tmqidi_ext"): New insn.
15960         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
15961         pre-reload splitters are transformed to post-reload
15962         define_insn_and_split patterns.
15963         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
15964
15965 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
15966
15967         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
15968         TARGET_PROMOTE_PROTOTYPES.
15969
15970 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15971
15972         PR middle-end/13750
15973         Revert:
15974         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
15975         PR pch/13361
15976         * c-typeck.c (constructor_asmspec): Delete.
15977         (struct initializer_stack): Delete field 'asmspec'.
15978         (start_init): Delete saving of asmspec.
15979         (finish_init): Don't update constructor_asmspec.
15980         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
15981         * stmt.c (expand_asm): Duplicate strings from tree.
15982         (expand_asm_operands): Likewise.
15983         * tree.c (tree_size): Update computation of size of STRING_CST.
15984         (make_node): Don't make STRING_CST nodes.
15985         (build_string): Allocate string with tree node.
15986         * tree.def (STRING_CST): Update comment.
15987         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
15988         (tree_string): Place contents of string in tree node.
15989         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
15990         from tree.
15991
15992 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
15993
15994         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
15995         msgid.
15996
15997 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
15998
15999         * config/rs6000/altivec.md (*movv4si_internal): At least one
16000         operand must be altivec_register_operand.
16001         (*movv8hi_internal1): Likewise.
16002         (*movv16qi_internal1): Likewise.
16003         (*movv4sf_internal1): Likewise.
16004
16005 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
16006
16007         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
16008         * configure: Regenerate.
16009
16010 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
16011
16012         * doc/install.texi: Update description of --gxx-include-dir to
16013         give correct default value.
16014
16015 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
16016
16017         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
16018         8 with MAC_REG.
16019
16020 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
16021
16022         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
16023         gen_rtx_PARALLEL.
16024
16025 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
16026
16027         * emit-rtl.c: Update the comment about the file.
16028
16029 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
16030
16031         * sourcebuild.texi (Test Idioms): Update testcase naming
16032         conventions.
16033
16034 2004-02-04  Per Bothner  <per@bothner.com>
16035
16036         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
16037         * c-ppoutput.c (pp_dir_change):  New function.
16038         * c-common.h (pp_dir_change):  New declaration.
16039         * cpplib.h (struct cpp_options):  Remove working_directory field.
16040         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
16041         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
16042         Don't handle -fworking_directory here, but in c_common_post_options.
16043         (read_original_directory): Don't back up when done.
16044         Don't clear no-longer used working_directory flag.
16045         * cpplib.h:  Update declarations to match.
16046         * c-lex.c (cb_dir_change):  Move to c-opts.c.
16047         (init_c_lex):  Don't set dir_change callback here, since we want
16048         to set it even if flag_preprocess_only.
16049         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
16050         (c_common_post_options):  Set dir_change callback.
16051         Call pp_dir_change if approporiate.
16052         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
16053         unneeded parameter and result. Do LC_RENAME for <built-in>.
16054         (c_common_post_options):  Call cpp_read_main_file here instead.
16055         (c_common_init):  Update accordingly.
16056         (push_command_line_include):  Don't cpp_push_main_file.
16057         Do LC_RENAME rather than LC_LEASE to get back to main file.
16058         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
16059         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
16060         files, but call finish_options for all files.
16061         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
16062         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
16063         cpp_find_main_file + cpp_push_main_file.
16064         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
16065         * opts.c (handle_options):  Only set main_input_filename first time.
16066
16067 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
16068
16069         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
16070
16071 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
16072
16073         * reload.c (find_equiv_reg): When checking for register overlap,
16074         don't index hard_regno_nregs with a pseudo-reg.
16075
16076 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
16077
16078         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
16079
16080 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
16081
16082         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
16083         against FIRST_PSEUDO_REGISTER.
16084
16085 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16086
16087         * Makefile.in: Move target, host overrides after per-language
16088         fragments.
16089
16090         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
16091         (GNATLIBCFLAGS): Remove -g.
16092
16093 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16094
16095         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
16096         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
16097         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
16098         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
16099         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
16100         config/sparc/sparc.c, config/vax/vax.c: Revert the
16101         replacements of "FALLTHRU" with "Fall through" done in the
16102         previous patch.
16103
16104 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16105
16106         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
16107         config/arm/arm.c, config/arm/arm.md,
16108         config/cris/cris-protos.h, config/fr30/fr30.c,
16109         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
16110         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
16111         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
16112         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
16113         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
16114         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
16115         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
16116         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
16117         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
16118         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
16119         config/s390/s390.md, config/sparc/netbsd-elf.h,
16120         config/sparc/openbsd.h, config/sparc/sparc.c,
16121         config/xtensa/lib2funcs.S: Fix comment formatting.
16122
16123 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16124
16125         * config/alpha/alpha.c, config/arc/arc.c,
16126         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
16127         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
16128         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
16129         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
16130         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
16131         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
16132         config/iq2000/iq2000.c, config/m32r/m32r.c,
16133         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
16134         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
16135         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
16136         config/rs6000/rs6000.h, config/sparc/sparc.c,
16137         config/vax/vax.c: Fix comment typos.  Follow spelling
16138         conventions.
16139
16140 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16141
16142         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
16143         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
16144         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
16145         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
16146         config/arm/fpa.md, config/arm/iwmmxt.md,
16147         config/arm/netbsd-elf.h, config/arm/netbsd.h,
16148         config/m68hc11/m68hc11.md, config/mips/iris5.h,
16149         config/mn10300/mn10300.md, config/rs6000/altivec.md,
16150         config/sparc/netbsd-elf.h: Update copyright.
16151
16152 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
16153
16154         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
16155         for all modes whose size is greater than 8 bytes if ARCH32.
16156         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
16157         by reference if ARCH32.
16158
16159 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
16160
16161         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
16162
16163 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
16164
16165         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
16166         to before adddi3 insn patterns.
16167         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
16168         "reload_insi"): Move to before addsi3 insn patterns.
16169
16170 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
16171
16172         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
16173         parameter.  Use it instead of current_function_is_thunk.
16174         * function.h (struct function): Update documentation for is_thunk.
16175         * tree.h (CALL_FROM_THUNK_P): New macro.
16176         * config/alpha/alpha.c (alpha_sa_mask): Do not check
16177         no_new_pseudos when testing current_function_is_thunk.
16178         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
16179
16180 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16181
16182         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
16183         TARGET_SETUP_INCOMING_VARARGS.
16184
16185 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16186
16187         * emit-rtl.c (gen_rtx): Remove.
16188         * genattrtab.c: Don't mention gen_rtx in a comment.
16189         * rtl.h: Remove the prototype for gen_rtx.
16190         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
16191
16192 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16193
16194         * config/arc/arc.h, config/fr30/fr30.h
16195         (SETUP_INCOMING_VARARGS): Remove the target-independent
16196         comments.
16197         * doc/tm.texi: Don't mention deprecated target macros.
16198
16199 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16200
16201         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
16202         target-independent comment.
16203
16204 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16205
16206         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
16207         mention deprecated target macros.
16208
16209 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16210
16211         * config.gcc: Remove obsolete ports and configurations.
16212         * config/linux-aout.h, config/netware.h,
16213         config/t-linux-gnulibc1, config/d30v/abi,
16214         config/d30v/d30v-protos.h, config/d30v/d30v.c,
16215         config/d30v/d30v.h, config/d30v/d30v.md,
16216         config/d30v/libgcc1.asm, config/d30v/t-d30v,
16217         config/dsp16xx/dsp16xx-modes.def,
16218         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
16219         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
16220         config/i370/README, config/i370/i370-c.c,
16221         config/i370/i370-protos.h, config/i370/i370.c,
16222         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
16223         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
16224         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
16225         config/i386/moss.h, config/i386/netware.h,
16226         config/i386/svr3.ifile, config/i386/svr3dbx.h,
16227         config/i386/svr3gas.h, config/i386/svr3z.ifile,
16228         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
16229         config/i960/i960-c.c, config/i960/i960-coff.h,
16230         config/i960/i960-modes.def, config/i960/i960-protos.h,
16231         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
16232         config/i960/rtems.h, config/i960/t-960bare,
16233         config/m68k/hp310.h, config/m68k/hp320.h,
16234         config/m68k/hp320base.h, config/m68k/m68kv4.h,
16235         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
16236         Remove.
16237         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
16238         doc/md.texi: Remove mentions of obsolete ports.
16239
16240 2004-02-04  Jan Hubicka  <jh@suse.cz>
16241
16242         * alias.c (find_base_term, get_addr):  Do not dereference NULL
16243         pointer when all VALUE's locations has been invalidated.
16244         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
16245
16246 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
16247
16248         * doc/invoke.texi (x86 options): Fix spelling/wording.
16249
16250 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
16251
16252         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
16253         put the original string in a comment.
16254         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
16255         * config/mips/mips.c (mips_output_ascii): Likewise.
16256         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
16257
16258 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
16259
16260         * system.h (GIV_SORT_CRITERION): Poison.
16261         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
16262         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
16263
16264 2004-02-03  Roger Sayle  <roger@eyesopen.com>
16265
16266         PR target/9348
16267         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
16268         multiplies with a multiplication of the wrong signedness, its the
16269         signedness of the multiplication that we've performed that needs to
16270         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
16271         if expand_mult_highpart_adjust places the result in target.
16272
16273 2004-02-03  Richard Henderson  <rth@redhat.com>
16274
16275         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
16276
16277 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
16278
16279         * config.gcc (sh[234]l): Use little endian fragments.
16280
16281 2004-02-03  Paul Koning  <pkoning@equallogic.com>
16282
16283         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
16284         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
16285         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
16286         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
16287         floating point format.
16288         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
16289         the above functions.
16290         (output_move_quad): Output float values in correct target format.
16291         (legitimate_const_double_p): New function.
16292         * config/pdp11/pdp11.h: Fix typos.
16293         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
16294         (TARGET_FLOAT_FORMAT): Ditto.
16295         (pdp11_f_format, pdp11_d_format): Add external declarations.
16296         (MAX_REGS_PER_ADDRESS): Corrected.
16297         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
16298         (PRINT_OPERAND): Output float literals in target format.
16299
16300 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
16301
16302         PR c++/13975
16303         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
16304         TI_PRIVATE.
16305         (access_public_node): Redefine.
16306         (access_protected_node): Likewise.
16307         (access_private_node): Likewise.
16308         * tree.c (build_common_tree_nodes): Create access_public_node,
16309         access_protected_node, and access_private_node.
16310
16311 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
16312
16313         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
16314         (MASK_INLINE_INT_DIV_THR): Ditto.
16315         (MASK_INLINE_SQRT_LAT): Ditto.
16316         (MASK_INLINE_SQRT_THR): Ditto.
16317         (MASK_DWARF2_ASM): Ditto.
16318         (MASK_EARLY_STOP_BITS): Ditto.
16319
16320 2004-02-02  Paul Brook  <paul@codesourcery.com>
16321
16322         Merge from csl-arm-branch.
16323
16324         2004-01-30  Paul Brook  <paul@codesourcery.com>
16325
16326         * aof.h (REGISTER_NAMES): Add vfp reg names
16327         (ADDITIONAL_REGISTER_NAMES): Ditto.
16328         * aout.h (REGISTER_NAMES): Ditto.
16329         (ADDITIONAL_REGISTER_NAMES): Ditto.
16330         * arm-protos.h: Update/Add Prototypes.
16331         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
16332         Only allow 0.0 for VFP.
16333         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
16334         (values_fp): Rename from values_fpa.  Update Users.
16335         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
16336         Update users.  Only check valid constants for this hardware.
16337         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
16338         Only allow consts for FPA.
16339         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
16340         Only allow consts for FPA.
16341         (use_return_insn): Check for saved VFP regs.
16342         (arm_legitimate_address_p): Handle VFP DFmode addressing.
16343         (arm_legitimize_address): Ditto.
16344         (arm_general_register_operand): New function.
16345         (vfp_mem_operand): New function.
16346         (vfp_compare_operand): New function.
16347         (vfp_secondary_reload_class): New function.
16348         (arm_float_compare_operand): New function.
16349         (vfp_print_multi): New function.
16350         (vfp_output_fstmx): New function.
16351         (vfp_emit_fstm): New function.
16352         (arm_output_epilogue): Output VPF reg restore code.
16353         (arm_expand_prologue): Output VFP reg save code.
16354         (arm_print_operand): Add 'P'.
16355         (arm_hard_regno_mode_ok): Return modes for VFP regs.
16356         (arm_regno_class): Return classes for VFP regs.
16357         (arm_compute_initial_elimination_offset): Include space for VFP regs.
16358         (arm_get_frame_size): Ditto.
16359         * arm.h (FIXED_REGISTERS): Add VFP regs.
16360         (CALL_USED_REGISTERS): Ditto.
16361         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
16362         (FIRST_VFP_REGNUM): Define.
16363         (LAST_VFP_REGNUM): Define.
16364         (IS_VFP_REGNUM): Define.
16365         (FIRST_PSEUDO_REGISTER): Include VFP regs.
16366         (HARD_REGNO_NREGS): Handle VFP regs.
16367         (REG_ALLOC_ORDER): Add VFP regs.
16368         (enum reg_class): Add VFP_REGS.
16369         (REG_CLASS_NAMES): Ditto.
16370         (REG_CLASS_CONTENTS): Ditto.
16371         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
16372         (REG_CLASS_FROM_LETTER): Add 'w'.
16373         (EXTRA_CONSTRAINT_ARM): Add 'U'.
16374         (EXTRA_MEMORY_CONSTRAINT): Define.
16375         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
16376         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
16377         (REGISTER_MOVE_COST): Ditto.
16378         (PREDICATE_CODES): Add arm_general_register_operand,
16379         arm_float_compare_operand and vfp_compare_operand.
16380         * arm.md (various): Rename as above.
16381         (divsf3): Enable when TARGET_VFP.
16382         (divdf3): Ditto.
16383         (movdfcc): Ditto.
16384         (sqrtsf2): Ditto.
16385         (sqrtdf2): Ditto.
16386         (arm_movdi): Disable when TARGET_VFP.
16387         (arm_movsi_insn): Ditto.
16388         (movsi): Only split with general regs.
16389         (cmpsf): Use arm_float_compare_operand.
16390         (push_fp_multi): Restrict to TARGET_FPA.
16391         (vfp.md): Include.
16392         * vfp.md: New file.
16393         * fpa.md (various): Rename as above.
16394         * doc/md.texi: Document ARM w and U constraints.
16395
16396         2004-01-15  Paul Brook  <paul@codesourcery.com>
16397
16398         * config.gcc: Add with_fpu.  Allow with-float=softfp.
16399         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
16400         Break out of loop when we find a float-abi.  Fix typo.
16401         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
16402         Set -mfloat-abi=.
16403         * doc/install.texi: Document --with-fpu.
16404
16405         2003-01-14  Paul Brook  <paul@codesourcery.com>
16406
16407         * config.gcc (with_arch): Add armv6.
16408         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
16409         * config/arm/arm.c (arm_overrride_options): Ditto.
16410
16411         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
16412
16413         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
16414         (FL_ARCH6): Renamed from FL_ARCH6J.
16415         (arm_arch3m): Renamed from arm_fast_multiply.
16416         (arm_arch6): Renamed from arm_arch6j.
16417         * arm.h: Update all uses of above.
16418         * arm-cores.def: Likewise.
16419         * arm.md: Likewise.
16420
16421         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
16422         not arm6j.  Add entry for arch armv6.
16423
16424         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
16425
16426         * arm.c (arm_emit_extendsi): Delete.
16427         * arm-protos.h (arm_emit_extendsi): Delete.
16428         * arm.md (zero_extendhisi2): Also handle zero-extension of
16429         non-subregs.
16430         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
16431         (thumb_zero_extendhisi2): Only match if not v6.
16432         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
16433         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
16434         (thumb_extendqisi2): Likewise.
16435         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
16436         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
16437         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
16438         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
16439         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
16440         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
16441         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
16442         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
16443         (arm_extendqisi2addsi): Likewise.
16444
16445         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
16446
16447         Revert this change:
16448         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
16449         + REG addressing modes.
16450
16451         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
16452         + REG addressing modes.
16453
16454         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
16455
16456         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
16457         CONSTANT_P_RTX.
16458
16459         2003-30-12  Paul Brook  <paul@codesourcery.com>
16460
16461         * longlong.h: protect arm inlines with !defined (__thumb__)
16462
16463         2003-30-12  Paul Brook  <paul@codesourcery.com>
16464
16465         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
16466
16467         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
16468
16469         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
16470         change.
16471
16472         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
16473
16474         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
16475         to the virtual incoming args pointer for downward stacks.
16476
16477         2003-12-29  Paul Brook  <paul@codesourcery.com>
16478
16479         * config/arm/arm-cores.def: Add cost function.
16480         * config/arm/arm.c (arm_*_rtx_costs): New functions.
16481         (arm_rtx_costs): Remove
16482         (struct processors): Add rtx_costs field.
16483         (all_cores, all_architectures): Ditto.
16484         (arm_override_options): Set targetm.rtx_costs.
16485         (thumb_rtx_costs): New function.
16486         (arm_rtx_costs_1): Remove cases handled elsewhere.
16487         * config/arm/arm.h (processor_type): Add COSTS parameter.
16488
16489         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
16490
16491         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
16492         (arm926ejs.md): Include it.
16493         * config/arm/arm926ejs.md: New pipeline description.
16494
16495         2003-12-24  Paul Brook  <paul@codesourcery.com>
16496
16497         * config/arm/arm.c (arm_arch6j): New variable.
16498         (arm_override_options): Set it.
16499         (arm_emit_extendsi): New function.
16500         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
16501         * config/arm/arm.h (arm_arch6j): Declare.
16502         * config/arm/arm.md: Add sign/zero extend insns.
16503
16504         2003-12-23  Paul Brook  <paul@codesourcery.com>
16505
16506         * config/arm/arm.c (all_architectures): Add armv6.
16507         * doc/invoke.texi: Document it.
16508
16509         2003-12-19  Paul Brook  <paul@codesourcery.com>
16510
16511         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
16512         insn patterns to match.
16513         * config/arm/arm-generic.md: Ditto.
16514         * config/arm/cirrus.md: Ditto.
16515         * config/arm/fpa.md: Ditto.
16516         * config/amm/iwmmxt.md: Ditto.
16517         * config/arm/arm1026ejs.md: Ditto.
16518         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
16519         for 11_loadb.
16520
16521         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
16522
16523         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
16524         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
16525         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
16526         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
16527         arm_no_early_mul_dep): Correctly deal with conditional execution,
16528         parallels and single shift operations.
16529         (arm_no_early_alu_shift_value_dep): Define.
16530         * arm.md (attr type): Replace 'normal' with 'alu',
16531         'alu_shift' and 'alu_shift_reg'.
16532         (attr core_cycles): Adjust.
16533         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
16534         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
16535         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
16536         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
16537         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
16538         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
16539         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
16540         attribute appropriately.
16541         * config/arm/arm1026ejs.md (alu_op): Adjust.
16542         (alu_shift_op, alu_shift_reg_op): New.
16543         * config/arm/arm1136.md: Add better bypasses for early
16544         registers. Remove load[234] and store[234] bypasses.
16545         (11_alu_op): Adjust.
16546         (11_alu_shift_op, 11_alu_shift_reg_op): New.
16547
16548         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
16549
16550         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
16551         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
16552         * config/arm/arm.c (arm_no_early_store_addr_dep,
16553         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
16554         * config/arm/arm1026ejs.md: Add load-store bypass.
16555         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
16556         Add bypasses between instructions.
16557
16558         2003-12-10  Paul Brook  <paul@codesourcery.com>
16559
16560         * config/arm/arm.c (arm_fpu_model): New variable.
16561         (arm_fload_abi): New variable.
16562         (target_fpe_name): Rename from target_fp_name.
16563         (target_fpu_name): New variable.
16564         (arm_is_cirrus): Remove.
16565         (fpu_desc): New struct.
16566         (all_fpus): Define.
16567         (pf_model_for_fpu): Define.
16568         (all_loat_abis): Define.
16569         (arm_override_options): Set fp arch flags based on -mfpu=
16570         and -float-abi=.
16571         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
16572         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
16573         (*): Use new TARGET_* flags.
16574         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
16575         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
16576         (TARGET_SOFT_FLOAT): Ditto.
16577         (TARGET_SOFT_FLOAT_ABI): New.
16578         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
16579         TARGET_HARD_FLOAT.
16580         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
16581         (TARGET_OPTIONS): Add -mfpu=.
16582         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
16583         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
16584         (arm_pf_model): Define.
16585         (arm_float_abi_type): Define.
16586         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
16587         * config/arm/arm.md: Use new TARGET_* flags.
16588         * config/arm/cirrus.md: Ditto.
16589         * config/arm/fpa.md: Ditto.
16590         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
16591         * config/arm/semi.h (ASM_SPEC): Ditto.
16592         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
16593         (FPUTYPE_DEFAULT): Set to VFP.
16594         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
16595
16596         2003-11-22  Phil Edwards  <phil@codesourcery.com>
16597
16598         PR target/12476
16599         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
16600         'bx' instead of 'b' to avoid branch range restrictions.  Output
16601         the thunk immediately before the thunked-to function.
16602         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
16603         .thumb_func if a thunk is being generated.  Emit .code 16 along
16604         with .thumb_func if a thunk is not being generated.
16605
16606         2003-11-15  Nicolas Pitre <nico@cam.org>
16607
16608         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
16609         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
16610         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
16611         (lshrdi3_iwmmxt): Renamed from lshrdi3.
16612         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
16613
16614         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
16615             Ian Lance Taylor  <ian@wasabisystems.com>
16616
16617         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
16618         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
16619
16620         2003-11-05  Phil Edwards  <phil@codesourcery.com>
16621
16622         * config/arm/arm.md (insn):  Add new V6 instruction names.
16623         (generic_sched):  New attr.
16624         * config/arm/arm-generic.md:  Use generic_sched here.
16625         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
16626         stages of pipeline.  Adjust latency counts accordingly.
16627         * config/arm/arm1136jfs.md:  New file.
16628
16629         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
16630
16631         * config/arm/arm.h (processor_type): New enumeration type.
16632         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
16633         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
16634         (CPP_CPU_ARCH_SPEC): Likewise.
16635         * config/arm/arm.c (arm_tune): New variable.
16636         (all_cores): Use cores.def.
16637         (all_architectures): Add representative processor.
16638         (arm_override_options): Restructure way in which tuning
16639         information is deduced.
16640         * arm.md: Update "insn" and "type" attributes throughout.
16641         (insn): New attribute.
16642         (type): Compute "mult" from "insn" attribute.  Add load2,
16643         load3, load4 alternatives.
16644         (arm automaton): Move to arm-generic.md.
16645         * config/arm/arm-cores.def: New file.
16646         * config/arm/arm-generic.md: Likewise.
16647         * config/arm/arm1026ejs.md: Likewise.
16648
16649 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
16650
16651         * doc/invoke.texi (SPARC options): Remove -mflat and
16652         all -mxxx (xxx:chip) options.
16653         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
16654         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
16655         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
16656         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
16657         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
16658         * config/sparc/sparc.c: Likewise.
16659         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
16660         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
16661         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
16662         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
16663         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
16664         (sparc_flat_must_save_register_p): Likewise.
16665         (sparc_flat_compute_frame_size): Likewise.
16666         (sparc_flat_save_restore): Likewise.
16667         (sparc_flat_function_prologue): Likewise.
16668         (sparc_flat_function_epilogue): Likewise.
16669         (sparc_flat_epilogue_delay_slots): Likewise.
16670         (sparc_flat_eligible_for_epilogue_delay): Likewise.
16671         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
16672         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
16673         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
16674         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
16675         (CONDITIONAL_REGISTER_USAGE): Likewise.
16676         (FRAME_POINTER_REQUIRED): Likewise.
16677         (INITIAL_ELIMINATION_OFFSET): Likewise.
16678         (BASE_RETURN_VALUE_REG): Likewise.
16679         (BASE_OUTGOING_VALUE_REG): Likewise.
16680         (BASE_PASSING_ARG_REG): Likewise.
16681         (BASE_INCOMING_ARG_REG): Likewise.
16682         (INCOMING_REGNO): Likewise.
16683         (OUTGOING_REGNO): Likewise.
16684         (LOCAL_REGNO): Likewise.
16685         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
16686         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
16687         (EPILOGUE_USES): Likewise.
16688         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
16689         ("flat" attribute): Delete.
16690         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
16691         handling.
16692         (call followed by jump define_peephole's): Delete.
16693         (exception_receiver): Likewise.
16694         (builtin_setjmp_receiver): Likewise.
16695         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
16696
16697 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
16698
16699         PR c/11658
16700         PR c/13994
16701         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
16702         on langhooks.h.
16703         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
16704         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
16705         Include langhooks.h.  Replace c_common_truthvalue_conversion
16706         with the truthvalue_conversion language hook throughout.
16707         (expr_no_commas): Call default_conversion before save_expr
16708         for the first term of the production 'x ? : y'.
16709         * c-common.c (c_common_truthvalue_conversion): Remove
16710         obsolete block.  Invoke recursively the hook instead
16711         of this function.
16712         * c-convert.c (convert): handle ERROR_MARK_NODE.
16713         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
16714         returned by the truthvalue_conversion language hook.
16715         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
16716         c_objc_common_truthvalue_conversion.
16717         * c-objc-common.c (c_objc_common_truthvalue_conversion):
16718         New function.
16719         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
16720         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
16721         c_objc_common_truthvalue_conversion.
16722
16723 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
16724
16725         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
16726         of gen_rtx.
16727         (LIBCALL_VALUE): Likewise.
16728         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
16729         gen_rtx_CC0 instead of gen_rtx.
16730         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
16731         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
16732         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
16733         gen_rtx.
16734         (m68hc11_emit_logical): Likewise.
16735
16736 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
16737
16738         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
16739         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
16740         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
16741         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
16742         config/mips/mips.md, config/mmix/mmix.c,
16743         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
16744         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
16745         config/rs6000/altivec.md, config/s390/s390.c,
16746         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
16747         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
16748         Use const0_rtx instead of GEN_INT (0).  Do the same for other
16749         constants that are readily available.
16750
16751 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
16752
16753         * doloop.c, optabs.c, regmove.c, sched-deps.c,
16754         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
16755         instead of GEN_INT (0).  Do the same for other constants that
16756         are readily available.
16757
16758 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
16759
16760         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
16761         gen_rtx.
16762         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
16763         instead of gen_rtx.
16764         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
16765         gen_rtx.
16766         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
16767         gen_rtx_ASHIFT instead of gen_rtx.
16768         (udivmodqi4): Likewise.
16769
16770 2004-02-02  Richard Henderson  <rth@redhat.com>
16771
16772         PR target/13789
16773         * expr.c (store_expr): Use force_operand before emit_move_insn.
16774
16775 2004-02-02  Jeff Law  <law@redhat.com>
16776             Roger Sayle  <roger@eyesopen.com>
16777
16778         * tree.c (commutative_tree_code, associative_tree_code): New
16779         functions.
16780         (iterative_hash_expr): Use commutative_tree_code.
16781         * tree.h (commutative_tree_code, associative_tree_code): Declare.
16782         * fold-const.c (operand_equal_p): Use commutative_tree_code
16783         rather than inlining the commutativity check.
16784         (fold): Likewise.
16785
16786 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
16787
16788         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
16789         * config/frv/frv-protos.h: Remove the prototype for
16790         frv_function_arg_keep_as_reference.
16791         * config/frv/frv.c (frv_function_arg_keep_as_reference):
16792         Remove.
16793         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
16794         * config/stormy16/stormy16.h: Remove the commented-out
16795         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
16796
16797 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
16798
16799         PR target/13914
16800         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
16801         for retaddr_column.
16802
16803 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
16804
16805         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
16806         gen_rtx.
16807
16808 2004-02-02  Eric Christopher  <echristo@redhat.com>
16809             Zack Weinberg  <zack@codesourcery.com>
16810
16811         * c-opts.c (c_common_handle_option): Add -finput-charset.
16812         * c.opt: Ditto.
16813         * cppcharset.c (one_iso88591_to_utf8): Remove.
16814         (convert_iso88591_utf8): Ditto.
16815         (conversion_tab): Remove 8859-1 converter.
16816         (_cpp_input_to_utf8): Remove.
16817         (_cpp_init_iconv_buffer): Ditto.
16818         (_cpp_close_iconv_buffer): Ditto.
16819         (_cpp_convert_input): New function.
16820         (_cpp_default_encoding): Ditto.
16821         * cpphash.h: Add/remove prototypes for above.
16822         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
16823         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
16824         for narrow execution and input character sets.
16825         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
16826         * doc/cppopts.texi: Document -finput-charset.
16827
16828 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
16829
16830         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
16831         against FIRST_PSEUDO_REGISTER.
16832
16833 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
16834
16835         * doc/invoke.texi (SPARC options): Further improve.
16836
16837 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
16838
16839         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
16840         config/h8300/h8300.c, config/ip2k/ip2k.md,
16841         config/iq2000/iq2000.c, config/mips/mips.c,
16842         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
16843         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
16844         config/v850/v850.md: Fix indentation.
16845
16846 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
16847
16848         * config/sparc/sparc.c (function_arg_slotno): Align TImode
16849         arguments on a 16-byte boundary in the parameter array if ARCH64.
16850         Split handling of TFmode.
16851
16852 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
16853
16854         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
16855         Don't test CONSTANT_P (x).
16856         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
16857         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
16858         Fix misindentation.
16859
16860 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
16861
16862         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
16863
16864 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
16865
16866         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
16867         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
16868         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
16869         config/iq2000/iq2000.c, config/m32r/m32r.c,
16870         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
16871         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
16872         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
16873         config/stormy16/stormy16.c, config/v850/v850.md,
16874         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
16875
16876 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
16877
16878         * config/mcore/mcore.c (block_move_sequence): Replace
16879         gen_rtx_CONST_INT with GEN_INT.
16880
16881 2004-02-02  Jan Hubicka  <jh@suse.cz>
16882
16883         * alias.c (record_set): Use hard_regno_nregs.
16884         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
16885         * builtins.c (apply_args_size): Likewise.
16886         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
16887         mark_set_regs, add_stored_regs, mark_referenced_regs,
16888         insert_restore, insert_save, insert_one_insn): Likewise.
16889         * cfgcleanup.c: Include regs.h
16890         (mark_effect, mentions_nonequal_regs): Likewise.
16891         * cfgrtl.c (mark_killed_regs): Likewise
16892         * combine.c (update_table_tick, record_value_for_reg,
16893         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
16894         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
16895         reg_bitfield_target_p, distribute_notes): Likewise.
16896         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
16897         exp_equiv_p, cse_insn): Likewise.
16898         * cselib.c (cselib_lookup): Likewise.
16899         (cselib_invalidate_regno, cselib_record_set): Likewise.
16900         * df.c (df_ref_record): Likewise.
16901         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
16902         Likewise.
16903         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
16904         count_or_remove_death_notes_bb): Likewise.
16905         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
16906         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
16907         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
16908         * integrate.c (mark_stores): Likewise.
16909         * jump.c (delete_prior_computation): Likewise.
16910         * lcm.c (reg_dies, reg_becomes_live): Likewise.
16911         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
16912         * loop.c (LOOP_REGNO_NREGS): Likewise.
16913         * postreload.c (reload_combine, reload_combine_note_store,
16914         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
16915         * ra-colorize.c (combine, color_usable_p, get_free_reg,
16916         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
16917         try_recolor_web, insert_coalesced_conflicts, check_colors,
16918         break_precolored_alias): Likewise.
16919         * ra-debug.c: Include regs.h
16920         (ra_print_rtx_object): Likewise.
16921         * ra-rewrite (choose_spill_colors): Likewise.
16922         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
16923         * ra.c (init_ra): Likewise.
16924         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
16925         peep2_find_free_register): Likewise.
16926         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
16927         * regclass.c (hard_regno_nregs): New array.
16928         (init_reg_modes_once): Initialize it.
16929         (choose_hard_reg_mode): Use it.
16930         (record_reg_classes): Likewise.
16931         * regmove.c (mark_flags_life_zones): Likewise.
16932         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
16933         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
16934         copy_value, maybe_mode_change, find_oldest_value_reg,
16935         copyprop_hardreg_forward_1):
16936         * regs.h (hard_regno_nregs): Declare.
16937         * realod.c (reload_inner_reg_of_subreg): Use it.
16938         (push_reload, combine_reloads, find_dummy_reload,
16939         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
16940         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
16941         reload_adjust_reg_for_mode): Likewise.
16942         * reload1.c (compute_use_by_pseudos, count_pseudo,
16943         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
16944         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
16945         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
16946         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
16947         delete_output_reload): Likewise.
16948         * resource.c (update_live_status, mark_referenced_resources,
16949         mark_set_resources, mark_target_live_regs): Likewise.
16950         * rtlanal.c:  Include regs.h
16951         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
16952         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
16953         subreg_regno_offset, subreg_offset_representable_p,
16954         hoist_test_store): Likewise.
16955         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
16956         * sched-rgn.c (check_live_1, update_live_1): Likewise.
16957         * stmt.c: Include regs.h
16958         (decl_conflicts_with_clobbers_p): Likewise.
16959         * varasm.c (make_decl_rtl): Likewise.
16960         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
16961
16962 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
16963
16964         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
16965         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
16966         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
16967         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
16968         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
16969         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
16970         config/iq2000/iq2000.h, config/m32r/m32r.c,
16971         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
16972         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
16973         config/mcore/mcore.c, config/mcore/mcore.h,
16974         config/mcore/mcore.md, config/mips/mips.c,
16975         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
16976         config/rs6000/rs6000.c, config/s390/s390.c,
16977         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
16978         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
16979         "gen_rtx (FOO, " with "gen_rtx_FOO (".
16980
16981 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
16982
16983         * config/h8300/h8300.md (two peephole2's): New.
16984
16985 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
16986
16987         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
16988         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
16989         (ASM_CPU_SPEC): Likewise
16990         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
16991         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
16992
16993 2004-02-01  Roger Sayle  <roger@eyesopen.com>
16994
16995         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
16996         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
16997         (expand_builtin): Always call expand_builtin_pow.
16998
16999 2004-02-01  Roger Sayle  <roger@eyesopen.com>
17000
17001         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
17002         BUILT_IN_SIGNBITL): New GCC builtins.
17003         * builtins.c (expand_builtin_signbit): New function to RTL expand
17004         calls to signbit, signbitf and signbitl as inline intrinsics.
17005         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
17006         (fold_builtin_signbit): New function to perform constant folding
17007         of signbit, signbitf and signbitl.
17008         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
17009
17010         * doc/extend.texi: Document new signbit{,f,l} builtins.
17011
17012 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
17013
17014         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
17015
17016 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
17017
17018         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
17019         "mips_const_double_ok" and "simple_memory_operand", which were
17020         removed from the MIPS port with the mips-3_4-rewrite branch merge.
17021         * config/mips/mips.c (mips16_lay_out_constants): Update comment
17022         for removal of simple_memory_operand.
17023
17024 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17025
17026         * config/c4x/c4x.md: Use GEN_INT instead of
17027         gen_rtx (CONST_INT, ...).
17028
17029 2004-01-31  Richard Henderson  <rth@redhat.com>
17030
17031         * varasm.c (output_constant_pool): Don't zap the pool.
17032
17033 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17034
17035         * genrecog.c (decision_type): Add DT_const_int.
17036         (write_cond) [DT_const_int]: Print a comparison against small
17037         constant.
17038         (write_node): Simplify comparisons against small constants
17039         before printing tests.
17040
17041 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17042
17043         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
17044         instead of gen_rtx_CONST_INT.
17045
17046 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17047
17048         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
17049         instead of gen_rtx_CONST_INT.
17050
17051 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17052
17053         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
17054         hook_bool_CUMULATIVE_ARGS_false.
17055         * targhooks.c (default_strict_argument_naming): Rename to
17056         hook_bool_CUMULATIVE_ARGS_false.
17057         * targhooks.h: Update the prototype for
17058         default_strict_argument_naming.
17059
17060 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17061
17062         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
17063         * config/sh/sh.h: Likewise.
17064         * config/sh/sh.md: Likewise.
17065
17066 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
17067
17068         * doc/invoke.texi (SPARC options): Restructure and update.
17069
17070 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17071
17072         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
17073         STRICT_ARGUMENT_NAMING): Poison.
17074         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
17075         hook_bool_tree_false.
17076         * targhooks.c (default_promote_function_args): Remove.
17077         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
17078         Don't check incoming.
17079         (default_strict_argument_naming): Don't use
17080         STRICT_ARGUMENT_NAMING.
17081         * targhooks.h: Remove the prototype for
17082         default_promote_function_args.
17083
17084 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17085
17086         * config/i386/i386-protos.h: Remove the prototype for
17087         ix86_setup_incoming_varargs.
17088         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
17089         (ix86_setup_incoming_varargs): Make it static.
17090         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
17091
17092 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17093
17094         * alloc-pool.c: Fix comment typos.
17095         * builtin-types.def: Likewise.
17096         * builtins.def: Likewise.
17097         * c-pretty-print.c: Likewise.
17098         * df.h: Likewise.
17099         * reload1.c: Likewise.
17100
17101 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17102
17103         * doc/invoke.texi: Follow spelling conventions.
17104         * doc/tm.texi: Likewise.
17105
17106 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17107
17108         * doc/install.texi: Fix typos.
17109         * doc/invoke.texi: Likewise.
17110
17111 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
17112
17113         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
17114         registers as pointers.
17115         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
17116
17117 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
17118
17119         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
17120         and restore it to gen_lowpart_general on exit.
17121         (gen_lowpart_for_combine): Adjust all callers to go through
17122         gen_lowpart.
17123         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
17124         and restore it to gen_lowpart_general on exit.
17125         (gen_lowpart_if_possible): Adjust all callers to go through
17126         gen_lowpart.
17127         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
17128         (gen_lowpart): Declare as pointer to function, initialized to
17129         gen_lowpart_general.
17130         * rtl.h (gen_lowpart): Declare as pointer to function.
17131
17132 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17133
17134         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
17135         * calls.c: Likewise.
17136         * emit-rtl.c: Likewise.
17137         * function.c: Likewise.
17138         * reload1.c: Likewise.
17139         * config/i386/cygming.h: Likewise.
17140         * config/i386/i386.c: Likewise.
17141         * config/i386/winnt.c: Likewise.
17142
17143 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
17144
17145         PR bootstrap/9249
17146         * doc/install.texi: document --enable-__cxa_atexit option.
17147         * configure.ac: Disable __cxa_atexit if not supported.
17148         * configure: Regenerate.
17149
17150 2004-01-30  Daniel Berlin  <dberlin@dberlin.org>
17151
17152         * ggc-zone.c (ggc_free): New function.
17153
17154 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
17155
17156         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
17157         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
17158         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
17159         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
17160         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
17161         config/alpha/alpha.c, config/alpha/alpha.h,
17162         config/alpha/alpha.md, config/alpha/unicosmk.h,
17163         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
17164         config/c4x/c4x-protos.h, config/c4x/c4x.md,
17165         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
17166         config/frv/frvend.c, config/i386/cygming.h,
17167         config/i386/djgpp.h, config/i386/emmintrin.h,
17168         config/i386/gthr-win32.c, config/i386/i386-interix.h,
17169         config/i386/i386-protos.h, config/i386/openbsd.h,
17170         config/i386/winnt.c, config/i386/xm-mingw32.h,
17171         config/i386/xmmintrin.h, config/ia64/ia64.md,
17172         config/iq2000/iq2000.md, config/m32r/m32r.md,
17173         config/m68k/m68k.md, config/mcore/mcore-elf.h,
17174         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
17175         config/mips/iris5gas.h, config/mips/iris6.h,
17176         config/mips/iris6gas.h, config/mips/linux.h,
17177         config/mips/mips.md, config/mips/netbsd.h,
17178         config/mips/openbsd.h, config/mips/windiss.h,
17179         config/pa/fptr.c, config/rs6000/aix.h,
17180         config/rs6000/altivec.h, config/rs6000/darwin.h,
17181         config/rs6000/xcoff.h, config/s390/s390-protos.h,
17182         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
17183         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
17184         config/sparc/sol2.h: Update copyright.
17185
17186 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
17187
17188         * Makefile.in (abs_docdir, abs_srcdir): Define.
17189         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
17190
17191 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
17192
17193         * genconfig.c (main): Have CC0_P check its operand even on a
17194         target without cc0.
17195
17196 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
17197
17198         * config/alpha/alpha.c: Remove mentions of deprecates macros
17199         in comments, remove some target-independent comments about target
17200         macros, and/or add minimal function comments for target hook
17201         implementations.
17202         * config/avr/avr.c: Likewise.
17203         * config/ia64/ia64.h: Likewise.
17204         * config/ip2k/ip2k.c: Likewise.
17205         * config/iq2000/iq2000.c: Likewise.
17206         * config/m32r/m32r.h: Likewise.
17207         * config/m68hc11/m68hc11.c: Likewise.
17208         * config/mcore/mcore.c: Likewise.
17209         * config/mmix/mmix.c: Likewise.
17210         * config/mn10300/mn10300.c: Likewise.
17211         * config/pa/pa.c: Likewise.
17212         * config/pdp11/pdp11.c: Likewise.
17213         * config/rs6000/rs6000.h: Likewise.
17214         * config/sh/sh.c: Likewise.
17215         * config/sh/sh.h: Likewise.
17216         * config/sparc/sparc.c: Likewise.
17217         * config/sparc/sparc.h: Likewise.
17218         * config/stormy16/stormy16.c: Likewise.
17219         * config/xtensa/xtensa.c: Likewise.
17220
17221 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
17222
17223         PR optimization/12147
17224         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
17225         RELOAD_FOR_OPADDR_ADDR.
17226         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
17227         might be reused as RELOAD_FOR_OPADDR_ADDR register.
17228
17229 2004-01-30  Jan Hubicka  <jh@suse.cz>
17230
17231         * reload.c (get_secondary_mem): Fix updating of
17232         secondary_memlocs_elim_used.
17233
17234 2004-01-30  Richard Henderson  <rth@redhat.com>
17235
17236         * varasm.c (struct rtx_const, struct pool_constant): Remove.
17237         (MAX_RTX_HASH_TABLE): Remove.
17238         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
17239         (first_pool, last_pool, pool_offset): Remove.
17240         (struct rtx_constant_pool): Split out from ...
17241         (struct varasm_status): ... here.  Reference one via pointer.
17242         (struct constant_descriptor_rtx): Merge struct pool_constant.
17243         (SYMHASH): Remove.
17244         (decode_rtx_const): Remove.
17245         (const_hash_rtx, compare_constant_rtx): Remove.
17246         (record_constant_rtx): Remove.
17247         (const_desc_rtx_hash, const_desc_rtx_eq): New.
17248         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
17249         (const_rtx_hash_1, const_rtx_hash): New.
17250         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
17251         (simplify_subtraction): Use simplify_rtx.
17252         (force_const_mem): Rewrite to use new data structures.
17253         (find_pool_constant): Likewise.
17254         (get_pool_constant, get_pool_constant_mark,
17255         get_pool_constant_for_function, get_pool_mode,
17256         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
17257         (output_constant_pool_2): Split out from output_constant_pool.
17258         (output_constant_pool_1): Likewise.  Use new pool datastructures.
17259         (output_constant_pool): Zap entire pool datastructure.
17260         (mark_constant): Use new pool datastructures.
17261         (mark_constants): Use for_each_rtx.
17262         (mark_constant_pool): Use new pool datastructures.
17263
17264 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
17265
17266         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
17267         Copy operands[1] to pseudo for simplify_gen_subreg.
17268
17269 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
17270
17271         * gcse.c (bypass_block): Fix a typo in the previous check-in
17272         to the file.
17273
17274 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
17275
17276         * toplev.c: Include alloc-pool.h.
17277         * Makefile.in (toplev.c): Update dependencies.
17278
17279 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17280
17281         * combine.c (simplify_shift_const, case XOR): Be careful when
17282         commuting XOR with ASHIFTRT.
17283
17284 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
17285             Eric Botcazou  <ebotcazou@libertysurf.fr>
17286
17287         * config/sparc/sparc-protos.h: Remove the prototype for
17288         sparc_builtin_saveregs.
17289         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
17290         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17291         (TARGET_PROMOTE_PROTOTYPES): Likewise.
17292         (TARGET_STRUCT_VALUE_RTX): Likewise.
17293         (TARGET_RETURN_IN_MEMORY): Likewise.
17294         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
17295         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
17296         (sparc_builtin_saveregs): Make it static.
17297         (sparc_promote_prototypes): New.
17298         (sparc_struct_value_rtx): Likewise.
17299         (sparc_return_in_memory): Likewise.
17300         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
17301         (PROMOTE_FUNCTION_RETURN): Likewise.
17302         (RETURN_IN_MEMORY): Likewise.
17303         (STRUCT_VALUE): Likewise.
17304         (STRUCT_VALUE_INCOMING): Likewise.
17305         (EXPAND_BUILTIN_SAVEREGS): Likewise.
17306         (STRICT_ARGUMENT_NAMING): Likewise.
17307         (PROMOTE_PROTOTYPES): Likewise.
17308
17309         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
17310
17311 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
17312
17313         PR c/12818
17314         * varasm.c (const_hash_1) <STRING_CST>: Use the
17315         address to compute the hash value if flag_writable_strings.
17316         (compare_constant) <STRING_CST>: Compare the addresses
17317         if flag_writable_strings.
17318         (build_constant_desc): Do not copy the expression for a
17319         STRING_CST if flag_writable_strings.
17320
17321 2004-01-30  Jan Hubicka  <jh@suse.cz>
17322
17323         * alloc-pool.c: Include hashtab.h
17324         (alloc_pool_descriptor): New structure
17325         (alloc_pool_hash): New global variable.
17326         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
17327         (create_alloc_pool): Update statistics.
17328         (free_alloc_pool): Likewise.
17329         (pool_alloc): Likewise.
17330         (output_info): New structure
17331         (print_statistics, dump_alloc_pool_statistics): New function.
17332         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
17333         (dump_alloc_pool_statistics): Declare.
17334         * toplev.c (finalize):  Dump statistics.
17335
17336         * reload.c (secondary_memlocs_elim_used): New static variable.
17337         (get_secondary_mem): Update it.
17338         (find_reloads): Use it.
17339
17340 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
17341
17342         * toplev.c: Fix broken checkin of 2003-12-30, again.
17343
17344 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
17345
17346         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
17347         s390*-*-* targets by specifying a 'nop' insn.
17348         * configure: Regenerate.
17349
17350 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
17351
17352         PR target/11475
17353         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
17354
17355 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
17356
17357         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
17358         of addr when creating MEM copy.
17359
17360 2004-01-29  Devang Patel  <dpatel@apple.com>
17361
17362         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
17363
17364 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
17365
17366         PR inline-asm/6162
17367         * reload.c (find_reloads): Only support one pair of commutative
17368         operands.
17369
17370 2004-01-29  Roger Sayle  <roger@eyesopen.com>
17371
17372         PR java/13824
17373         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
17374         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
17375         recursion.
17376
17377 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
17378
17379         * config/frv/frv.c: Don't mention deprecated macros in
17380         comments.  Remove some target-independent comments about
17381         target macros.
17382         * config/frv/frv.h: Likewise.
17383
17384 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17385
17386         * cfghooks.c (split_block): Set probability and count of the
17387         new edge.
17388
17389 2004-01-29  Josef Zlomek  <zlomekj@suse.cz>
17390
17391         * dwarf2out.c (struct die_struct): Added field decl_id.
17392         (decl_die_table): Changed to hash table.
17393         (decl_die_table_allocated): Deleted.
17394         (decl_die_table_in_use): Deleted.
17395         (DECL_DIE_TABLE_INCREMENT): Deleted.
17396         (decl_die_table_hash): New function.
17397         (decl_die_table_eq): New function.
17398         (lookup_decl_die): Lookup in a hash table.
17399         (equate_decl_number_to_die): Insert into a hash table.
17400         (dwarf2out_init): Init hash table decl_die_table.
17401
17402 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
17403
17404         PR optimization/13424
17405         * expr.c (store_constructor): Revert 2003-12-03 change.
17406
17407         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
17408         expected before returning early.  Avoid sharing RTL if they
17409         need to be changed.
17410
17411         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
17412         handling so that memory attributes are preserved.  Don't call
17413         ix86_set_move_mem_attrs.
17414         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
17415         (ix86_expand_clrstr): Rename src argument to
17416         dst.  Rework rep_stos and strset handling so that memory attributes
17417         are preserved.
17418         (ix86_expand_strlen): Pass src argument to
17419         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
17420         memory attributes are preserved.
17421         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
17422         change_address instead of gen_rtx_MEM.
17423         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
17424         expanders.
17425         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
17426         strmovqi, strmovqi_rex64): Remove.
17427         (rep_mov*, strmov*): Prefix insn names with *.
17428         (strset, strset_singleop, rep_stos): New expanders.
17429         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
17430         strsetqi, strsetqi_rex64): Remove.
17431         (rep_stos*, strset*): Prefix insn names with *.
17432         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
17433         to SImode.
17434         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
17435         are preserved.
17436         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
17437         Prefix insn names with *.
17438         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
17439         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
17440         (strlenqi_1): New expander.
17441         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
17442
17443 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17444
17445         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
17446         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
17447         verify_flow_info): Declaration removed.
17448         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
17449         (debug_bb, debug_bb_n): Add argument to dump_bb call.
17450         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
17451         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
17452         instead of delete_block.
17453         * cfghooks.c: Include timevar.h and toplev.h.
17454         (cfg_hooks): Define here.
17455         (verify_flow_info, dump_bb): Moved from cfg.c.
17456         (redirect_edge_and_branch, redirect_edge_and_branch_force,
17457         split_block, split_block_after_labels, move_block_after,
17458         delete_basic_block, split_edge, create_basic_block,
17459         create_empty_bb, can_merge_blocks_p, merge_blocks,
17460         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
17461         New functions.
17462         * cfghooks.h (struct cfg_hooks): Added fields name,
17463         make_forwarder_block, tidy_fallthru_edge and
17464         move_block_after. Changed type of verify_flow_info, dump_bb,
17465         split_block fields. Renamed cfgh_split_edge and delete_block
17466         fields.
17467         (redirect_edge_and_branch, redirect_edge_and_branch_force,
17468         split_block, delete_block, split_edge, create_basic_block,
17469         can_merge_blocks_p, merge_blocks): Macros removed.
17470         (cfg_hooks): Do not export.
17471         (verify_flow_info, dump_bb, redirect_edge_and_branch,
17472         redirect_edge_and_branch_force, split_block, split_block_after_labels,
17473         move_block_after, delete_basic_block, split_edge, create_basic_block,
17474         create_empty_bb, can_merge_blocks_p, merge_blocks,
17475         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
17476         Declare.
17477         (cfg_layout_rtl_cfg_hooks): Declare.
17478         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
17479         New functions.
17480         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
17481         (redirect_edge_with_latch_update): Removed.
17482         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
17483         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
17484         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
17485         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
17486         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
17487         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
17488         cfghooks.c.
17489         (rtl_create_basic_block): Coding style fix.
17490         (rtl_tidy_fallthru_edge, rtl_move_block_after,
17491         rtl_make_forwarder_block): New functions.
17492         (update_cfg_after_block_merging): Removed.
17493         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
17494         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
17495         to dump_bb.
17496         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
17497         find_if_case_2): Don't update dominators.
17498         * timevar.def (TV_CFG_VERIFY): New.
17499         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
17500         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
17501         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
17502         (remove_bbs): Don't call remove_bbs.
17503         (create_preheader): Use make_forwarder_block.
17504         (mfb_keep_just, mfb_update_loops): New static functions.
17505
17506 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
17507
17508         * config/avr/avr.h: Remove target-independent comments about
17509         target macros.
17510
17511 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
17512
17513         * timevar.c (timevar_print): Mention when checking is enabled.
17514
17515 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
17516
17517         * c-lex.c (c_lex): Rename to...
17518         (c_lex_with_flags): Add new parameter to get CPP flags.
17519         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
17520         * c-pragma.h (c_lex_with_flags): Declare.
17521
17522 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17523
17524         * config/mcore/mcore.c (mcore_external_libcall): Add a
17525         comment.
17526         (mcore_return_in_memory): Likewise.
17527
17528 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17529
17530         * config/mcore/mcore-protos.h: Remove the prototype for
17531         mcore_setup_incoming_varargs.
17532         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
17533         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
17534         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17535         (TARGET_PROMOTE_PROTOTYPES): Likewise.
17536         (TARGET_STRUCT_VALUE_RTX): Likewise.
17537         (TARGET_RETURN_IN_MEMORY): Likewise.
17538         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
17539         (mcore_setup_incoming_varargs): Make it static.  Receive the
17540         first argument by reference.  Add argument second_time.
17541         (mcore_external_libcall): New.
17542         (mcore_return_in_memory): Likewise.
17543         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
17544         (PROMOTE_FUNCTION_RETURN): Likewise.
17545         (STRUCT_VALUE): Likewise.
17546         (RETURN_IN_MEMORY): Likewise.
17547         (SETUP_INCOMING_VARARGS): Likewise.
17548         (PROMOTE_PROTOTYPES): Likewise.
17549         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
17550
17551 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17552
17553         * config/m32r/m32r-protos.h: Remove the prototype for
17554         m32r_setup_incoming_varargs.
17555         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
17556         (TARGET_STRUCT_VALUE_RTX): Likewise.
17557         (TARGET_RETURN_IN_MEMORY): Likewise.
17558         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
17559         (m32r_return_in_memory): New.
17560         (m32r_setup_incoming_varargs): Make it static.
17561         * config/m32r/m32r.h: Remove #undef of
17562         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
17563         definitions of PROMOTE_FUNCTION_ARGS and
17564         PROMOTE_FUNCTION_RETURN.
17565         (PROMOTE_PROTOTYPES): Remove.
17566         (RETURN_IN_MEMORY): Likewise.
17567         (STRUCT_VALUE): Likewise.
17568
17569 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17570
17571         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
17572         (TARGET_STRUCT_VALUE_RTX): Likewise.
17573         (m68k_struct_value_rtx): Likewise.
17574         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
17575         STRUCT_VALUE_REGNUM.
17576         (PROMOTE_PROTOTYPES): Remove.
17577         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
17578         STRUCT_VALUE_REGNUM.
17579         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
17580         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
17581
17582 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17583
17584         * config/stormy16/stormy16.c
17585         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
17586         TARGET_BUILD_BUILTIN_VA_LIST.
17587
17588 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17589
17590         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
17591         (TARGET_STRUCT_VALUE_RTX): Likewise.
17592         (TARGET_RETURN_IN_MEMORY): Likewise.
17593         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
17594         (v850_return_in_memory): Likewise.
17595         (v850_setup_incoming_varargs): Likewise.
17596         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
17597         (SETUP_INCOMING_VARARGS): Likewise.
17598         (RETURN_IN_MEMORY): Likewise.
17599         (STRUCT_VALUE): Likewise.
17600
17601 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17602
17603         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
17604         (fr30_setup_incoming_varargs): Don't use
17605         STRICT_ARGUMENT_NAMING.
17606         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
17607         (STRICT_ARGUMENT_NAMING): Likewise.
17608
17609 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17610
17611         * config/frv/frv-protos.h: Remove the prototype for
17612         frv_expand_builtin_saveregs.
17613         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
17614         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
17615         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
17616         STRUCT_VALUE_REGNUM.
17617         (frv_expand_builtin_saveregs): Make it static.
17618         (frv_struct_value_rtx): New.
17619         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
17620
17621 2004-01-29  Jan Hubicka  <jh@suse.cz>
17622
17623         PR c++/12850
17624         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
17625         initial pointers.
17626         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
17627         for functions that will be only inlined.
17628         (cgraph_mark_function_to_output): Likewise.
17629         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
17630         do not clear function body.
17631         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
17632         (tree_rest_of_compilation): Reorganize the logic releasing function
17633         body to use callgraph datastructure.
17634
17635 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17636
17637         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
17638         to register_operand.
17639
17640 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
17641
17642         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
17643         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
17644         match_operand expressions so that all match_dups appear
17645         lexically after their corresponding match_operands.
17646
17647 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17648
17649         * config/h8300/h8300.c (WORD_REG_USED): Use
17650         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
17651         (compute_saved_regs): Likewise.
17652         (h8300_expand_prologue): Likewise.  Allocate locals after
17653         saving registers.
17654         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
17655         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
17656         registers.
17657         (h8300_initial_elimination_offset): Adjust for the new frame
17658         layout, which swaps flips the order of locals and saved
17659         registers.
17660         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
17661         (HARD_FRAME_POINTER_REGNUM): New.
17662         (ELIMINABLE_REGS): Add an elimination rule from
17663         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
17664         (REGISTER_NAMES): Add fp.
17665         * config/h8300/h8300.md (FP_REG): Change to 11.
17666         (HFP_REG): New.
17667
17668 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17669
17670         * genrecog.c (write_node): Remove a useless local variable.
17671
17672 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
17673
17674         * Makefile.in (options.c options.h): Use stamp file s-options to
17675         avoid unnecessary rebuilds.
17676         (options.o): New target listing dependencies.
17677         (gtyp-gen.h): Use stamp file s-gtyp-gen.
17678         (STAGESTUFF): Add s-gtyp-gen.
17679
17680 2004-01-28  Richard Henderson  <rth@redhat.com>
17681
17682         * ggc.h (ggc_free): Declare.
17683         * ggc-common.c (ggc_realloc): Use it.
17684         * ggc-page.c: Remove lots of inline markers.
17685         (globals): Add free_object_list.
17686         (ggc_alloc): Tidy.
17687         (ggc_free, validate_free_objects): New.
17688         (poison_pages): Provide default.
17689         (ggc_collect): Call validate_free_objects; emit markers to
17690         the debug file.
17691
17692 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
17693             Jim Wilson  <wilson@specifixinc.com>
17694
17695         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
17696         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
17697         scratch pointer.
17698         (ia64_secondary_reload_class): Delete case GR_REGS.
17699         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
17700         Do not allocate a scratch register.
17701         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
17702
17703 2004-01-28  Jan Hubicka  <jh@suse.cz>
17704
17705         * gcse.c (bypass_block): Prevent edges to be unified when we are
17706         about to emit compenstation code.
17707
17708 2004-01-28  Nick Clifton  <nickc@redhat.com>
17709
17710         * config/arm/arm.c (arm_expand_builtin): Force second argument of
17711         the setcwx insn into a register.
17712
17713 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
17714
17715         * config/fp-bit.c (pack_d): When using paired doubles to implement
17716         a long double, round the high part separately.
17717         (unpack_d): Fix the case in which the high part is a power of two
17718         and the low part is a nonzero value of the opposite sign.
17719
17720 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17721
17722         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
17723         (TARGET_STRUCT_VALUE_RTX): Likewise.
17724         (c4x_external_libcall): Likewise.
17725         (c4x_struct_value_rtx): Likewise.
17726         * config/c4x/c4x.h: Remove.
17727         (STRUCT_VALUE_REGNUM): Likewise.
17728         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
17729
17730 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17731
17732         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
17733         (TARGET_STRUCT_VALUE_RTX): Likewise.
17734         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
17735         (STRUCT_VALUE): Likewise.
17736         (PROMOTE_PROTOTYPES): Likewise.
17737
17738 2004-01-27  Roger Sayle  <roger@eyesopen.com>
17739
17740         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
17741         CONST_INT before using INTVAL.
17742
17743 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
17744
17745         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
17746         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
17747         frame if !TARGET_BACKCHAIN.
17748         * config/s390/s390.md ("allocate_stack"): Use pattern only if
17749         TARGET_BACKCHAIN.
17750         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
17751
17752 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
17753
17754         * ia64.c (ia64_function_arg): When placing HFAs in integer
17755         registers, do not special case the mode used for complex
17756         types.  Do not advance int_regs until the current register
17757         is full.
17758
17759 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
17760
17761         PR target/7297
17762         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
17763
17764 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
17765
17766         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
17767         slow, unaligned loads and stores while debugging.  Fix formatting.
17768
17769 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
17770
17771         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
17772         of computing wmode.
17773         (restore_stack_nonlocal): Same.
17774
17775 2004-01-27  Devang Patel <dpatel@apple.com>
17776
17777         * Makefile.in (dwarf2out.o): Depend on input.h
17778         * dbxout.c (dbx_debug_hooks): Add new empty hook for
17779         imported_module_or_decl.
17780         (xcoff_debug_hooks): Same.
17781         * sdbout.c (sdb_debug_hooks): Same.
17782         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
17783         * debug.c (do_nothing_debug_hooks): Same.
17784         (debug_nothing_tree_tree): New function.
17785         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
17786         * dwarf2out.c: Include input.h.
17787         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
17788         (remove_child_TAG): New function.
17789         (dwarf_tag_name): Handle DW_TAG_imported_module.
17790         (gen_subprogram_die): Equate decl number to declaration die. Do not
17791         remove all children dies while reusing declaration die for definition.
17792         Instead, selectively remove only formal parameters.
17793         (gen_variable_die): Equate variable decl to declaration die.
17794         (gen_field_die): Equate field decl to line number.
17795         (force_namespace_die): Replace it with ...
17796         (force_decl_die): ... this.
17797         (force_type_die): New function.
17798         (setup_namespace_context): Replace use of force_namespace_die() with
17799         force_decl_die().
17800         (gen_namespace_die): Same.
17801         (dwarf2out_imported_module_or_decl): New function.
17802
17803 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
17804
17805         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
17806         on CQImode and CHImode incoming arguments in register a7.
17807         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
17808         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
17809         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
17810         xtensa_copy_incoming_a7 before reload.
17811
17812 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
17813
17814         * coverage.c (get_coverage_counts): Give a different message
17815         if flag_guess_branch_prob is set.
17816         * predict.c (counts_to_freqs): Return an int.
17817         (estimate_bb_frequencies): If counts_to_freqs returns zero,
17818         calculate estimates.
17819
17820 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
17821
17822         * config/iq2000/iq2000-protos.h: Remove the prototype for
17823         iq2000_setup_incoming_varargs.
17824         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
17825         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17826         (TARGET_PROMOTE_PROTOTYPES): Likewise.
17827         (TARGET_STRUCT_VALUE_RTX): Likewise.
17828         (TARGET_RETURN_IN_MEMORY): Likewise.
17829         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
17830         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
17831         (iq2000_return_in_memory): Likewise.
17832         (iq2000_setup_incoming_varargs): Make it static.  Receive the
17833         first argument by reference.
17834         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
17835         (PROMOTE_FUNCTION_RETURN): Likewise.
17836         (PROMOTE_PROTOTYPES): Likewise.
17837         (RETURN_IN_MEMORY): Likewise.
17838         (STRUCT_VALUE): Likewise.
17839         (SETUP_INCOMING_VARARGS): Likewise.
17840         (STRICT_ARGUMENT_NAMING): Likewise.
17841
17842 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
17843
17844         * fixinc/fixinc.c (test_test): Initialize res.
17845         (start_flexer): Initialize pz_cmd_save.
17846
17847 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
17848
17849         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
17850         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
17851
17852 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
17853
17854         PR 7198
17855         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
17856         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
17857         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
17858         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
17859         Possibly rename pattern for consistency.
17860         Remove ??? comments suggesting that this be done.
17861         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
17862         New patterns.
17863         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
17864         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
17865         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
17866         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
17867         Update to match.
17868
17869 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
17870
17871         * config/arm/arm.c (output_return_instruction): Only restore IP
17872         into SP if frame_pointer_needed.
17873
17874 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
17875
17876         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
17877         for SCmode and DCmode if ARCH32.
17878         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
17879         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
17880         if ARCH32.
17881         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
17882         if ARCH32.
17883         (BASE_OUTGOING_VALUE_REG): Likewise.
17884
17885 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
17886
17887         PR target/10904
17888         PR target/13058
17889         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
17890         Forbid mode changes from SImode for lower FP regs if ARCH64.
17891
17892 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
17893
17894         * Makefile.in (bt-load.o): Depend on except.h.
17895         * bt-load.c (except.h): #include.
17896         (compute_defs_uses_and_gen): If insn at end of BB can throw
17897         within this function, consider registers used by it unavailable for
17898         btr migration.
17899         (move_btr_def): If insn at end of BB can throw, insert before rather
17900         than after.
17901
17902         * flags.h (flag_btr_bb_exclusive): Declare.
17903         * toplev.c (flag_btr_bb_exclusive): New variable.
17904         (f_options): Add btr-bb-exclusive.
17905         * bt-load.c (augment_live_range): Restore old behaviour if
17906         flag_btr_bb_exclusive is set.
17907         * common.opt: Add entry for -fbtr-bb-exclusive.
17908         * opts.c (common_handle_options): Same.
17909         * doc/invoke.texi: Document -fbtr-bb-exclusive.
17910
17911         * bt-load.c (btrs_live_at_end): New variable.
17912         (compute_defs_uses_and_gen): Compute its pointed-to array.
17913         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
17914         (augment_live_range): When augmenting with a new dominator,
17915         use only its btrs_live_at_end set, but also add in the full set
17916         of the old dominator.
17917         (btr_def_live_range): Use btrs_live_at_end.
17918         (move_btr_def): Set other_btr_uses_before_def, and move new set
17919         to the end of the basic block, if appropriate.
17920         (migrate_btr_defs): Allocate and free btrs_live_at_end.
17921
17922         * bt-load.c (basic_block_freq): Remove outdated comment.
17923
17924 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
17925
17926         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
17927         (PREDICATE_CODES): Remove duplicate.
17928         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
17929         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
17930         (MASK_PROFILE_KERNEL): Adjust define.
17931
17932 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
17933
17934         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
17935         of long string literals from 32 bytes to sizeof (void *) when !-Os
17936         and to 1 with -Os.
17937
17938 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17939
17940         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
17941         constant addresses in the normal mode.
17942
17943 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17944
17945         * system.h (CHAR_BITFIELD): Delete.
17946         (BOOL_BITFIELD): New.
17947         * c-decl.c (c_scope): Use BOOL_BITFIELD.
17948         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
17949
17950 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17951
17952         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
17953         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17954         (TARGET_PROMOTE_PROTOTYPES): Likewise.
17955         (TARGET_STRUCT_VALUE_RTX): Likewise.
17956         (TARGET_RETURN_IN_MEMORY): Likewise.
17957         (arc_return_in_memory): Likewise.
17958         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
17959         (PROMOTE_FUNCTION_RETURN): Likewise.
17960         (RETURN_IN_MEMORY): Likewise.
17961         (STRUCT_VALUE): Likewise.
17962
17963 2004-01-26  Richard Henderson  <rth@redhat.com>
17964
17965         * c-parse.in (extension): Use itype.
17966         (SAVE_EXT_FLAGS): Don't allocate a tree.
17967         (RESTORE_EXT_FLAGS): Don't read a tree.
17968
17969 2004-01-26  Jan Hubicka  <jh@suse.cz>
17970
17971         * cselib.c (discard_useless_values):  Clear out value pointer pointing
17972         to datastructure to be recycled.
17973
17974 2004-01-25  Jan Hubicka  <jh@suse.cz>
17975
17976         * genextract.c (main): Do not output the memset when not checking.
17977
17978 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17979
17980         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
17981         switch statement instead of a chain of if statements.
17982
17983 2004-01-26  Jeff Law  <law@redhat.com>
17984
17985         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
17986         acute accents for Petur Runolfsson's entry.
17987
17988 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17989
17990         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
17991         (TARGET_RETURN_IN_MEMORY): Likewise.
17992         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
17993         (RETURN_IN_MEMORY): Likewise.
17994
17995 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
17996
17997          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
17998          unaligned load/store into smaller loads and stores.
17999
18000 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
18001
18002         * function.c (assign_parms): Do not assign
18003         long long argument to memory in prologue if
18004         is it loaded into register.
18005
18006 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
18007
18008          PR middle-end/13779
18009          * expr.c (emit_group_load): split constant
18010          correctly into register components of PARALLEL insn.
18011
18012 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
18013
18014         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
18015         Use adjust_address_nv directly with appropriate mode.
18016         (restore_stack_nonlocal): Ditto.
18017
18018 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18019
18020         * config/xtensa/xtensa-protos.h: Remove the prototype for
18021         xtensa_builtin_saveregs.
18022         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
18023         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
18024         (TARGET_PROMOTE_PROTOTYPES): Likewise.
18025         (TARGET_STRUCT_VALUE_RTX): Likewise.
18026         (TARGET_RETURN_IN_MEMORY): Likewise.
18027         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
18028         (xtensa_builtin_saveregs): Make it static.
18029         (xtensa_return_in_memory): New.
18030         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
18031         (PROMOTE_FUNCTION_RETURN): Likewise.
18032         (PROMOTE_PROTOTYPES): Likewise.
18033         (STRUCT_VALUE): Likewise.
18034         (RETURN_IN_MEMORY): Likewise.
18035         (EXPAND_BUILTIN_SAVEREGS): Likewise.
18036
18037 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18038
18039         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
18040         (arm_setup_incoming_varargs): Likewise.
18041         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
18042
18043 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18044
18045         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
18046         (cris_setup_incoming_varargs): Likewise.
18047         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
18048
18049 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18050
18051         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
18052         (ns32k_struct_value_rtx): Likewise.
18053         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
18054         NS32K_STRUCT_VALUE_REGNUM.
18055
18056 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18057
18058         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
18059         (TARGET_PROMOTE_PROTOTYPES): Likewise.
18060         (TARGET_STRUCT_VALUE_RTX): Likewise.
18061         (arm_struct_value_rtx): Likewise.
18062         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
18063         (STRUCT_VALUE): Likewise.
18064         (STRUCT_VALUE_REGNUM): Likewise.
18065         (PROMOTE_PROTOTYPES): Likewise.
18066
18067 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18068
18069         * config/ia64/ia64-protos.h: Remove the prototype for
18070         ia64_setup_incoming_varargs and ia64_return_in_memory.
18071         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
18072         (TARGET_RETURN_IN_MEMORY): Likewise.
18073         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
18074         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
18075         (ia64_setup_incoming_varargs): Adjust the arguments to meet
18076         the requirement of TARGET_SETUP_INCOMING_VARARGS.
18077         (ia64_return_in_memory): Make it static.  Change the return
18078         type to bool from int.  Add an argument.
18079         (ia64_struct_value_rtx): New.
18080         * config/ia64/ia64.h: Remove commented-out definitions of
18081         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
18082         PROMOTE_PROTOTYPES.
18083         (RETURN_IN_MEMORY): Remove.
18084         (STRUCT_VALUE_REGNUM): Likewise.
18085         (STRICT_ARGUMENT_NAMING): Likewise.
18086
18087 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
18088
18089         PR target/13666
18090         * config/sparc/sparc.c (function_arg_union_value): New function.
18091         (function_arg): Use it to deal with unions.
18092         (function_value): Likewise.  Define 'regbase' only for ARCH64.
18093         Replace a conditional statement by a simpler one.
18094
18095 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
18096
18097         * config/mips/mips.c (mips16_optimize_gp): Delete.
18098         (mips_reorg): Don't call it.
18099
18100 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18101
18102         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
18103         (floatunsqihf2): Remove operand 6.
18104         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
18105         fix patterns.
18106         (ldi_conditional, ldf_conditional): Validate operands.
18107
18108 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18109
18110         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
18111         (HAVE_GAS_HIDDEN): Undefine as interim measure.
18112
18113 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18114
18115         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
18116         memory references if TARGET_EXPOSE_LDP nonzero.
18117
18118 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18119
18120         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
18121
18122 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18123
18124         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
18125         invalid operand combinations.
18126
18127 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18128
18129         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
18130         c4x_legitimate_address_p.  Fix post_modify check.
18131
18132         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
18133         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
18134
18135 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18136
18137         * config/pa/pa-protos.h: Remove the prototype for
18138         hppa_builtin_saveregs.  Add a prototype for
18139         pa_return_in_memory.
18140         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
18141         (TARGET_PROMOTE_PROTOTYPES): Likewise.
18142         (TARGET_STRUCT_VALUE_RTX): Likewise.
18143         (TARGET_RETURN_IN_MEMORY): Likewise.
18144         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
18145         (pa_struct_value_rtx): Likewise.
18146         (pa_return_in_memory): Likewise.
18147         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
18148         PA_STRUCT_VALUE_REGNUM.
18149         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
18150         (EXPAND_BUILTIN_SAVEREGS): Remove.
18151         (PROMOTE_PROTOTYPES): Likewise.
18152         (PROMOTE_FUNCTION_RETURN): Likewise.
18153
18154 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18155
18156         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
18157         (TARGET_STRUCT_VALUE_RTX): Likewise.
18158         (vax_struct_value_rtx): Likewise.
18159         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
18160         VAX_STRUCT_VALUE_REGNUM.
18161         (PROMOTE_PROTOTYPES): Remove.
18162
18163 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18164
18165         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
18166
18167 2004-01-25  Chris Demetriou  <cgd@broadcom.com>
18168
18169         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
18170         and MIPS64 have HI/LO interlocks.  Update comment.
18171
18172 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18173
18174         * config/stormy16/stormy16-protos.h: Remove the prototype for
18175         xstormy16_setup_incoming_varargs.
18176         * config/stormy16/stormy16.c
18177         (xstormy16_setup_incoming_varargs): Remove.
18178         (xstormy16_return_in_memory): New.
18179         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
18180         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
18181         (TARGET_PROMOTE_PROTOTYPES): Likewise.
18182         (TARGET_STRUCT_VALUE_RTX): Likewise.
18183         (TARGET_RETURN_IN_MEMORY): Likewise.
18184         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
18185         (PROMOTE_FUNCTION_RETURN): Likewise
18186         (PROMOTE_PROTOTYPES): Likewise
18187         (RETURN_IN_MEMORY): Likewise
18188         (STRUCT_VALUE): Likewise
18189         (SETUP_INCOMING_VARARGS): Likewise
18190
18191 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
18192
18193         * config/mips/mips.c (mips_offset_within_object_p): New function.
18194         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
18195         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
18196         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
18197
18198 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18199
18200         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
18201         (PROMOTE_FUNCTION_RETURN): Likewise.
18202
18203 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18204
18205         * config/mn10300/mn10300-protos.h: Remove the prototype for
18206         mn10300_builtin_saveregs.
18207         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
18208         (TARGET_STRUCT_VALUE_RTX): Likewise.
18209         (TARGET_RETURN_IN_MEMORY): Likewise.
18210         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
18211         (mn10300_return_in_memory): Likewise.
18212         (mn10300_builtin_saveregs): Make it static.
18213         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
18214         (RETURN_IN_MEMORY): Likewise.
18215         (STRUCT_VALUE): Likewise.
18216         (EXPAND_BUILTIN_SAVEREGS): Likewise.
18217
18218 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
18219
18220         PR bootstrap/13853
18221         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
18222
18223 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18224
18225         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
18226         using ccr.
18227
18228 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18229
18230         * config/i860/i860-protos.h: Remove the prototype for
18231         i860_saveregs.
18232         * config/i860/i860.c (i860_saveregs): Make it static.
18233         (i860_struct_value_rtx): New.
18234         (TARGET_STRUCT_VALUE_RTX): Likewise.
18235         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
18236         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
18237         I860_STRUCT_VALUE_REGNUM.
18238         (EXPAND_BUILTIN_SAVEREGS): Remove.
18239
18240 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18241
18242         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
18243         (TARGET_RETURN_IN_MEMORY): Likewise.
18244         (m68hc11_struct_value_rtx): Likewise.
18245         (m68hc11_return_in_memory): Likewise.
18246         * config/m68hc11/m68hc11.h: Remove a commented-out definition
18247         of PROMOTE_PROTOTYPES.
18248         (RETURN_IN_MEMORY): Remove.
18249         (STRUCT_VALUE_REGNUM): Likewise.
18250
18251 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18252
18253         * config/mmix/mmix-protos.h: Remove the prototype for
18254         mmix_setup_incoming_varargs.
18255         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
18256         (TARGET_STRUCT_VALUE_RTX): Likewise.
18257         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
18258         (mmix_setup_incoming_varargs): Make it static.
18259         (mmix_struct_value_rtx): New.
18260         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
18261         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
18262         (STRUCT_VALUE_REGNUM): Remove.
18263         (SETUP_INCOMING_VARARGS): Likewise.
18264
18265 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18266
18267         * config/mips/mips-protos.h: Remove the prototypes for
18268         mips_setup_incoming_varargs and mips_return_in_memory.
18269         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
18270         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
18271         (TARGET_PROMOTE_PROTOTYPES): Likewise.
18272         (TARGET_STRUCT_VALUE_RTX): Likewise.
18273         (TARGET_RETURN_IN_MEMORY): Likewise.
18274         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
18275         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
18276         (mips_setup_incoming_varargs): Match the prototype for
18277         TARGET_SETUP_INCOMING_VARARGS.
18278         (mips_return_in_memory): Make it static.  Add argument fntype.
18279         (mips_strict_argument_naming): New.
18280         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
18281         (PROMOTE_FUNCTION_ARGS): Likewise.
18282         (PROMOTE_FUNCTION_RETURN): Likewise.
18283         (STRUCT_VALUE): Likewise.
18284         (RETURN_IN_MEMORY): Likewise.
18285         (SETUP_INCOMING_VARARGS): Likewise.
18286         (STRICT_ARGUMENT_NAMING): Likewise.
18287
18288 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18289
18290         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
18291         (TARGET_RETURN_IN_MEMORY): Likewise.
18292         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
18293         (ip2k_return_in_memory): Likewise.
18294         (ip2k_setup_incoming_varargs): Likewise.
18295         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
18296         (STRUCT_VALUE): Likewise.
18297         (STRUCT_VALUE_INCOMING): Likewise.
18298         (SETUP_INCOMING_VARARGS): Likewise.
18299
18300 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18301
18302         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
18303         (TARGET_RETURN_IN_MEMORY): Likewise.
18304         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
18305         (avr_return_in_memory): Remove.
18306         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
18307         (STRUCT_VALUE): Likewise.
18308         (STRUCT_VALUE_INCOMING): Likewise.
18309         (STRICT_ARGUMENT_NAMING): Likewise.
18310
18311 2004-01-25  Jan Hubicka  <jh@suse.cz>
18312
18313         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
18314
18315 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
18316
18317         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
18318         (mips_regno_mode_ok_for_base_p): Declare.
18319         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
18320         (FRAME_POINTER_REGNUM): Renumber to 78.
18321         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
18322         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
18323         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
18324         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
18325         (REG_MODE_OK_FOR_BASE_P): Likewise.
18326         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
18327         entry for 77 to "$arg" and entry for 78 to "$frame".
18328         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
18329         (mips_reg_mode_ok_for_base_p): Remove.
18330         (mips_regno_mode_ok_for_base_p): New function, derived from old
18331         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
18332         restrictions unless we're being strict.
18333         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
18334
18335 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18336
18337         * c-common.h: Fix comment typos.
18338         * c-decl.c: Likewise.
18339         * cgraphunit.c: Likewise.
18340         * combine.c: Likewise.
18341         * et-forest.c: Likewise.
18342         * flow.c: Likewise.
18343         * function.c: Likewise.
18344         * ifcvt.c: Likewise.
18345         * integrate.c: Likewise.
18346         * jump.c: Likewise.
18347         * postreload.c: Likewise.
18348         * varray.c: Likewise.
18349
18350 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18351
18352         * doc/frontends.texi: Update copyright.
18353         * doc/gcov.texi: Likewise.
18354         * doc/gty.texi: Likewise.
18355         * doc/sourcebuild.texi: Likewise.
18356         * doc/standards.texi: Likewise.
18357
18358 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
18359
18360         PR target/12978
18361         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
18362         Remove movstrqi_small because it conflicts with movstrqi_large.
18363
18364 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18365
18366         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
18367         (TARGET_STRUCT_VALUE_RTX): Likewise.
18368         (cris_struct_value_rtx): Likewise.
18369         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
18370         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
18371         STRUCT_VALUE_REGNUM.
18372         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
18373
18374 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
18375
18376         PR bootstrap/13848
18377         * cse.c (cse_cc_succs): Change the mode of the source expression
18378         as soon as decide we need a new mode.  Don't permit changing modes
18379         if we found a match in a successor block.
18380         (cse_condition_code_reg): Save original mode of source expression
18381         so that we know whether we have to change the mode in other
18382         insns.
18383
18384 2004-01-24  Jan Hubicka  <jh@suse.cz>
18385
18386         * emit-rtl.c (change_address, adjust_address_1, offset_address,
18387         widen_memory_access):  Return early when there is nothing to change.
18388
18389 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
18390
18391         * simplify-rtx.c (simplify_relational_operation): Don't
18392         simplify address == constant into address + -constant == 0.
18393
18394 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18395
18396         * gcc.c (process_command): Don't internationalize the
18397         Copyright message.
18398         * mips-tfile.c (main): Likewise.
18399
18400 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
18401
18402         * cse.c: (cse_cc_succs) Fix comparison warning.
18403
18404 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18405
18406         * config/h8300/h8300.md: Remove extraneous USE in expanders.
18407
18408 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18409
18410         * config/h8300/h8300-protos.h: Provide prototypes for
18411         h8300_legitimate_constant_p and h8300_legitimate_address_p.
18412         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
18413         (h8300_rtx_ok_for_base_p): Likewise.
18414         (h8300_legitimate_address_p): Likewise.
18415         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
18416         h8300_legitimate_constant_p.
18417         (RTX_OK_FOR_BASE_P): Remove.
18418         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
18419
18420 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18421
18422         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
18423         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
18424         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
18425         (REG_OK_FOR_BASE_STRICT_P): Likewise.
18426         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
18427         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
18428         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
18429         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
18430
18431 2004-01-24  Jan Hubicka  <jh@suse.cz>
18432
18433         * cselib.c (remove_useless_values):  Do not access discarded values.
18434
18435 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
18436
18437         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
18438         arrays.
18439
18440 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
18441
18442         * recog.c: Fix a typo in copyright.
18443
18444 2004-01-23  Andrew Pinski  <apinski@apple.com>
18445
18446         * config/rs6000/rs6000.md (call): Fix misappiled patch.
18447         (call_value): Likewise.
18448
18449 2004-01-23  Richard Henderson  <rth@redhat.com>
18450
18451         PR opt/12941
18452         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
18453         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
18454         if SHIFT_COUNT_TRUNCATED is set.
18455
18456 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
18457
18458         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
18459         separate real and imaginary parts.
18460         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
18461
18462 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
18463
18464         PR target/13674
18465         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
18466         loading into GPR.
18467
18468 2004-01-23  Jan Hubicka  <jh@suse.cz>
18469
18470         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
18471         change.
18472
18473         * alloc-pool.c (align_four): Kill.
18474         (create_alloc_pool): Align size to eight.
18475         (free_alloc_pool, free_pool): Invalidate deallocated data.
18476
18477 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
18478
18479         PR gcc/1532
18480         * cse.c (cse_change_cc_mode): New static function.
18481         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
18482         (cse_condition_code_reg): New function.
18483         * rtl.h (cse_condition_code_reg): Declare.
18484         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
18485         * target.h (struct gcc_target): Add fixed_condition_code_regs and
18486         cc_modes_compatible.
18487         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
18488         (TARGET_CC_MODES_COMPATIBLE): Define.
18489         (TARGET_INITIALIZER): Add new initializers.
18490         * targhooks.c (default_cc_modes_compatible): New function.
18491         * targhooks.c (default_cc_modes_compatible): Declare.
18492         * hooks.c (hook_bool_intp_intp_false): New function.
18493         * hooks.h (hook_bool_intp_intp_false): Declare.
18494         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
18495         (TARGET_CC_MODES_COMPATIBLE): Define.
18496         (ix86_fixed_condition_code_regs): New static function.
18497         (ix86_cc_modes_compatible): Likewise.
18498         * doc/tm.texi (Condition Code): Document new hooks.
18499
18500 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
18501
18502         * fixinc/inclhack.def (bad_lval): Renamed to ...
18503         (alpha_bad_lval): ... this.
18504         Removed file list.
18505         Restrict to alpha*-dec-osf*.
18506         * fixinc/fixincl.x: Regenerate.
18507         * fixinc/tests/base/dirent.h: Remove, moving test ...
18508         * fixinc/tests/base/testing.h: ... here, reflecting new name.
18509
18510 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
18511
18512         PR c/13814
18513         * c-decl.c (diagnose_mismatched_decls): Also discard a
18514         built-in if we encounter an old-style definition with the
18515         same name.
18516
18517 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
18518
18519         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
18520         set to default{32,64}.
18521
18522 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
18523
18524         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
18525         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
18526
18527 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
18528             Olivier Hainque  <hainque@act-europe.fr>
18529
18530         * fold-const.c (fold_binary_op_with_conditional_arg): Only
18531         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
18532
18533 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
18534
18535         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
18536         size for minipool references.
18537
18538 2004-01-23  Roger Sayle  <roger@eyesopen.com>
18539
18540         * real.c (real_floor, real_ceil): Tweak to allow input and output
18541         arguments to overlap.
18542         (real_round): New function to implement round(3m) semantics.
18543         * real.h (real_round): Prototype here.
18544         * builtins.c (fold_builtin_round): New function to constant fold
18545         round, roundf and roundl.
18546         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
18547
18548 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
18549
18550         PR optimization/13819
18551         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
18552         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
18553         (sh_handle_sp_switch_attribute): Remove warning.
18554
18555 2004-01-23  Jan Hubicka  <jh@suse.cz>
18556
18557         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
18558
18559 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
18560
18561         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
18562         may or may not return non-NIL.
18563         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
18564         check CANNOT_CHANGE_MODE_CLASS
18565
18566 2004-01-23  Jan Hubicka  <jh@suse.cz>
18567
18568         * basic-block.h (PROP_POSTRELOAD): New macro.
18569         (CLEANUP_LOG_LINKS): New.
18570         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
18571         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
18572
18573         * cselib.c (value_pool): New.
18574         (new_cselib_val): Use pool.
18575         (cselib_init): Initialize value_pool
18576         (cselib_finish): Free pool.
18577
18578 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
18579
18580         * config/sparc/sparc.c (scan_record_type): New function.
18581         (function_arg_slotno): Use it to determine which kinds of
18582         registers the record can be passed in.
18583
18584 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
18585
18586         * config/pa/fptr.c: Fix old-style definition.
18587
18588 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
18589
18590         PR optimization/13724
18591         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
18592         represents the zero bits produced by a ZERO_EXTEND operation.
18593
18594 2004-01-22  Roger Sayle  <roger@eyesopen.com>
18595
18596         PR optimization/13821
18597         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
18598         correctly calculate the lowpart offset of the contracted subreg.
18599
18600 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
18601
18602         * doc/invoke.texi (Optimize Options): Note that --param arguments
18603         are subject to change without notice.
18604
18605 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
18606
18607         * config.gcc (mips-sgi-irix6*o32): Removed.
18608         * config/mips/iris6-o32-as.h: Likewise.
18609         * config/mips/iris6-o32-gas.h: Likewise.
18610         * config/mips/iris6-o32.h: Likewise.
18611
18612 2004-01-22  Jan Hubicka  <jh@suse.cz>
18613
18614         * cfgcleanup.c (first_pass): New static variable.
18615         (try_forward_edges):  Add work limiting check for threading.
18616         (try_crossjump_bb):  Add work limiting check for crossjumping.
18617         (try_optimize_cfg):  Maintain first pass variable.
18618
18619 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
18620
18621         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
18622         handles complex and vector modes.
18623
18624 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
18625
18626         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
18627         (REG_OK_FOR_BASE_P_STRICT): Likewise.
18628         (STRICT): Likewise.
18629
18630 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
18631
18632         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
18633         (genrtl_for_stmt): Remove emit_nop calls.
18634
18635 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18636
18637         PR target/13713
18638         PR target/13324
18639         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
18640         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
18641         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
18642
18643 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
18644
18645         * config/arm/arm.c: Include "debug.h".
18646         (thumb_pushpop): Take two new arguments.  Add some commentary.
18647         Output frame information when pushing.
18648         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
18649         thumb_pushpop.
18650         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
18651         offset, and pass it to thumb_pushpop.  Output CFI information.
18652         (thumb_expand_prologue): Add some frame-related markers and notes.
18653
18654 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
18655
18656         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
18657         for TARGET_64BIT.
18658         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
18659         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
18660
18661 2004-01-22  Roger Sayle  <roger@eyesopen.com>
18662             Paolo Bonzini  <bonzini@gnu.org>
18663
18664         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
18665         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
18666         * rtl.h (subreg_lsb_1): Prototype here.
18667         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
18668         sign extensions.
18669
18670 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
18671
18672         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
18673         macro need not be defined if jump-tables should contain
18674         relative addresses only when -fPIC or -fPIC is in effect.
18675
18676 2004-01-22  Jan Hubicka  <jh@suse.cz>
18677
18678         * alias.c (reg_base_value): Turn into varray.
18679         (reg_base_value_size): Kill.
18680         (old_reg_base_value): New deletable varray.
18681         (alias_invariant_size): New variable.
18682         (REG_BASE_VALUE): Update to use varray.
18683         (find_base_value): Likewise.
18684         (record_set): Likewise.
18685         (record_base_value): Likewise.
18686         (memrefs_conflict_p): Likewise.
18687         (record_set): Likewise
18688         (record_base_value): Likewise.
18689         (memrefs_conflict_p): Use alias_invariant_size.
18690         (init_alias_analysis): Use varray; set alias_invariant_size;
18691         rescale other arrays to be sized by maxreg.
18692         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
18693
18694 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
18695
18696         * config/sparc/sparc.c (function_arg_slotno): Use
18697         FLOAT_TYPE_P to detect FP fields in structures.
18698         (function_arg_record_value_1): Likewise.
18699         (function_arg_record_value_2): Likewise.
18700
18701 2004-01-22  Jan Hubicka  <jh@suse.cz>
18702
18703         * function.c (allocate_struct_function): Do not initialize expr, emit
18704         and varasm.
18705         (prepare_function_start): Do it here.
18706         * c-parse.in (maybe_type_qual): Do not produce line number notes.
18707
18708 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
18709
18710         PR target/13559
18711         * config/sparc/sparc.c (function_arg_record_value_3): Revert
18712         to 'word_mode' once the first slot has been filled.
18713
18714 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
18715
18716         * config/sparc/sparc.c (function_arg_record_value_1): Fix
18717         computation of the number of integer registers required.
18718
18719 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
18720
18721         * config/i386/i386.md: Simplify certain comparisons of
18722         const_int.
18723
18724 2004-01-21  Andrew Pinski  <apinski@apple.com>
18725
18726         PR target/13785
18727         * config/rs6000/rs6000.md (call_value): Force operand
18728         1 not operand 0 into a register.
18729
18730 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
18731
18732         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
18733         unwind-dw2-fde.h: Update copyright.
18734
18735 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18736
18737         * pa-protos.h: Update copyright.
18738         * pa.h: Likewise.
18739         * pa.md: Likewise.
18740
18741 2004-01-21  Caroline Tice  <ctice@apple.com>
18742
18743         PR target/12308
18744         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
18745         flags register.
18746         (fix_truncdfdi2): Likewise.
18747         (fix_truncsfdi2): Likewise.
18748         (*fix_truncdi_1): Likewise.
18749         (fix_truncxfsi2): Likewise.
18750         (fix_truncdfsi2): Likewise.
18751         (fix_truncsfsi2): Likewise.
18752         (*fix_truncsi_1): Likewise.
18753         (fix_truncxfhi2): Likewise.
18754         (fix_truncdfhi2): Likewise.
18755         (fix_truncsfhi2): Likewise.
18756         (*fix_trunchi_1): Likewise.
18757
18758 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
18759
18760         * alias.c, basic-block.h, c-common.c, c-common.h,
18761         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
18762         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
18763         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
18764         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
18765         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
18766         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
18767         genautomata.c, genconditions.c, genemit.c, genflags.c,
18768         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
18769         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
18770         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
18771         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
18772         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
18773         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
18774         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
18775         unwind.h, varray.c, varray.h: Update copyright.
18776
18777 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
18778
18779         * config/h8300/coff.h: Update copyright.
18780         * config/h8300/elf.h: Likewise.
18781         * config/h8300/h8300-protos.h: Likewise.
18782         * config/h8300/h8300.c: Likewise.
18783         * config/h8300/h8300.h: Likewise.
18784         * config/h8300/h8300.md: Likewise.
18785
18786 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18787
18788         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
18789         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
18790         ultrix_unistd): New hacks.
18791         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
18792         ULTRIX_CONST2_CHECK): Add checks.
18793         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
18794         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
18795         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
18796         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
18797         * fixinc/tests/base/locale.h: New file.
18798         * fixinc/fixincl.x: Rebuilt.
18799
18800 2004-01-21  Andreas Jaeger  <aj@suse.de>
18801             Michael Matz  <matz@suse.de>
18802
18803         * doc/extend.texi (Extended Asm): Clarify memory clobber.
18804
18805 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
18806
18807         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
18808         _Jv_RegisterClasses through a function pointer.
18809
18810 2004-01-21  Falk Hueffner  <falk@debian.org>
18811
18812         PR target/12898
18813         * config/alpha/alpha.c (alpha_emit_set_const_1): If
18814         no_new_pseudos, use gen_rtx_SET directly for SImode constants
18815         which need multiple instructions to emit.
18816
18817 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
18818
18819         * config/m32r/m32r.h (CPP_SPEC): Define.
18820
18821 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
18822
18823         * c-decl.c (merge_decls): Kill different_binding_level and
18824         different_tu arguments; simplify throughout.
18825         (duplicate_decls): Likewise.
18826         (pushdecl, merge_translation_unit_decls): Update calls to
18827         duplicate_decls.
18828
18829 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18830
18831         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
18832         $(SYSTEM_H).
18833         (print-rtl1.o): Depend on $(SYSTEM_H).
18834
18835 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
18836
18837         PR bootstrap/12730
18838         * configure.ac: Delete definition and subsitution of docdir.
18839         Add info, man, srcman and srcinfo to target hooks. Create doc/
18840         directory.
18841         * configure: Regenerate.
18842         * Makefile.in: Don't substitute docdir and delete all references
18843         throughout.
18844         (MAKEINFOFLAGS): Define.
18845         (stmp-docobjdir): Delete.
18846         (INFOFILES, MANFILES): Define.
18847         (info): Call lang.info, srcinfo and lang.srcinfo.
18848         (generated-manpages): Call lang.man, srcman and lang.srcman.
18849         (srcinfo, srcman): New rules to copy back files to source directory.
18850         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
18851         (install-man): Revamp rule.
18852         (clean): Update dvi directory.
18853         (distclean): Delete TAGS from front end directorys.
18854         (maintainer-clean): Delete all document files in source directory.
18855
18856         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
18857         (objc.srcman, objc.srcinfo): Likewise.
18858
18859 2004-01-20  Bruce Korb  <bkorb@gnu.org>
18860
18861         * fixinc/inclhack.def(math_exception): bypass only for glibc.
18862         (matherr_decl): rename & relocate as exception_structure.
18863         This fix must precede the math_exception fix.
18864
18865 2004-01-20  Roger Sayle  <roger@eyesopen.com>
18866
18867         * fold-const.c (fold_convert): Rename to fold_convert_const.
18868         (fold_convert_const): Change arguments to take a tree_code,
18869         a type and the operand/expression to be converted.  Return
18870         NULL_TREE if no simplification is possible.  Add support for
18871         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
18872         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
18873         Adjust call to fold_convert to match new fold_convert_const.
18874         Avoid modifying the tree passed to fold in-place.
18875
18876 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
18877
18878         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
18879         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
18880         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
18881
18882 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18883
18884         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
18885         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
18886         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
18887         (emit_move_sequence): Check scratch_reg first in various if statements.
18888         Extend source simplification to handle all 64-bit CONST_INTs.
18889         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
18890         frame size.
18891         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
18892         frame offset calculations.
18893         * pa.h (NEW_HP_ASSEMBLER): Add comment.
18894         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
18895         LEGITIMATE_64BIT_CONST_INT_P): Define.
18896         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
18897         any CONST_INT as legitimate during and after reload.
18898         (VAL_32_BITS_P, INT_32_BITS): Define.
18899         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
18900
18901 2004-01-20  Jan Hubicka  <jh@suse.cz>
18902
18903         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
18904         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
18905         containing hard regs are shared.
18906         (gen_hard_reg_clobber): New function.
18907         (hard_reg_clobbers): New array.
18908         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
18909         (copy_rtx): Do not copy clobbers containing hard regs.
18910         * rtl.h (gen_hard_reg_clobber): Declare.
18911
18912 2004-01-20  Jan Hubicka  <jh@suse.cz>
18913
18914         * varray.c:  Include hashtab.h
18915         (varray_descriptor): New structure.
18916         (hash_descriptor, eq_descriptor, varray_descriptor,
18917         print_statistics): New static functions
18918         (varray_init, varray_grow): Update statistics
18919         (dump_varray_statistics): New function.
18920         * varray.h (dump_varray_statistics): Declare.
18921         * toplev.c (finalize): Call it.
18922         * Makefile.in (varray.o): Add dependency.
18923
18924 2004-01-20  Jan Hubicka  <jh@suse.cz>
18925
18926         * cselib.c: Include alloc-pool.h
18927         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
18928         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
18929         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
18930         unchain_one_elt_loc_list_pool, unchain_one_value,
18931         new_cselib_val): Simplify using allocpool.
18932         (cselib_init): Initialize allocpools.
18933         (cselib_finish): Finish allocpools.
18934         * Makefile.in (cselib.o): Depend on alloc-pool.h
18935
18936 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
18937
18938         * config/mips/mips.c (mips_load_call_address): Make the call insn
18939         use $gp if it could be calling a lazy binding stub.
18940
18941 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
18942
18943         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
18944         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
18945         (TARGET_STRUCT_VALUE_RTX): Likewise.
18946         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
18947         (PROMOTE_FUNCTION_RETURN): Remove.
18948         (STRUCT_VALUE): Remove.
18949
18950 2004-01-20  Denis Chertykov  <denisc@overta.ru>
18951
18952         PR bootstrap/13735
18953         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
18954         register as pointer after reload.
18955
18956 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18957
18958         PR optimization/12440
18959         * loop.c: Include ggc.h.
18960         (loop_optimize): Run garbage collector between optimization of loops.
18961         * Makefile.in (loop.o): Add GGC_H dependency.
18962
18963 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
18964
18965         * gcc/config/rs6000/rs6000.c (function_arg) Handle
18966         vector register special in function without prototype.
18967         (function_arg_advance): Vector parameters get always
18968         GPRs allocated for the linux64 target.
18969
18970 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18971
18972         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
18973         not TARGET_M32RX_MASK.
18974
18975 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
18976
18977         PR target/13557
18978         * config/sparc/sparc.c (function_arg): Reorder the cases.
18979
18980 2004-01-19  Per Bothner  <per@bothner.com>
18981
18982         Move cpp_reader's line_maps field to a shared global.
18983         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
18984         and change the type to a pointer rather than a struct.
18985         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
18986         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
18987         Likewise.
18988         * cppfiles.c (validate_pch):  Likewise.
18989         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
18990         Likewise.
18991         * cpperror.c (print_location):  Likewise.
18992         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
18993         * cppinit.c (cpp_create_reader):  Handle new parameter.
18994         (cpp_destroy):  Don't free line_maps - that's no longer our job.
18995         * input.h (line_table):  New variable.
18996         * toplev.c (line_table):  Declare variable.
18997         (general_init):  Initialize line_table.
18998         * c-opts.c (c_common_init_options):  Pass line_table to
18999         cpp_create_reader.
19000         * fix-header.c (read_scan_file):  New local variable line_table.
19001         Initialize, and pass it to cpp_create_reader.
19002         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
19003         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
19004
19005 2004-01-19  Per Bothner  <per@bothner.com>
19006
19007         Implement a cache for linemap_lookup.
19008         * line-map.h (struct_line_maps):  Add cache field.
19009         * line-map.c (linemap_init):  Zero cache field.
19010         (linemap_add):  Set cache field to offset of newly allocated map.
19011         (linemap_lookup):  Use and set cache field.
19012
19013 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
19014
19015         PR optimization/13567
19016         * cse.c (cse_basic_block): Call cse_insn with a non-null
19017         libcall_insn for the last SET insn of a no-confilict block.
19018
19019 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
19020
19021         * Makefile.in (target_noncanonical, program_transform_name): Use
19022         immediate define instead of deferred.
19023         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
19024         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
19025         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
19026         deferred backquote.
19027
19028 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
19029
19030         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
19031         true unconditionally.
19032         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
19033         Remove.
19034         (build_unary_op, build_modify_expr): Don't handle extended
19035         lvalues.
19036         (build_component_ref, build_conditional_expr): Call non_lvalue
19037         instead of pedantic_non_lvalue.
19038         (build_c_cast): Don't condition use of non_lvalue on pedantic.
19039         * fold-const.c (fold): Don't check pedantic directly for
19040         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
19041         passed to pedantic_non_lvalue.
19042         * doc/extend.texi: Remove documentation of extended lvalues.
19043
19044 2004-01-19  Roger Sayle  <roger@eyesopen.com>
19045
19046         PR optimization/5263
19047         * simplify-rtx.c (associative_constant_p): Delete.
19048         (simplify_associative_operation): Rewrite to linearize terms, and
19049         attempt to simplify new term against both left and right subterms.
19050         (simplify_binary_operation): Call swap_commutative_operands_p on
19051         op0 and op1, not trueop0 and trueop1.  Move the initialization of
19052         trueop0 and trueop1 down to where first needed.
19053         (simplify_relational_operation): Likewise.
19054         * rtlanal.c (commutative_operand_precedence): Also order constant
19055         operands using avoid_constant_pool_reference.
19056
19057 2004-01-19  Richard Henderson  <rth@redhat.com>
19058
19059         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
19060         don't check memory mode.
19061         (unaligned_memory_operand): Likewise.
19062         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
19063         abort for op0 not MEM.
19064
19065         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
19066         is not a reg, copy to a scratch first.
19067         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
19068         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
19069         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
19070         (reload_inqi, reload_inhi): Fix mode of op0.
19071         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
19072         reload_outhi_help): Likewise.  Use define_insn_and_split.
19073
19074         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
19075         as well as $29 dead.
19076
19077 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
19078
19079         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
19080         "tls_object" for thread-local objects.
19081         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
19082         "#tls" for thread-local sections.
19083         * configure.ac (thread-local checks): Specify --fatal-warnings in
19084         every binutils-specific checks.  For sparc*-*-*, test whether the
19085         OS is Solaris and the tools are native and act accordingly.
19086         * configure: Rebuild.
19087
19088 2004-01-19  Jeff Law  <law@redhat.com>
19089
19090         * contrib.texi: Update Paolo Carlini's entry.  New entries for
19091         Jerry Quinn and Petur Runolfsson.
19092
19093 2004-01-19  Roger Sayle  <roger@eyesopen.com>
19094
19095         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
19096         size, don't use the larger zero-extending loads.
19097
19098 2004-01-19  Richard Henderson  <rth@redhat.com>
19099
19100         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
19101         * alpha.md (UNSPEC_NT_LDA): Remove.
19102         (UNSPEC_CVTLQ, cvtlq): New.
19103         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
19104         (extendsidi2_fix): Remove.
19105         (extendsidi2 splitter): Use cvtlq.
19106         (extendsidi2 fp peepholes): Remove.
19107         (cvtql): Use SFmode instead of SImode.
19108         (fix_trunc?fsi): Update to match.
19109         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
19110         (movsi): Rename from movsi_nofix, remove f alternatives.
19111         (movsi_nt_vms): Similarly.
19112         (movsi_fix, movsi_nt_vms_fix): Remove.
19113         (nt_lda): Remove.
19114         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
19115
19116 2004-01-19  Jan Hubicka  <jh@suse.cz>
19117
19118         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
19119         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
19120         list.
19121         (cgraph_remove_unreachable_nodes): New function
19122         (cgraph_decide_inlining_of_small_function): Fix pasto.
19123         (cgraph_decide_inlining_incrementally): Fix pasto.
19124         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
19125
19126 2004-01-19  Steven Bosscher  <stevenb@suse.de>
19127
19128         * gengtype.c (header_file): Make it static.
19129         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
19130         * gengtype.h (header_file): No longer extern.
19131
19132 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
19133
19134         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
19135         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
19136         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
19137
19138 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
19139
19140         * stmt.c (HAVE_casesi): Define it not already defined.
19141         (HAVE_tablejump): Likewise.
19142         (expand_end_case_type): Resort to the binary tree method if
19143         neither casesi or tablejump is available.
19144
19145 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
19146
19147         * final.c (final_scan_insn): Make non-static again.
19148         * output.h (final_scan_insn): Re-add prototype.
19149         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
19150         to final_scan_insn call.
19151         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
19152         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
19153         * config/pa/pa.c (output_lbranch, output_call): Likewise.
19154         * config/sh/sh.c (print_slot): Likewise.
19155         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
19156         (output_sibcall, sparc_flat_function_epilogue): Likewise.
19157
19158 2004-01-18  Jan Hubicka  <jh@suse.cz>
19159
19160         * basic-block.h (try_redirect_by_replacing_jump): Declare.
19161         * cfgcleanup.c (try_optimize_cfg): Use it.
19162         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
19163         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
19164         Kill hack.
19165         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
19166
19167         Revert:
19168         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
19169
19170                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
19171                 even after reload, just don't remove the actual jump tables.
19172
19173 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
19174
19175         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
19176
19177 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
19178
19179         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
19180         the size of a pointer in bytes.
19181
19182 2004-01-18  Roger Sayle  <roger@eyesopen.com>
19183
19184         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
19185         live "next" variable, which could lead to an infinite loop.
19186
19187 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
19188
19189         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
19190         block.
19191
19192         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
19193         Check for NULL in the chain and remove repeated code.
19194
19195 2004-01-18  Jan Hubicka  <jh@suse.cz>
19196
19197         * coverage.c (checksum_string): Rename to ...
19198         (coverage_checksum_string): ... this one, Use crc32_string; recognize
19199         names containing random number and zero the number out in order to get
19200         match.
19201
19202 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
19203
19204         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
19205
19206 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
19207
19208         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
19209         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
19210         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
19211         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
19212         doc/trouble.texi: Remove trailing whitespace.
19213
19214 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
19215
19216         PR target/7618
19217         * config/mips/mips.c: Include cfglayout.h.
19218         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
19219         (mips_unspec_offset_high): Add temporary register argument.
19220         (mips_load_call_address): New function, split out from...
19221         (mips_expand_call): ...here.
19222         (mips_output_cplocal): New function.
19223         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
19224         (mips_emit_loadgp): New function, split out from...
19225         (mips_expand_prologue): ...here.
19226         (mips_output_mi_thunk): New function.
19227
19228 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
19229
19230         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
19231         mcpu32): Remove redundant checks for implied target predefines.
19232
19233 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
19234
19235         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
19236         Return type is unsigned int not int.
19237         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
19238         Likewise.
19239
19240 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
19241
19242         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
19243         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
19244         "GNU/Linux" and "Microsoft Windows" terminology.
19245
19246 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
19247
19248         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
19249         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
19250         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
19251         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
19252         @smallexample instead of @example.
19253
19254 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
19255
19256         * objc/objc-act.c (build_objc_method_call): Use target
19257         hooks instead of macros to determine if ..._stret
19258         dispatchers should be used (NeXT runtime only).
19259
19260 2004-01-17  Roger Sayle  <roger@eyesopen.com>
19261
19262         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
19263         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
19264
19265 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
19266
19267         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
19268         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
19269         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
19270         macros.
19271         * reload1.c (emit_reload_insns): Use them.
19272         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
19273         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
19274         for NULL PATTERN.
19275
19276 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
19277
19278         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
19279         (final_scan_insn): Update to take an additional SEEN argument.  Emit
19280         a line note after the prologue.  Make static.
19281         (line_note_exists): Remove.
19282         (final): Don't initialize line_note_exists.  Update call to
19283         final_scan_insn.
19284         * output.h (final_scan_insn): Remove prologue.
19285         * function.c (set_insn_locators): Update comment.
19286         (thread_prologue_and_epilogue_insns): Add a comment.
19287
19288 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
19289
19290         PR target/10781
19291         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
19292         Prototype.
19293         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
19294         New function.
19295         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
19296         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
19297         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
19298
19299 2004-01-17  Jan Hubicka  <jh@suse.cz>
19300
19301         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
19302         commit.
19303
19304         * toplev.c (HAVE_conditional_execution): Provide default.
19305         (rest_of_handle_reorder_blocks): For conditional_execution target
19306         update liveness once after all transformations
19307         (rest_of_compilation): Do crossjumping before ce3.
19308
19309 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
19310
19311         * alias.c (new_alias_set): Mark last_alias_set for PCH.
19312         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
19313         for PCH.
19314         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
19315         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
19316         (get_TOC_alias_set): Mark 'set' for PCH.
19317
19318 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
19319
19320         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
19321         even after reload, just don't remove the actual jump tables.
19322
19323 2004-01-17  J. Brobecker  <brobecker@gnat.com>
19324
19325         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
19326         Remove checks for is_ada() and TREE_UNSIGNED.
19327         (subrange_type_die): Emit a byte_size attribute if the subrange
19328         type size is different from the base type size.
19329         (modified_type_die): Replace call to is_ada_subrange_type() by
19330         call to is_subrange_type().
19331
19332 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
19333
19334         * config/sh/sh.c: Include ggc.h.
19335
19336 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
19337
19338         * Makefile.in (MD5_H): New.
19339         (fold-const.o): Depend on md5.h.
19340         (dwarf2out.o): Likewise.
19341         (cppfiles.o): Likewise.
19342         * cppfiles.c: Include md5.h.
19343         (should_stack_file): Check against list read from PCH file.
19344         (struct pchf_data): New.
19345         (pchf): New variable.
19346         (struct pchf_adder_info): New.
19347         (pchf_adder): New.
19348         (pchf_save_compare): New.
19349         (_cpp_save_file_entries): New.
19350         (_cpp_read_file_entries): New.
19351         (struct pchf_compare_data): New.
19352         (pchf_compare): New.
19353         (check_file_against_entries): New.
19354         * cpphash.h (_cpp_save_file_entries): Prototype.
19355         (_cpp_read_file_entries): Prototype.
19356         * cpppch.c (cpp_write_pch_state): Write the list of headers.
19357         (cpp_read_state): Read the list of headers.
19358
19359 2004-01-17  Jan Hubicka  <jh@suse.cz>
19360
19361         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
19362         builtin_expect specially.
19363         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
19364         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
19365         * invoke.texi (max-inline-insns-single): Set to 100.
19366         (large-function-insns): Set to 3000.
19367
19368 2004-01-16  Eric Christopher  <echristo@redhat.com>
19369             Chandrakala Chavva <cchavva@redhat.com>
19370
19371         * cppcharset.c (one_iso88591_to_utf8): New function.
19372         (convert_iso88591_utf8): Ditto. Use.
19373         (conversion_tab): Use.
19374         (_cpp_input_to_utf8): New function.
19375         (_cpp_init_iconv_buffer): Ditto.
19376         (_cpp_close_iconv_buffer): Ditto.
19377         * cpphash.h: Prototype new functions.
19378         (cpp_buffer): Add input_cset_desc.
19379         * cppinit.c: Add input_charset default.
19380         * cpplib.c (cpp_push_buffer): Support init and
19381         close of iconv.
19382         * cpplib.h (cpp_options): Add input_charset.
19383
19384 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
19385
19386         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
19387         * config/alpha/unicosmk.h: Remove a commented-out definition
19388         of ASM_OUTPUT_SECTION_NAME.
19389         * config/stormy16/stormy16.h: Likewise.
19390
19391 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
19392
19393         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
19394         (alpha___extern_prefix_sys_stat): ... this.
19395         Apply to <sys/mount.h>, too.
19396         Tweak to match more variations.
19397         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
19398
19399         * fixinc/inclhack.def (alpha___extern_prefix,
19400         alpha___extern_prefix_standards): New hacks to obey
19401         __PRAGMA_EXTERN_PREFIX.
19402         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
19403         test.
19404         * fixinc/tests/base/standards.h: Likewise.
19405
19406         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
19407         variations.
19408         New testcase.
19409         * fixinc/tests/base/pthread.h: Handle it.
19410
19411         * fixincl/inclhack.def (bad_lval): Sort file list.
19412         Add many missing files up to Tru64 UNIX V5.1B.
19413         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
19414         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
19415         order.
19416
19417         * fixinc/fixincl.x: Regenerate.
19418
19419 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
19420
19421         * version.c (version_string): Change to 3.5.0.
19422         * doc/include/gcc-common.texi (version-GCC): Likewise.
19423
19424 2004-01-16  Jan Hubicka  <jh@suse.cz>
19425
19426         * i386.md (load_tp_di): Fix pasto.
19427
19428         PR opt/13608
19429         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
19430
19431         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
19432         pp_c_character_constant, pp_c_floating_constant,
19433         pp_c_additive_expression, pp_c_shift_expression,
19434         pp_c_equality_expression, pp_c_and_expression,
19435         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
19436         pp_c_logical_and_expression): Remove inline modifier.
19437         * dwarf2out.c (get_AT): Likewise.
19438         * et-forest.c (et_splay): Likewise.
19439         * ra.h (ra_alloc, ra_calloc): Likewise
19440
19441 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
19442
19443         * config/frv/frv-protos.h: Fix comment formatting.
19444         * config/frv/frv.c: Likewise.
19445         * config/frv/frv.h: Likewise.
19446         * config/frv/frv.md: Likewise.
19447         * config/frv/frvbegin.c: Likewise.
19448         * config/frv/frvend.c: Likewise.
19449
19450 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
19451
19452         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
19453         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
19454         LINKER_DOES_NOT_WORK_WITH_DWARF2.
19455         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
19456
19457 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
19458
19459         PR 11864
19460         * postreload.c (reload_cse_simplify_operands): Don't remove
19461         implicit extension from LOAD_EXTEND_OP.
19462
19463 2004-01-16  Jan Hubicka  <jh@suse.cz>
19464
19465         PR opt/11350
19466         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
19467         after reload.
19468         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
19469         rtl_try_redirect_by_replacing_branch): Likewise.
19470
19471 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
19472
19473         PR pch/13689
19474         * alias.c (struct alias_set_entry): Mark for GC.
19475         (alias_sets): Make static, mark for GC.
19476         (record_alias_subset): Use GC to allocate alias structures.
19477         * varray.c (element): Make generic varrays GCed.
19478
19479         PR pch/13361
19480         * c-typeck.c (constructor_asmspec): Delete.
19481         (struct initializer_stack): Delete field 'asmspec'.
19482         (start_init): Delete saving of asmspec.
19483         (finish_init): Don't update constructor_asmspec.
19484         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
19485         * stmt.c (expand_asm): Duplicate strings from tree.
19486         (expand_asm_operands): Likewise.
19487         * tree.c (tree_size): Update computation of size of STRING_CST.
19488         (make_node): Don't make STRING_CST nodes.
19489         (build_string): Allocate string with tree node.
19490         * tree.def (STRING_CST): Update comment.
19491         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
19492         (tree_string): Place contents of string in tree node.
19493         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
19494         from tree.
19495
19496         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
19497         altivec operands.
19498
19499 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19500
19501         * c-common.h: Fix comment formatting.
19502         * c-cppbuiltin.c: Likewise.
19503         * c-pragma.c: Likewise.
19504         * calls.c: Likewise.
19505         * collect2.c: Likewise.
19506         * cppcharset.c: Likewise.
19507         * cpptrad.c: Likewise.
19508         * dbxout.c: Likewise.
19509         * defaults.h: Likewise.
19510         * dwarf2out.c: Likewise.
19511         * fold-const.c: Likewise.
19512         * genautomata.c: Likewise.
19513         * genconditions.c: Likewise.
19514         * genflags.c: Likewise.
19515         * gengtype.c: Likewise.
19516         * integrate.c: Likewise.
19517         * loop.c: Likewise.
19518         * predict.c: Likewise.
19519         * sdbout.c: Likewise.
19520
19521 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
19522
19523         * config/ia64/ia64.md (*movti_internal): C output template
19524         extracted to ia64.c.
19525         (*movti_internal_reg): Delete.
19526         (reload_inti, reload_outti): Use the correct mode on operand 2
19527         in the first place, don't fix it up in the output template.
19528         (movtf, reload_ointf, reload_outtf): New expanders.
19529         (*movtf_internal): New define_insn_and_split.
19530         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
19531         make static; do not hand TFmode CONST_DOUBLEs to split_double.
19532         (ia64_split_tmode_move): New function, body mostly pulled
19533         from ia64.md:*movti_internal.
19534         (ia64_function_arg_words): New function, extracted common
19535         logic from ia64_function_arg et seq.
19536         (ia64_function_arg_offset): Likewise.  Handle correctly the
19537         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
19538         (ia64_function_arg, ia64_function_arg_partial_nregs)
19539         (ia64_function_arg_advance): Use ia64_function_arg_words and
19540         ia64_function_arg_offset.
19541         (ia64_function_value): TCmode does not go in float regs.
19542         (ia64_secondary_reload_class): Also handle TFmode.
19543         * config/ia64/ia64-protos.h: Remove prototype for
19544         ia64_split_timode; add prototype for ia64_split_tmode_move.
19545
19546 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
19547
19548         * Makefile.in (MAINT): Make it an immediate assignment.
19549
19550 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19551
19552         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
19553
19554 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19555
19556         * config/h8300/coff.h: Replace Hitachi with Renesas.
19557         * config/h8300/elf.h: Likewise.
19558         * config/h8300/h8300-protos.h: Likewise.
19559         * config/h8300/h8300.c: Likewise.
19560         * config/h8300/h8300.h: Likewise.
19561         * config/h8300/h8300.md: Likewise.
19562         * config/h8300/lib1funcs.asm: Likewise.
19563
19564 2004-01-15  Andrew Pinski  <apinski@apple.com>
19565
19566         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
19567         around it.
19568
19569 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19570
19571         * config/h8300/h8300.c (h8300_return_in_memory): New.
19572         (TARGET_STRUCT_VALUE_RTX): Likewise.
19573         (TARGET_RETURN_IN_MEMORY): Likewise.
19574         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
19575         (RETURN_IN_MEMORY): Likewise.
19576
19577 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
19578
19579         PR optimization/13375
19580         * gcse.c (handle_avail_expr): Just return if the source is not a
19581         single set.
19582
19583 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
19584             Daniel Jacobowitz  <drow@mvista.com>
19585
19586         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
19587         (EQUIV): Define.
19588         (ARM_FUNC_ALIAS): New macro.
19589         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
19590         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
19591
19592 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19593
19594         PR optimization/12372
19595         * calls.c (expand_call): Add call_fusage data for stack arguments in
19596         constant calls.
19597
19598 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
19599
19600         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
19601         (rs6000_elf_declare_function_name): Formatting.
19602         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
19603
19604 2004-01-15  Jan Hubicka  <jh@suse.cz>
19605
19606         PR bootstrap/13692
19607         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
19608         previous patch.
19609
19610 2004-01-15  Richard Henderson  <rth@redhat.com>
19611
19612         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
19613         integer regs of the same call-savedness.
19614
19615 2004-01-15  Andreas Schwab  <schwab@suse.de>
19616
19617         PR bootstrap/13562
19618         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
19619         status for NOTB/NOTW/NEGW methods.
19620
19621 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19622
19623         * doc/invoke.texi: Update dump file names.  Fix a typo.
19624
19625 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19626
19627         * builtins.c (expand_builtin_va_end): Don't use
19628         EXPAND_BUILTIN_VA_END.
19629         * system.h (EXPAND_BUILTIN_VA_END): Poison.
19630         * config/d30v/d30v.h: Remove a commented-out definition of
19631         EXPAND_BUILTIN_VA_END.
19632         * config/stormy16/stormy16.h: Likewise.
19633
19634 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19635
19636         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
19637         * targhooks.c (default_struct_value_rtx): Don't use
19638         STRUCT_VALUE_INCOMING_REGNUM.
19639
19640 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
19641
19642         PR bootstrap/12744
19643         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
19644         GENINSRC and not parsedir.  Define srcextra as a langhook.
19645         * configure: Regenerate.
19646         * Makefile.in: Suppress default .l.c rule.  Don't substitute
19647         parsedir and delete all references throughout.  Conditionally define
19648         rule for srcextra dependent on GENINSRC.
19649         (stmp-docobjdir): Delete.
19650         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
19651         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
19652         and gengtype-yacc.h back to source directory.
19653         (maintainer-clean): Delete all parse files in source directory.
19654         (distclean): Delete generated files.
19655
19656         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
19657         (objc-parse.c, objc-parse.y): Don't use parsedir.
19658         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
19659         directory if requested.
19660         (po-generated): Don't use parsedir.
19661         (objc.maintainer-clean): Delete above files from source directory.
19662
19663 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19664
19665         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
19666
19667 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19668
19669         * doc/tm.texi: Replace RETURN_IN_MEMORY with
19670         TARGET_RETURN_IN_MEMORY.
19671
19672 2004-01-15  Jan Hubicka  <jh@suse.cz>
19673
19674         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
19675         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
19676         functions accepting SSE arguments
19677         (function_arg): Warn only when asked to warn.
19678         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
19679
19680 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
19681
19682         * c-parse.in (stmts_and_decls): Make label at end of compound
19683         statement a hard error.
19684
19685 2004-01-14  Jan Hubicka  <jh@suse.cz>
19686
19687         * cgraph.c (create_edge): Use local.redefined_extern_inline.
19688         * cgraph.h (cgraph_local_info): Sort fields by size; add
19689         redefined_extern_inline
19690         (cgraph_global_info): Sort fields by size.
19691         (cgraph_node): Likewise.
19692         * cgraphunit.c (cgraph_finalize_function): Se
19693         local.redefined_extern_inline on redefinition.
19694         (cgraph_analyze_function): Use it; fix formating.
19695
19696 2004-01-14  Jan Hubicka  <jh@suse.cz>
19697
19698         PR c++/10776
19699         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
19700         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
19701         bitmaps
19702         (cache_size): New variable
19703         (add_dependence): Update use; canonize early memory locations
19704         (sched_analyze_1): Likewise.
19705         (sched_analyze_2): Likewise.
19706         (init_dependency_caches): Initialize bitmaps.
19707         (free_dependency_caches): Free bitmaps
19708
19709 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19710
19711         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
19712         targetm.calls.strict_argument_naming().
19713         * target.h: Likewise.
19714
19715 2004-01-14  Richard Henderson  <rth@redhat.com>
19716
19717         PR debug/13231
19718         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
19719         instructions.
19720
19721 2004-01-14  Richard Henderson  <rth@redhat.com>
19722
19723         PR c++/12491
19724         * except.c (struct eh_region): Add u.fixup.resolved.
19725         (resolve_one_fixup_region): Split out from ...
19726         (resolve_fixup_regions): ... here.
19727
19728 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19729
19730         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
19731
19732 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19733
19734         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
19735         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
19736         (STRUCT_VALUE): Remove.
19737
19738 2004-01-14  Steven Bosscher  <stevenb@suse.de>
19739
19740         * system.h: Poison PROMOTED_MODE
19741         * integrate.c (expand_inline_function): Don't mention the
19742         PROMOTED_MODE.
19743         * loop.c (update_giv_derive): Same.
19744         * tree.h (DECL_RTL): Same.
19745
19746 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
19747
19748         PR target/9365
19749         * sh.c (gen_block_redirect): Add special handling of RETURN.
19750         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
19751         far branch target (i.e. it's a return).
19752
19753 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19754
19755         * regrename.c (find_oldest_value_reg): Fix a warning.
19756
19757 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
19758
19759         PR bootstrap/12527
19760         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
19761         Move linux-gas.h and linux-elf.h before aout.h.
19762         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
19763         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
19764
19765 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19766
19767         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
19768         (CONST_INT, VOIDmode, ...).
19769
19770 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
19771
19772         * regrename.c (find_oldest_value_reg): If the replacement uses
19773         multiple hard registers, check that all of them are in CLASS.
19774
19775 2004-01-14  Jan Hubicka  <jh@suse.cz>
19776
19777         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
19778         impossible.
19779
19780 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
19781
19782         * Makefile.in: Define MAINT from --enable-maintainer-mode.
19783
19784 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
19785
19786         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
19787         Calculate always vrsave_mask if TARGET_ALTIVEC.
19788         (rs6000_emit_prologue): Emit code for vrsave
19789         only if TARGET_ALTIVEC_VRSAVE.
19790         (rs6000_emit_epilogue): Likewise.
19791
19792 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
19793
19794         * config/sparc/sparc.md (tie_add32): Fix pasto.
19795         (tie_add64): Likewise.
19796
19797 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
19798
19799         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
19800
19801 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19802
19803         * config/iq2000/iq2000-protos.h: Fix comment formatting.
19804         * config/iq2000/iq2000.c: Likewise.
19805         * config/iq2000/iq2000.md: Likewise.
19806
19807 2004-01-14  J. Brobecker  <brobecker@gnat.com>
19808
19809         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
19810         (subrange_type_die): Add handle for nameless subrange types.
19811
19812 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19813
19814         * config/h8300/h8300-protos.h: Replace do_movsi with
19815         h8300_expand_movsi.
19816         * config/h8300/h8300.c (do_movsi): Change to
19817         h8300_expand_movsi.
19818         * config/h8300/h8300.md (movsi): Replace do_movsi with
19819         h8300_expand_movsi.
19820         (movsf): Likewise.
19821
19822 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19823
19824         * config/h8300/h8300.c (dosize): Change to
19825         h8300_emit_stack_adjustment.  Update callers.
19826
19827 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19828
19829         * config/h8300/h8300.md (movstrictqi): Add an alternative with
19830         the source being post_inc.  Tighten the predicate for the
19831         destination to register_operand.
19832         (movstricthi): Likewise.
19833
19834 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19835
19836         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
19837         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
19838         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
19839
19840 2004-01-14  Jan Hubicka  <jh@suse.cz>
19841
19842         Partial fix PR c++/12850
19843         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
19844         at zero nest level.
19845
19846 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
19847
19848         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
19849         pseudo-register.
19850
19851 2004-01-13  Devang Patel <dpatel@apple.com
19852
19853         PR debug/7078
19854         * dbxout.c (dbxout_symbol_name): Emit mangled names for
19855         NAMESPACE_DECL memebers.
19856
19857 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
19858
19859         PR c++/12709
19860         * c-common.c (finish_fname_decls): Use the chain only if the
19861         tree is an expr_stmt.
19862
19863 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
19864
19865         * rtl.def: Add comment about new option in automata_option.
19866
19867         * genautomata.c (PROGRESS_OPTION): New macro.
19868         (progress_flag): New global variable.
19869         (gen_automata_option): Process `progress'.
19870         (transform_insn_regexps, check_unit_distributions_to_automata,
19871         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
19872         expand_automata, write_automata): Print about the progress only if
19873         progress_flag.  Remove fflush.
19874         (initiate_automaton_gen): Process command line flag `-progress'.
19875
19876         * doc/md.texi: Describe the new option.
19877
19878 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
19879
19880         * cfg.c (dump_bb): Dump entry edges.
19881
19882 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
19883
19884         * arm.c (thumb_legitimate_address_p): Only allow constant pool
19885         references from SImode.
19886         * arm.md (thumb_movhi_insn): Don't allow minipool references.
19887
19888 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19889
19890         * system.h (TEXT_SECTION): Poison.
19891         * varasm.c (text_section): Don't use TEXT_SECTION.
19892         * config/sh/sh.c (sh_file_start): Fix a comment typo.
19893         * doc/tm.texi (TEXT_SECTION): Remove.
19894
19895 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
19896
19897         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
19898
19899 2004-01-12  James E Wilson  <wilson@specifixinc.com>
19900
19901         * unwind-libunwind.c: Delete.
19902
19903 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
19904
19905         PR 13656
19906         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
19907         oldtype is set, set *newtypep or *oldtypep too.  Do not set
19908         them at the very end.
19909         (validate_proto_after_old_defn): Restructure for comprehensibility;
19910         make error messages clearer.
19911
19912 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
19913
19914         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
19915         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
19916         * varray.c: No need to prototype error.
19917         (varray_check_failed): Wrap long string onto two lines.
19918         (varray_underflow): New function.
19919
19920 2004-01-13  Steven Bosscher  <stevenb@suse.de>
19921
19922         PR c++/13376
19923         * function.h (struct function): Kill `name' field.
19924         (current_function_name): Make it an extern function.
19925         * function.c (current_function_name): New function.
19926         * graph.c: Update all uses of current_function_name.
19927         * gcse.c: Likewise.
19928         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
19929         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
19930         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
19931         instead of a strcmp with "main".
19932
19933 2004-01-13  Jan Hubicka  <jh@suse.cz>
19934
19935         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
19936
19937         * cgraphunit.c (cgraph_optimize_function):  Always do
19938         optimize_inline_calls when there is always_inline callee.
19939         (cgraph_decide_inlining): Fix formating.
19940         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
19941         functions.
19942         (expand_call_inline): Likewise.
19943         * toplev.h (sorry): Fix prototype.
19944
19945 2004-01-12  Roger Sayle  <roger@eyesopen.com>
19946
19947         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
19948         conditional jumps that drop through to unconditional jumps or the
19949         end of the sequence.
19950
19951 2004-01-13  Jan Hubicka  <jh@suse.cz>
19952
19953         * alias.c (new_alias_set): Construct the alias_set varray.
19954         (init_alias_once): Don't do it here.
19955
19956 2004-01-12  Marc Espie <espie@openbsd.org>
19957
19958         * system.h: handle YYBYACC like YYBISON.
19959
19960 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
19961
19962         PR target/10847
19963         * config.gcc: No longer includes conflicting header sparc/sol2.h when
19964         building on sparc64-*-openbsd*.
19965
19966 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
19967
19968         PR debug/13539
19969         * dbxout.c (dbxout_type): Protected inheritance is not
19970         private but protected.
19971
19972 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
19973
19974         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
19975
19976 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
19977
19978         PR optimization/12508.
19979         * combine.c (try_combine): Remove a dead set in a parallel
19980         even if its destination is a subreg.
19981
19982         Revert:
19983         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
19984         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
19985         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
19986
19987 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
19988
19989         * real.c: Update copyright date.
19990         * emit-rtl.c: Likewise.
19991         * rtl.h: Likewise.
19992         * dwarf2out.c: Likewise.
19993         * config/rs6000/darwin-ldouble.c: Likewise.
19994         * config/rs6000/rs6000.md: Likewise.
19995
19996 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
19997
19998         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
19999         TFmode to SImode libfuncs.
20000
20001 2004-01-12  Roger Sayle  <roger@eyesopen.com>
20002
20003         PR middle-end/11397
20004         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
20005
20006 2004-01-12  Jan Hubicka  <jh@suse.cz>
20007
20008         PR opt/12826
20009         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
20010         stored.
20011
20012         PR opt/12863
20013         * cfgcleanup.c (label_is_jump_target_p): Move to...
20014         * rtlanal.c (label_is_jump_target_p): ... here.
20015         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
20016         edges unified with branch edges.
20017
20018 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
20019
20020         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
20021         high word of an integral CONST_DOUBLE.
20022
20023 2004-01-12  Paul Brook  <paul@codesourcery.com>
20024
20025         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
20026
20027 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
20028
20029         PR target/13585
20030         * sh-protos.h (check_use_sfunc_addr): Declare.
20031         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
20032         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
20033
20034 2004-01-12  Jan Hubicka  <jh@suse.cz>
20035
20036         * alias.c:  Invlude varray.h
20037         (alias_sets): Turn into varray.
20038         (get_alias_set_entry): Use VARRAY; mark inline.
20039         (mems_in_disjoint_alias_sets_p): Mark inline.
20040         (record_alias_subset): Use varray.
20041         (init_alias_once): Initialize varray.
20042         (new_alias_set): Grow array.
20043         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
20044
20045 2004-01-12  Jan Hubicka  <jh@suse.cz>
20046
20047         Partial fix for PR opt/10776 II
20048         * cselib.c: Include params.h
20049         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
20050         locations.
20051         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
20052         * Makefile.in (cselib.o): Depend on params.h
20053
20054 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
20055
20056         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
20057         simplify_unary_operation if the operand has a known mode.
20058
20059 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
20060
20061         PR target/13534
20062         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
20063         predicate to handle 'ld' conform addresses.
20064         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
20065         contraint.
20066         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
20067         are memory contraints.
20068         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
20069         New prototype.
20070         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
20071         Change 'o' to 'Y' constraint.
20072         (*movdf_softfloat64): Ditto.
20073
20074 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
20075
20076         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
20077         brace-enclosed syntax in all C output statements.
20078
20079 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
20080
20081         PR target/13401
20082         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
20083         Objective-C language type value is 14.
20084
20085 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
20086
20087         PR c/12148
20088         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
20089         `int' in a number of places to make sure we always have a SImode
20090         and not a HImode.  Add a 'L' suffix to a number of constants.
20091
20092 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20093
20094         * pa.c: Don't include obstack.h.
20095
20096         * pa.md: Correct constraint in pattern for loading PIC label address.
20097
20098 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
20099
20100         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
20101          before defining.
20102
20103 2004-01-11  Steven Bosscher  <stevenb@suse.de>
20104
20105         PR fortran/9972
20106         * toplev.c (rest_of_handle_inline): Also consider functions
20107         for deferral if the language is GNU F77.
20108
20109 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
20110
20111         * c-decl.c (diagnose_arglist_conflict): Add missing space to
20112         diagnostic messages.
20113
20114 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
20115
20116         PR middle-end/13392
20117         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
20118         to drop through label.  Don't fall back to SCC even when conditional
20119         jump has not been found.
20120
20121 2004-01-11  Jan Hubicka  <jh@suse.cz>
20122
20123         * invoke.texi: Fix syntax error in previous patch.
20124
20125         Partial fix for PR opt/10776
20126         * Makefile.in (reload.o): Include param.h
20127         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
20128         * reload.c: Include params.h.
20129         (find_equiv_reg): Work limiting check.
20130         * invoke.texi: Document.
20131
20132 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
20133
20134         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
20135         out-of-bounds accesses to string constants.  Simplify mips16
20136         case accordingly.
20137
20138 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
20139
20140         PR optimization/13469
20141         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
20142         reload_cse_regs (-fnon-call-exceptions only).
20143
20144 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
20145
20146         * config/mcore/lib1.asm: Fix comment formatting.
20147         * config/mcore/mcore-elf.h: Likewise.
20148         * config/mcore/mcore.c: Likewise.
20149         * config/mcore/mcore.h: Likewise.
20150         * config/mcore/mcore.md: Likewise.
20151
20152 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
20153
20154         * c-decl.c (duplicate_decls): Break apart into...
20155         (diagnose_arglist_conflict, validate_proto_after_old_defn)
20156         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
20157         ... these new functions.  Restructure for comprehensibility.
20158         Remove various archaic special cases.  Always report the
20159         location of the previous declaration when a diagnostic is issued.
20160         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
20161         (match_builtin_function_types): Delete unnecessary forward declaration.
20162
20163 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
20164
20165         * genautomata.c (make_automaton, NDFA_to_DFA):
20166         Print progress bars with '.' characters instead of '*'.
20167         (build_automaton): Change notes to match.
20168
20169 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
20170
20171         * config/m32r/m32r.md: Use define_constants for unspec and
20172         unspec_volatile.
20173
20174 2004-01-10  Jan Hubicka  <jh@suse.cz>
20175
20176         PR opt/11635
20177         * expr.c (expand_expr_real):  More curefully expand union casts.
20178
20179 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
20180
20181         * config/m32r/m32r.md (flush_icache): Use 1 for
20182         unspec_volatile.
20183
20184 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
20185             James E Wilson  <wilson@specifixinc.com>
20186
20187         PR debug/12860
20188         * dbxout.c (dbxout_symbol): Remove initialization of
20189         current_sym_code, current_sym_value, and current_sym_addr.
20190         (dbxout_symbol_location): Same.
20191         (dbxout_prepare_symbol): Zero current_sym_code,
20192         current_sym_value, and current_sym_addr.
20193
20194 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
20195
20196         * tree.c (get_unwidened): Reorder conditions so that the null pointer
20197         check is done first.
20198
20199 2004-01-09  Eric Christopher  <echristo@redhat.com>
20200
20201         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
20202         if we're running mark_constant_function.
20203
20204 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
20205
20206         PR target/12561
20207         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
20208
20209 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
20210
20211         PR debug/11231
20212         * dbxout.c (dbxout_type_fields): Return if any item is
20213         error_mark_node or the type is error_mark_node.
20214
20215 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
20216
20217         * config/rs6000/darwin-ldouble.c: Add big comment explaining
20218         exactly what is expected as a 'long double'.
20219         (_xlqadd): When a value to be returned is representable as a
20220         'double', just return it directly, do not construct it using a union.
20221         Also, correct final fixup.
20222         (_xlqmul): Likewise.
20223         (_xlqdiv): Likewise.
20224         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
20225
20226         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
20227
20228 2004-01-09  Richard Henderson  <rth@redhat.com>
20229
20230         * recog.c (constrain_operands): Validate mem operands.
20231
20232 2004-01-09   James E Wilson  <wilson@specifixinc.com>
20233
20234         * gcc.c (init_spec): Remove -lunwind from shared case.
20235         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
20236
20237 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
20238
20239         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
20240         * configure: Regenerate
20241
20242 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
20243
20244         PR c/11234
20245         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
20246         between function and object pointers.
20247         (digest_init): When comparing a pointer to function type to the
20248         target type, only apply TREE_TYPE once to the pointer to function
20249         type.
20250         * except.c (for_each_eh_label_1): Treat data as a pointer to a
20251         function pointer rather than casting it to a function pointer.
20252         (for_each_eh_label): Update caller.
20253         * recog.h (struct insn_data): Use a struct or union for output.
20254         * genoutput.c (output_insn_data): Update.
20255         * final.c (get_insn_template): Update.
20256
20257 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
20258
20259         * expr.h (expand_expr): Make it a macro, not a function.
20260         (expand_expr_real): New function.
20261         * expr.c (store_expr): Adjust logic for deciding whether or not to
20262         copy the value returned by expand_expr.
20263         (expand_expr): Rename to ...
20264         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
20265         calls to language hooks.
20266         * c-common.h (c_expand_expr): Adjust prototype.
20267         * c-common.c (c_expand_expr): Add alt_rtl parameter.
20268         * langhooks-def.h (lhd_expand_expr): Change prototype.
20269         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
20270         * langhooks.h (lang_hooks): Change type of expand_expr.
20271         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
20272         (last_expr_alt_rtl): Likewise.
20273         (expand_expr_stmt_value): Set last_expr_alt_rtl.
20274         (clear_last_expr): Clear it.
20275         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
20276         (expand_end_bindings): Save and restor last_expr_alt_rtl.
20277         * tree.def (RTL_EXPR): Give it an additional operand.
20278         * tree.h (RTL_EXPR_ALT_RTL): New macro.
20279
20280 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
20281
20282         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
20283         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
20284
20285 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
20286
20287         PR target/13380.
20288         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
20289         or (ne:SI (reg:CC 17) (const_int 0)).
20290         Be specific about modes wherever possible.
20291
20292 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
20293
20294         * config/m32r/m32r.c (m32r_expand_block_move): Call
20295         gen_movestrsi_internal with two more arguments.
20296         (m32r_output_block_move): Adjust operand numbers.
20297         Properly update the source and destination pointers.
20298         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
20299         'r+'.  Change the set detinations to match_operand.
20300
20301 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
20302
20303         * final.c (FIRST_INSN_ADDRESS): Remove.
20304         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
20305         * system.h (FIRST_INSN_ADDRESS): Poison.
20306         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
20307         * config/m32r/m32r-protos.h: Remove the prototype for
20308         m32r_first_insn_address.
20309         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
20310         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
20311         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
20312
20313 2004-01-09  J. Brobecker  <brobecker@gnat.com>
20314
20315         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
20316         we just created.
20317         (is_ada_subrange_type): DIEs for enumeration subtypes should be
20318         emitted as subrange types too.
20319         (subrange_type_die): Add handling of enumeration subtypes.
20320
20321 2004-01-08  Richard Henderson  <rth@redhat.com>
20322
20323         PR opt/12441
20324         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
20325         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
20326         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
20327         (ix86_address_cost): Be prepared for SUBREGed registers.
20328         (legitimate_address_p): Accept SUBREGed registers.
20329
20330 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
20331
20332         * Makefile.in: Rename configure.in to configure.ac
20333         * doc/sourcebuild.texi: Likewise.
20334         * configure: Regenerate.
20335         * config.in: Regenerate.
20336
20337 2004-01-08  Stuart Hastings  <stuart@apple.com>
20338
20339         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
20340
20341 2004-01-08  Jan Hubicka  <jh@suse.cz>
20342
20343         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
20344
20345 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
20346
20347         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
20348         (UNSPEC_FIX_TRUNC_TF): New constant.
20349         (movtf_internal): Make splitter active only when insn is active.
20350         (extenddftf2): Rewrite to properly load zero into low part.
20351         (extenddftf2_internal): New.
20352         (extendsftf2): Rewrite.
20353         (truncdftf2): Correct length.
20354         (floatditf2): Delete.
20355         (fix_trunc_helper): New.
20356         (fix_trunctfdi2): Use fix_trunc_helper.
20357         (fix_trunctfsi2): Likewise.fix_trunc
20358         (fix_trunctfsi2_internal): New.
20359
20360         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
20361         addresses are legitimate on Darwin even when flag_pic.
20362         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
20363         non-offsettable addresses for loads of TFmode constants.
20364
20365 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
20366
20367         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
20368         variables in the appropriate bss section.
20369
20370 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
20371
20372         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
20373         target_flags has MASK_POWERPC64 when -m64.
20374         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
20375         to 620, 630, power3, power4 and rs64a entries.
20376         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
20377
20378 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
20379
20380         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
20381         floating-point constants.
20382
20383 2004-01-08  J. Brobecker  <brobecker@gnat.com>
20384
20385         * dwarf2out.c (subrange_type_die): Add context_die parameter.
20386         Create the subrange_type DIE using the given context DIE.
20387         (modified_type_die): Update call to subrange_type_die.
20388
20389 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
20390
20391         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
20392         Add multiple-include guard.
20393
20394 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
20395
20396         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
20397         all vector constant loadable by vsplt*.
20398         (output_vec_const_move): Likewise.
20399
20400 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
20401
20402         PR c/6024
20403         * c-typeck.c (comptypes): Only treat enumerated types in the same
20404         translation unit as compatible with each other when they are the
20405         same type.
20406         * doc/extend.texi: Update.
20407
20408 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
20409
20410         PR c/12165
20411         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
20412         array type from the array element type.
20413
20414 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
20415
20416         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
20417         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
20418         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
20419         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
20420         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
20421
20422 2004-01-06  Eric Christopher  <echristo@redhat.com>
20423
20424         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
20425         (DWARF2_DEBUGGING_INFO): Define.
20426         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
20427         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
20428         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
20429         for irix as.
20430         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
20431         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
20432         * config/mips/iris5gas.h: Ditto.
20433         (DBX_DEBUGGING_INFO): Remove.
20434         (DWARF2_DEBUGGING_INFO): Ditto.
20435         (MIPS_DEBUGGING_INFO): Ditto.
20436         (PREFERRED_DEBUGGING_TYPE): Ditto.
20437         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
20438         (PREFERRED_DEBUGGING_TYPE): Ditto.
20439         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
20440         * config/mips/elf64.h: Ditto.
20441
20442 2004-01-06  Jan Hubicka  <jh@suse.cz>
20443
20444         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
20445         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
20446
20447 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
20448
20449         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
20450         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
20451         * config/rs6000/darwin-ldouble.c: New.
20452
20453         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
20454         for constants.
20455         (constant_subword): Delete.
20456         * rtl.h (constant_subword): Delete prototype.
20457         (immed_double_const): Is not in varasm.c.
20458         * simplify-rtx.c (simplify_immed_subreg): New.
20459         (simplify_subreg): Use simplify_immed_subreg.
20460
20461         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
20462         than trying to generate RTL directly.
20463         (fix_trunctfsi2): Use expand_fix rather than trying to generate
20464         RTL directly.
20465
20466         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
20467
20468 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
20469
20470         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
20471         function into a separate macro.
20472         (read_only_data_section): Add void argument.
20473         (private_data_section): Same.
20474         (read_only_private_data_section): Same.
20475         (toc_section): Same.
20476
20477 2004-01-06  Jan Hubicka  <jh@suse.cz>
20478
20479         * invoke.texi:  Remove typo in last change.
20480
20481         PR target/10301
20482         * config.gcc: Accept opteron and athlon-64 as variants
20483         of k8.
20484         * i386.c (override_options): Likewise.
20485         * invoke.texi (i386 -mtune): Expand documentation.
20486
20487 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
20488
20489         * alias.c: Fix comment typos.
20490         * builtins.c: Likewise.
20491         * cfg.c: Likewise.
20492         * df.c: Likewise.
20493         * dominance.c: Likewise.
20494         * dwarf2out.c: Likewise.
20495         * emit-rtl.c: Likewise.
20496         * expr.c: Likewise.
20497         * final.c: Likewise.
20498         * fold-const.c: Likewise.
20499         * gcse.c: Likewise.
20500         * genattrtab.c: Likewise.
20501         * genrecog.c: Likewise.
20502         * gensupport.c: Likewise.
20503         * ggc-zone.c: Likewise.
20504         * integrate.c: Likewise.
20505         * local-alloc.c: Likewise.
20506         * loop.c: Likewise.
20507         * recog.c: Likewise.
20508         * regmove.c: Likewise.
20509         * reg-stack.c: Likewise.
20510         * reorg.c: Likewise.
20511         * rtlanal.c: Likewise.
20512         * rtl.h: Likewise.
20513         * sched-ebb.c: Likewise.
20514         * simplify-rtx.c: Likewise.
20515         * toplev.c: Likewise.
20516         * varasm.c: Likewise.
20517
20518 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
20519
20520         * doc/install.texi: Fix typos.
20521         * doc/invoke.texi: Likewise.
20522         * doc/md.texi: Likewise.
20523
20524 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
20525
20526         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
20527
20528 2004-01-06  Jan Hubicka  <jh@suse.cz>
20529
20530         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
20531         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
20532         of MMX_REGPARM.
20533         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
20534         add MMX_REGPARM.
20535         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
20536         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
20537         (MMX_REGPARM_MAX): Similarly for -mmmx.
20538
20539 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20540
20541         * config/sh/linux.h: Fix comment formatting.
20542         * config/sh/netbsd-elf.h: Likewise.
20543         * config/sh/sh.c: Likewise.
20544         * config/sh/sh.h: Likewise.
20545         * config/sh/vxworks.h: Likewise.
20546
20547 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20548
20549         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
20550         * toplev.c (output_file_directive): Don't use
20551         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
20552
20553 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
20554
20555         * toplev.c: Fix broken checkin of 2003-12-30.
20556
20557 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
20558
20559         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
20560         (USING_MMAP): We don't support non-mmap.
20561         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
20562         large objects.
20563         (struct page_entry): Remove bytes_free.
20564         (struct page_table_chain): Remove.
20565         (struct globals): Remove page_table member.
20566         (loookup_page_table_entry): Function deleted.
20567         (set_page_table_entry): Ditto.
20568         (ggc_allocated_p): No longer need page table lookups.
20569         (ggc_marked_p): Ditto.
20570         (alloc_small_page): Don't care about bytes_free anymore.
20571         (alloc_large_page): Round up size.
20572         (ggc_alloc_zone_1): Mark large objects as such, and calculate
20573         their size the new way.
20574         Remove page table lookups and setting.
20575         (ggc_get_size): Calculate large object size the new way.
20576         (sweep_pages): Redo to account for fact that we no longer have
20577         bytes_free.
20578         (ggc_collect): No longer need to reincrement bytes_free.
20579         (ggc_pch_alloc_object): Handle new large objects properly.
20580         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
20581
20582 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20583
20584         * doc/invoke.texi: Remove a page break.
20585
20586 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20587
20588         * config/avr/avr.c (avr_output_function_prologue): Remove an
20589         extra pair of curly braces.
20590
20591 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20592
20593         * config/mn10300/mn10300.c: Fix comment formatting.
20594         * config/mn10300/mn10300.h: Likewise.
20595
20596 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20597
20598         * tree.h: Update documentation on nothrow_flag.
20599         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
20600         types.
20601
20602 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20603
20604         * doc/invoke.texi: Remove traces of dead ports.
20605
20606 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
20607
20608         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
20609         option.
20610
20611 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
20612
20613         PR target/12945
20614         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
20615         counter labels.
20616         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
20617         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
20618         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
20619         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
20620         (mips_symbol_insns): Don't trust the local/global classification.
20621         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
20622         (override_options): Make -mabicalls -fno-unit-at-a-time imply
20623         -mno-explicit-relocs.
20624         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
20625         between local and global symbols.
20626
20627 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
20628
20629         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
20630         (mips_preferred_reload_class): Declare.
20631         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
20632         (EXTRA_CONSTRAINT): Update accordingly.
20633         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
20634         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
20635         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
20636         mips_dangerous_for_la25_p.
20637         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
20638         if mips_dangerous_for_la25_p.
20639
20640 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
20641
20642         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
20643         warning.
20644
20645 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
20646
20647         * configure.ac: Use AC_PROG_CPP_WERROR.
20648         * configure: Regenerate.
20649
20650 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
20651
20652         * .cvsignore: Add autom4te.cache.
20653
20654 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
20655
20656         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
20657         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
20658         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
20659         then architecture options, then ABI options.  General rewording.
20660
20661 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
20662
20663         PR c/3414
20664         * doc/extend.texi: Clarify definition of malloc attribute.
20665
20666 2004-01-04  Jan Hubicka  <jh@suse.cz>
20667
20668         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
20669         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
20670         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
20671         (cgraph_inline_p): Add extra argument reason.
20672         * cgraphunit.c: Minor formating fixes.
20673         cgraph_first_inlined_callee): New functions.
20674         (record_call_1): Record builtins too.
20675         (cgraph_analyze_function): Update inline_failed messages.
20676         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
20677         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
20678         (cgraph_check_inline_limits): Likewise; Add argument reason.
20679         (cgraph_set_inline_failed): New static function.
20680         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
20681         reasons.
20682         (cgraph_inline_p): Add new argument reason.
20683         * tree-inline.c (expand_call_inline):  Update warning.
20684
20685 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
20686
20687         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
20688         with modern equivalents.
20689         * configure: Regenerate.
20690
20691         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
20692         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
20693         * configure: Regenerate.
20694
20695         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
20696
20697         * configure.in: Rename to configure.ac.
20698         * configure.ac: Renamed from configure.in; make minimum necessary
20699         changes for autoconf 2.5x.
20700         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
20701         * configure: Regenerate with autoconf 2.57.
20702
20703 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
20704
20705         * config/mips/linux.h: Fix comment formatting.
20706         * config/mips/mips.c: Likewise.
20707         * config/mips/mips.h: Likewise.
20708         * config/mips/mips.md: Likewise.
20709         * config/mips/netbsd.h: Likewise.
20710         * config/mips/windiss.h: Likewise.
20711
20712 2004-01-02  Richard Henderson  <rth@redhat.com>
20713
20714         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
20715         for sse and 387; add suppression for mmx.
20716
20717 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
20718
20719         * loop.c (loop_optimize): Free all loops_info's mems.
20720
20721         * c-typeck.c (finish_init): Free spelling_base before
20722         setting it again.
20723
20724         * cfgloop.c (flow_loops_find): Always free the sbitmap
20725         headers.
20726
20727         * predict.c (estimate_probability): Free bbs after being
20728         done with it.
20729
20730 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
20731
20732         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
20733         const_8bit_operand and call_address_operand.
20734
20735 2004-01-02  Jan Hubicka  <jh@suse.cz>
20736
20737         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
20738         when there is nothing to inline but warnings are requested.
20739         (cgraph_decide_inlining):  Fix memory leak.
20740
20741 2004-01-02  Jan Hubicka  <jh@suse.cz>
20742
20743         * expr.c (store_constructor):  Fix pasto in previous patch.
20744
20745 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
20746
20747         * config/i386/cygming.h: Fix comment formatting.
20748         * config/i386/djgpp.h: Likewise.
20749         * config/i386/gthr-win32.c: Likewise.
20750         * config/i386/i386-interix.h: Likewise.
20751         * config/i386/i386.c: Likewise.
20752         * config/i386/i386.h: Likewise.
20753         * config/i386/openbsd.h: Likewise.
20754         * config/i386/winnt.c: Likewise.
20755         * config/i386/xm-mingw32.h: Likewise.
20756
20757 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
20758
20759         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
20760         copyright and last modification dates.
20761
20762 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
20763
20764         * doc/install.texi (Specific): Mention x86_64.
20765
20766 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
20767
20768         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
20769         Call force_operand on plus_constant result.
20770
20771 2004-01-01  Jan Hubicka  <jh@suse.cz>
20772
20773         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
20774         * expr.c (store_constructor): Use vec_init pattern.
20775         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
20776         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
20777         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
20778         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
20779         New patterns.
20780         (sse2_unpc?pd): Fix pattern.
20781         (sse2_movlpd): Kill.
20782         (sse2_movsd): Deal with movlpd too.
20783         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
20784         (ix86_expand_vector_init): New.
20785         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
20786         * md.texi (vec_set, vec_extract): Document
20787
20788 2003-12-31  Jan Hubicka  <jh@suse.cz>
20789
20790         PR opt/13473
20791         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
20792         ASM input operands
20793
20794         PR opt/12617
20795         * toplev.c (dump_file_index): Reorder ce3 and bbro.
20796         (dump_file): Likewise.
20797         (rest_of_compilation): Likewise.
20798
20799         PR debug/13367
20800         * cgraph.c (cgraph_function_possibly_inlined):  Even with
20801         flag_really_no_inline we inline always_inline functions.
20802         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
20803         for non-always_inline functions when there is flag_really_no_inline.
20804         (cgraph_decide_inlining): Limit work done when not inlining.
20805         (cgraph_decide_inlining_incrementally): Likewise.
20806         (cgraph_optimize_function): Check whether something got inlined.
20807         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
20808         extern inline functions when not inlining.
20809
20810         * opts.c (decode_options):  Disable crossjumping at -O1
20811         * invoke.texi (-O1): Document change.
20812
20813 See ChangeLog.10 for earlier changes.