OSDN Git Service

04562d7d06665c7c33afb234ddc77e829da1f240
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-06-30  Richard Sandiford  <rsandifo@redhat.com>
2             Eric Christopher  <echristo@redhat.com>
3
4         * config/mips/3000.md: Improve description.
5
6 2004-06-30  Paul Brook  <paul@codesourcery.com>
7
8         * config/arm/cirrus.md (cirrus_arm_movdi, cirrus_movsf_hard_insn,
9         cirrus_movdf_hard_insn): Set pool ranges for coprocessor loads.
10
11 2004-06-30  Sebastian Pop  <pop@cri.ensmp.fr>
12
13         * Makefile.in (OBJS-common): Add tree-chrec.o.
14         (tree-chrec.o): New rule.
15         (GTFILES): Add tree-chrec.h.
16         * gengtype.c (open_base_files): Add tree-chrec.h.
17         * tree-chrec.c: New file.
18         * tree-chrec.h: New file.
19         * tree.def (SCEV_KNOWN, SCEV_NOT_KNOWN, POLYNOMIAL_CHREC): New nodes.
20
21 2004-06-30  Roger Sayle  <roger@eyesopen.com>
22
23         * combine.c: Include "output.h" to define dump_file.
24         (uid_insn_cost, last_insn_cost): New global variables.
25         (combine_insn_cost): New function to estimate cost of an insn.
26         (combine_validate_cost): New function to determine whether a
27         try_combine replacement sequence is cheaper than the original.
28         (combine_instructions): Allocate and populate uid_insn_cost
29         array at the start of the combine pass, and deallocate it after.
30         (try_combine): Check combine_validate_cost to determine whether
31         a "recombination" should be rejected as being more expensive.
32         * Makefile.in (combine.o): Add dependency upon output.h.
33
34 2004-06-30  Roger Sayle  <roger@eyesopen.com>
35
36         * config/rs6000/rs6000.c (rs6000_rtx_costs) <MINUS_EXPR>: Handle
37         subtractions identically to additions, always COSTS_N_INSNS (1).
38
39 2004-06-30  J"orn Rennecke <joern.rennecke@superh.com>
40
41         * expmed.c (expand_smod_pow2): Fix sign of mask.
42
43 2004-06-29  Diego Novillo  <dnovillo@redhat.com>
44
45         * tree-ssa-pre.c (phi_trans_add): Use is_gimple_min_invariant
46         to check for constants.
47         (set_remove): Likewise.
48         (value_replace_in_set): Likewise.
49         (find_leader): Likewise.
50         * tree-vn.c (set_value_handle): Likewise.
51         (vn_lookup): Likewise.
52         (vn_lookup_or_add): Likewise.
53
54 2004-06-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
55
56         RTL prologue/epilogue for SPARC
57         * config/sparc/sparc-protos.h (sparc_emitting_epilogue): Delete.
58         (sparc_skip_caller_unimp): Likewise.
59         (load_pic_register): Likewise.
60         (leaf_return_peephole_ok): Likewise.
61         (compute_frame_size): Rename into sparc_compute_frame_size.
62         (sparc_expand_prologue): New prototype.
63         (sparc_expand_epilogue): Likewise.
64         (output_return): Likewise.
65         (eligible_for_epilogue_delay): Rename into eligible_for_return_delay.
66         * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Adjust call to
67         compute_frame_size.  Move comment up.
68         (DELAY_SLOTS_FOR_EPILOGUE): Delete.
69         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
70         (EPILOGUE_USES): Return true for %g1 if the function uses EH return.
71         * config/sparc/sparc.md (UNSPECV_SAVEW): New constant.
72         (type attribute): Add 'return' and 'savew'.
73         (eligible_for_return_delay): New attribute.
74         (return): New delay_slot.
75         (sibcall_epilogue): Call sparc_expand_epilogue.
76         (prologue): Likewise.  Move up.
77         (save_register_window): New expander.
78         (save_register_windowsi): New pattern.
79         (save_register_windowdi): Likewise.
80         (epilogue): New expander.
81         (return_internal): New pattern.
82         (Return peepholes): Delete.
83         * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): New macro.
84         (sparc_emitting_epilogue): Delete.
85         (sparc_skip_caller_unimp): Likewise.
86         (sparc_sr_alias_set): New global variable.
87         (frame_base_name): Delete.
88         (frame_base_reg): New global variable.
89         (sparc_override_options): Get new alias set for save/restore.
90         (leaf_return_peephole_ok): Delete.
91         (eligible_for_epilogue_delay): Rename into eligible_for_return_delay.
92         Factor out code into eligible_for_restore_insn_delay.
93         (eligible_for_restore_insn_delay): New function extraced from above.
94         Use IN_UNCOND_BRANCH_DELAY_TRUE instead of IN_BRANCH_DELAY_TRUE.
95         (eligible_for_sibcall_delay): Use SIBCALL_SLOT_EMPTY_P.
96         Factor out code into eligible_for_restore_insn_delay.
97         (load_pic_register): Make static.  Remove check.
98         (save_regs): Delete.
99         (restore_regs): Likewise.
100         (compute_frame_size): Rename into sparc_compute_frame_size.
101         Rename leaf_function into leaf_function_p.
102         (build_big_number): Delete.
103         (save_or_restore_regs): New function.
104         (emit_save_regs): Likewise.
105         (emit_restore_regs): Likewise.
106         (emit_stack_pointer_increment ): Likewise.
107         (emit_stack_pointer_decrement): Likewise.
108         (sparc_expand_prologue): Likewise.
109         (sparc_function_prologue): Rename into sparc_asm_function_prologue.
110         Remove all code to emit instructions.
111         (sparc_expand_epilogue): New function.
112         (sparc_function_epilogue): Rename into sparc_asm_function_epilogue.
113         Remove all code to emit instructions.
114         (output_restore): New function.
115         (output_return): Likewise.
116         (output_sibcall): Factor out code into output_restore.
117         (print_operand): Adjust for frame_base_reg.
118         * target.h (struct gcc_target): New field 'late_rtl_prologue_epilogue'.
119         * target-def.h (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): New define.
120         (TARGET_INITIALIZER): Add it.
121         * passes.c (rest_of_compilation): Set the conditional predicate
122         'current_function_uses_only_leaf_regs' before sched2.  If target
123         has 'late_rtl_prologue_epilogue', emit RTL prologue/epilogue right
124         before sched2.
125         * reorg.c (return_insn_p): New predicate.
126         (find_end_label): Use it.
127         (relax_delay_slots): Do not thread an unconditional jump that points
128         to the end return label.
129         * doc/tm.texi (Registers) <Leaf Functions>: Clarify the validity
130         domain of 'current_function_uses_only_leaf_regs'.
131         (Stack and Calling) <Function Entry>: Document new target hook
132         TARGET_LATE_RTL_PROLOGUE_EPILOGUE.
133
134 2004-06-30  Jakub Jelinek  <jakub@redhat.com>
135
136         * simplify-rtx.c (simplify_binary_operation): Simplify
137         ((A & N) + B) & M -> (A + B) & M if M is pow2 minus 1 constant and
138         N has at least all bits in M set as well.
139
140         PR tree-optimization/15310
141         * expr.c (expand_assignment): Optimize += or -= on a bit field in
142         most significant bits.
143
144 2004-06-30  Steven Bosscher  <stevenb@suse.de>
145
146         * config/c4x/c4x.md: Fix comment.
147
148 2004-06-30  Akos Kiss  <akiss@inf.u-szeged.hu>
149
150         * arm.md (cond_return_inverted): Add "length" attribute.
151
152 2004-06-29  Per Bothner  <per@bothner.com>
153
154         * config/i386/winnt.c (i386_pe_encode_section_info):  Smash rtlname's
155         XSTR in place, so we don't lose SYMBOL_REF_DECL info.
156
157 2004-06-29  Zack Weinberg  <zack@codesourcery.com>
158
159         * config/ia64/hpux.h: Target does too support thread-local storage.
160
161 2004-06-29  Zack Weinberg  <zack@codesourcery.com>
162
163         * combine.c (distribute_notes): Don't look at global_regs for
164         pseudos.
165
166 2004-06-29  Richard Henderson  <rth@redhat.com>
167
168         * gimplify.c (gimplify_modify_expr_rhs): Move immediately before
169         gimplify_modify_expr.
170         (gimplify_init_constructor): Likewise.  Gimplify the null
171         CONSTRUCTOR assignment.
172         (gimplify_modify_expr_to_memcpy): New.
173         (gimplify_modify_expr_to_memset): New.
174         (gimplify_modify_expr): Use them.
175
176 2004-06-29  Roman Zippel <zippel@linux-m68k.org>
177
178         * web.c (union_defs): use all defs of an instruction to create a
179         union with a read/write use
180
181 2004-06-29  Richard Henderson  <rth@redhat.com>
182
183         PR middle-end/16216
184         * builtins.c (gimplify_va_arg_expr): Check for valist being
185         an error_mark_node.
186
187 2004-06-29  Jakub Jelinek  <jakub@redhat.com>
188
189         PR target/16195
190         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
191         r30 fixed if TARGET_TOC && TARGET_MINIMAL_TOC.
192         (first_reg_to_save): Pretend call_used_regs[30] is 0 if
193         TARGET_TOC && TARGET_MINIMAL_TOC.
194         (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise.
195
196 2004-06-29  J"orn Rennecke <joern.rennecke@superh.com>
197
198         Fix gcc.dg/builtin-apply2.c failures:
199         * sh.h (TARGET_VARARGS_PRETEND_ARGS): Define.
200         * sh.c (extra_push): Delete.
201         (sh_expand_prologue): Don't do extra stack adjustment for
202         current_function_pretend_args_size if it comes from varargs setup.
203         Use TARGET_VARARGS_PRETEND_ARGS.  Don't set extra_push.
204         (sh_expand_epilogue): Don't use extra_push.
205         (sh_setup_incoming_varargs): Set pretend_arg_size when necessary.
206
207 2004-06-29  Roger Sayle  <roger@eyesopen.com>
208
209         * expmed.c (expand_smod_pow2): Provide alternate implementations
210         that avoid conditional jumps, and choose between them based upon
211         the target's rtx_costs.
212
213 2004-06-29  Andrew Pinski  <apinski@apple.com>
214
215         * tree-sra.c: Include expr.h for definition of MOVE_RATIO.
216         * Makefile.in (tree-sra.c): Update dependencies.
217
218 2004-06-29  Richard Henderson  <rth@redhat.com>
219
220         * tree-sra.c: Rewrite from scratch.  Handle nested aggregates.
221
222 2004-06-29  Nathan Sidwell  <nathan@codesourcery.com>
223
224         * vec.h (VEC_T_safe_push, VEC_T_safe_insert): Tweak for when
225         size_t is bigger than int.
226
227 2004-06-29  Paul Brook  <paul@codesourcery.com>
228
229         * target-def.h (TARGET_CXX_GET_COOKIE_SIZE,
230         TARGET_CXX_COOKIE_HAS_SIZE): Define.
231         (TARGET_CXX): Use them.
232         * target.h (struct gcc_target): Add cxx.get_cookie_size and
233         cxx.cookie_has_size.
234         * targhooks.c (default_cxx_get_cookie_size): New fucntion.
235         * targhooks.h (default_cxx_get_cookie_size): Add prototype.
236         * config/arm/arm.c (TARGET_CXX_GET_COOKIE_SIZE,
237         TARGET_CXX_COOKIE_HAS_SIZE): Define.
238         (arm_get_cookie_size, arm_cookie_has_size): New functions.
239         * Make-lang.in (cp/init.o): Add dependency on $(TARGET_H).
240         * doc/tm.texi: Document TARGET_CXX_GET_COOKIE_SIZE and
241         TARGET_CXX_COOKIE_HAS_SIZE.
242
243 2004-06-29  J"orn Rennecke <joern.rennecke@superh.com>
244
245         * cfglayout.c (fixup_reorder_chain): Don't do anything for
246         e_fall->dest == EXIT_BLOCK_PTR.
247
248 2004-06-28  Richard Henderson  <rth@redhat.com>
249
250         * tree-cfg.c (verify_stmt): Add last_in_block parameter.  Verify
251         that eh stmts can throw.
252         (verify_stmts): Update verify_stmt call.
253         (tree_purge_dead_eh_edges, tree_purge_all_dead_eh_edges): New.
254         * tree-eh.c (remove_stmt_from_eh_region): New.
255         (lower_eh_constructs): Fix throw_stmt_table delete routine.
256         (tree_could_trap_p): Match may_trap_p.
257         (maybe_clean_eh_stmt): New.
258         * tree-flow.h: Update decls.
259         * tree-ssa-ccp.c (pass_ccp): Add TODO_verify_stmts.
260         (substitute_and_fold): Clean eh edges.
261         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Handle
262         empty basic blocks.
263         * tree-ssa-dom.c (need_eh_cleanup): New.
264         (tree_ssa_dominator_optimize): Allocate it.  Cleanup eh edges.
265         (optimize_stmt): Cleanup eh stmts; set need_eh_cleanup.
266
267 2004-06-29  Alan Modra  <amodra@bigpond.net.au>
268
269         * function.c (assign_parms): Don't abort with zero size stack
270         parm failing the PARM_BOUNDARY check.
271
272 2004-06-28  Diego Novillo  <dnovillo@redhat.com>
273
274         * common.opt (ftree-fre): New flag.
275         * flags.h (flag_tree_fre): Declare.
276         * opts.c (decode_options): Set.
277         * timevar.def (TV_TREE_FRE): Define.
278         * tree-flow-inline.h (may_propagate_copy): Re-arrange for
279         readability.  Handle destinations that are not SSA_NAMEs.
280         * tree-flow.h (struct ptr_info_def): Move from tree.h
281         (cprop_into_stmt, cprop_into_successor_phis): Remove.
282         (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Add
283         vuse_optype parameter.
284         * tree-pass.h (pass_fre): Declare.
285         * tree-ssa-copy.c (cprop_operand): Move to tree-ssa-dom.c
286         (cprop_into_stmt): Likewise.
287         (cprop_into_successor_phis): Likewise.
288         * tree-ssa-dom.c (eliminate_redundant_computations): Fix
289         argument ordering in call to may_propagate_copy.
290         * tree-ssa-pre.c (is_undefined_value): Assume hard registers
291         to be always defined.
292         (add_to_sets): New local function.
293         (create_value_expr_from): New local function.
294         (compute_avail): Call them.
295         (eliminate): Don't ignore statements with virtual operands.
296         (init_pre): New local function.
297         (fini_pre): New local function.
298         (execute_pre): Call them.
299         Add argument DO_FRE.  Don't do insertion if DO_FRE is true.
300         (do_pre): New function.
301         (do_fre): New function.
302         (gate_fre): New function.
303         (pass_fre): Declare.
304         * tree-ssa.c (init_tree_ssa): Don't call vn_init.
305         (delete_tree_ssa): Don't call vn_delete.
306         * tree-vn.c (val_expr_pair_d): Add documentation.
307         (vn_compute): Add VUSES argument to incorporate in computing
308         hash values.  Update all callers.
309         (expressions_equal_p): Call operand_equal_p with
310         OEP_PURE_SAME.
311         (vn_add): Add VUSES argument.  Update all callers.
312         (vn_lookup): Likewise.
313         (vn_lookup_or_add): Likewise.
314         * doc/invoke.texi: Document -ftree-fre and -fdump-tree-fre.
315
316 2004-06-28  Steven Bosscher  <stevenb@suse.de>
317
318         * config/m32r/m32r.c (m32r_sched_odd_word_p, m32r_adjust_cost,
319         m32r_sched_init, m32r_sched_reorder, m32r_variable_issue): Remove.
320         (TARGET_SCHED_ADJUST_COST, TARGET_SCHED_VARIABLE_ISSUE,
321         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Don't define.
322         * config/m32r/m32r.md: Rewrite the pipeline description as a DFA.
323
324 2004-06-28  Richard Henderson  <rth@redhat.com>
325
326         * tree.def (REALPART_EXPR, IMAGPART_EXPR): Change class to 'r'.
327         * fold-const.c (operand_equal_p <case 'r'>): Add REALPART_EXPR,
328         IMAGPART_EXPR.
329         * tree-dump.c (dequeue_and_dump): Handle REALPART_EXPR and
330         IMAGPART_EXPR explicitly.
331         * tree-inline.c (estimate_num_insns_1): Don't handle REALPART_EXPR
332         and IMAGPART_EXPR specially.
333         * tree.c (build1_stat): Copy TREE_THIS_VOLATILE into class 'r'.
334
335 2004-06-28  J"orn Rennecke <joern.rennecke@superh.com>
336
337         * config.gcc (sh*-*elf*): Remove dead assignment of sh_multilibs.
338
339 2004-06-28  Joseph S. Myers  <jsm@polyomino.org.uk>
340
341         * builtins.def (execl, execlp, execle, execv, execvp, execve,
342         fork): Change to DEF_EXT_LIB_BUILTIN.
343
344 2004-06-28  Roger Sayle  <roger@eyesopen.com>
345
346         * expmed.c (expand_smod_pow2): New function to expand signed
347         remainder by a constant power of 2, such as "x % 16".
348         (expand_divmod): Call new expand_smod_pow2 when appropriate.
349         Minor corrections to comments, e.g. wrapping long lines.
350
351 2004-06-28  Ulrich Weigand  <uweigand@de.ibm.com>
352
353         * Makefile.in (vec.o): Fix dependencies.
354
355 2004-06-28  Andreas Tobler <a.tobler@schweiz.ch>
356
357         * Makefile.in: Fix parallel make dependency problem on vec.o.
358
359 2004-06-28  Dhananjay Deshpande  <dhananjayd@kpitcummins.com>
360
361         PR target/14041
362         * config/h8300/h8300.h (ASM_OUTPUT_ALIGNED_BSS): Define.
363
364 2004-06-28  Nathan Sidwell  <nathan@codesourcery.com>
365
366         * tree.h (tree_check_failed): Make varadic.
367         (tree_not_check_failed): New prototype.
368         (tree_check2_failed, tree_check3_failed,
369         tree_check4_failed, tree_check5_failed): Remove.
370         (TREE_CHECK, TREE_CHECK2, TREE_CHECK3, TREE_CHECK4,
371         TREE_CHECK5): Adjust.
372         (TREE_NOT_CHECK, TREE_NOT_CHECK2, TREE_NOT_CHECK3, TREE_NOT_CHECK4,
373         TREE_NOT_CHECK5): New.
374         (TREE_VEC_ELT_CHECK, PHI_NODE_ELT_CHECK, TREE_OPERAND_CHECK_CODE,
375         TREE_RTL_OPERAND_CHECK): Adjust.
376         * tree.c (tree_check_failed): Make varadic.
377         (tree_not_check_failed): New.
378         (tree_check2_failed, tree_check3_failed,
379         tree_check4_failed, tree_check5_failed): Remove.
380
381 2004-06-28  Ulrich Weigand  <uweigand@de.ibm.com>
382
383         * combine.c (can_combine_p): Do not prevent building insns that use
384         and clobber the same fixed hard register.
385         (reg_dead_at_p): Likewise.
386
387 2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
388
389         * tree-sra.c (is_sra_candidate_ref): Remove second arg; all callers
390         changed.
391         (is_sra_candidate_complex_ref): New function.
392         (scalarize_modify_expr): Call it and check for LHS also.
393
394         * tree-pretty-print.c (dump_function_declaration): New.
395         (dump_generic_node, case FUNCTION_TYPE): Call it.
396         (dump_generic_node, case RECORD_TYPE): Don't output dup semicolon.
397         (dump_generic_node, case DECL_EXPR): New case.
398         (dump_generic_node, case PLACEHOLDER_EXPR): Handle.
399         (print_declaration): Handle type and function declarations.
400
401         * tree-nested.c (create_tmp_var_for): Allow ARRAY_TYPE.
402         (convert_nonlocal_reference, convert_local_reference): Properly
403         convert nest of handled component references.
404
405 2004-06-28  Nathan Sidwell  <nathan@codesourcery.com>
406
407         * vec.h, vec.c: New, type safe vector API.
408         * Makefile.in (OBJS-common): Add vec.o.
409         (vec.o): New target.
410         (gengtype-lex.o): Depend on vec.h.
411
412 2004-06-28  Paolo Bonzini  <bonzini@gnu.org>
413
414         * fold-const.c (fold_cond_expr_with_comparison): Add ARG1
415         parameter.  Use it instead of ARG00 to produce the result.
416
417 2004-06-28  Alexandre Oliva  <aoliva@redhat.com>
418
419         * config/mn10300/mn10300-protos.h (legitimate_address_p): Declare.
420         * config/mn10300/mn10300.c (legitimate_address_p): New.  Test that
421         index is legitimate, compared with code moved from...
422         * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): here.
423         (REG_STRICT): Define, according to REG_OK_STRICT.
424         (REGNO_IN_RANGE_P, REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P,
425         REGNO_EXTENDED_P, REGNO_AM33_P, REGNO_FP_P): Introduce strict
426         argument.
427         (REGNO_STRICT_OK_FOR_BASE_P, REGNO_STRICT_OK_FOR_BIT_BASE_P,
428         REGNO_STRICT_OK_FOR_INDEX_P): New.
429         (REGNO_OK_FOR_BASE_P, REG_OK_FOR_BASE_P, REGNO_OK_FOR_BIT_BASE_P,
430         REG_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P,
431         RTX_OK_FOR_BASE_P): Use them.
432
433 2004-06-28  Ben Elliston  <bje@au.ibm.com>
434
435         * doc/cfg.texi (Basic Blocks): Define dominators.
436
437 2004-06-27  Andrew Pinski  <pinskia@physics.uc.edu>
438
439         PR c++/16205
440         * c-common.c (warn_for_collisions_1): Warn for only decls which
441         have a name.
442
443         PR c++/15145
444         * c.opt (Wsequence-point): Enable for C++ and ObjC++.
445
446         PR c/14963
447         * c-decl.c (start_decl): Check for null types.
448
449 2004-06-27  David Edelsohn  <edelsohn@gnu.org>
450
451         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
452         Accept TOC addresses.
453
454 2004-06-27  Ulrich Weigand  <uweigand@de.ibm.com>
455
456         * config/s390/s390-protos.h (s390_load_got): Update prototype.
457         * config/s390/s390.c (struct machine_function): Add member base_reg.
458         (s390_decompose_address): Accept UNSPEC_LTREF.  Simplify logic.
459         (s390_split_branches): Annotate late pool references.
460         (annotate_constant_pool_refs): New function.
461         (find_constant_pool_ref): Work on annotated pool references.
462         (replace_constant_pool_ref): Likewise.  Use explicit base.
463         (replace_ltrel_base): Use explicit base.
464         (s390_mainpool_start): Reflect main_pool pattern change.
465         (s390_mainpool_finish): Use base register from main_pool.
466         Update calls to replace_ltrel_base and replace_constant_pool_ref.
467         (s390_chunkify_start): Use base_reg from struct machine_function.
468         (s390_chunkify_finish): Remove base_reg argument.  Update calls
469         to replace_ltrel_base and replace_constant_pool_ref.
470         (s390_reorg): Don't decide upon base register.  Update calls.
471         (s390_load_got): Remove MAYBE_DEAD handling.  Do not emit insns
472         but return sequence instead.
473         (s390_emit_prologue): Decide upon base register to use.  Annotate
474         all literal pool references.  Adapt to main_pool pattern change.
475         Update s390_load_got call; move MAYBE_DEAD handling here.
476         (s390_emit_epilogue): Annotate late literal pool references.
477         Remove barrier before register restore instruction.
478         * config/s390/s390.md (UNSPEC_LTREF): New constant.
479         ("builtin_setjmp_receiver"): Update s390_load_got call.
480         ("main_pool"): Explicitly reference base register.
481
482 2004-06-27  Roger Sayle  <roger@eyesopen.com>
483
484         * fold-const.c (fold) <BIT_IOR_EXPR>: Optimize ~X|X and X|~X as -1.
485         <BIT_XOR_EXPR>: Optimize ~X|X and X|~X as -1.
486         <BIT_AND_EXPR>: Optimize ~X&X and X&~X as 0.
487         <TRUTH_AND_EXPR, TRUTH_ANDIF_EXPR>: Optimize !X&&X and X&&!X as false.
488         <TRUTH_OR_EXPR, TRUTH_ORIF_EXPR>: Optimize !X||X and !X||X as true.
489         <TRUTH_XOR_EXPR>: Optimize !X^X and X^X! as true.  Now that
490         TRUTH_XOR_EXPR is a commutative tree code, don't test whether arg0
491         is a constant.
492
493 2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
494
495         * c-common.c (c_safe_from_p, c_walk_subtrees): Deleted.
496         * c-common.def (DECL_STMT): Remove.
497         * c-common.h (DECL_STMT_DECL): Deleted.
498         (COMPOUNT_LITERAL_EXPR_DECL): Use DECL_EXPR_DECL.
499         (c_safe_from_p, c_walk_subtrees): Deleted.
500         * c-decl.c, c-parse.in, c-pretty-print.c: DECL_STMT now DECL_EXPR.
501         * c-dump.c (c_dump_tree, case DECL_STMT): Deleted.
502         * c-gimplify.c (gimplify_decl_stmt): Deleted.
503         (gimplify_compound_literal_expr): Use DECL_EXPR_DECL
504         and gimplify_and_add.
505         (c_gimplify_expr, case DECL_EXPR): New case.
506         (c_gimplify_expr, case DECL_STMT): Deleted.
507         * c-lang.c (LANG_HOOKS_SAFE_FROM_P): Likewise.
508         (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise.
509         * expr.c (safe_from_p, case 's'): New case.
510         * gimplify.c (gimplify_decl_expr): New function.
511         (gimplify_expr, case DECL_EXPR): New case.
512         * tree-inline.c (walk_tree): Walk into all fields of a type and
513         decl only if they are in a DECL_EXPR.
514         (mark_local_for_remap_r): Minor code cleanup.
515         * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Add else.
516         * tree.c (has_cleanups, case DECL_EXPR): New case.
517         * tree.def (DECL_EXPR): New code.
518         * tree.h (DECL_EXPR_DECL): New macro.
519
520         * objc/objc-lang.c (LANG_HOOKS_SAFE_FROM_P): Deleted.
521
522 2004-06-26  Andrew Pinski  <pinskia@physics.uc.edu>
523
524         PR 13334
525         * doc/install.texi: Document non-standard CFLAGS and bootstrap
526         failures and warnings.
527
528 2004-06-26  Andrew Haley  <aph@redhat.com>
529
530         * emit-rtl.c (set_mem_attributes_minus_bitpos): Check
531         TREE_THIS_NOTRAP when setting MEM_NOTRAP_P.
532         * tree-eh.c (tree_could_trap_p): Check TREE_THIS_NOTRAP.
533         * tree.h (TREE_THIS_NOTRAP): New.
534
535 2004-06-26  Kaz Kojima  <kkojima@gcc.gnu.org>
536
537         * genattrtab.c (write_test_expr): Put a unsigned cast before
538         the first operand for GEU, GTU, LEU and LTU.
539
540 2004-06-26  Kazu Hirata  <kazu@cs.umass.edu>
541
542         * c-typeck.c, cfgexpand.c, ddg.c, ddg.h, df.c, fold-const.c,
543         gcov.c, gimplify.c, modulo-sched.c, passes.c, tree-cfg.c,
544         tree-mudflap.c, tree-nrv.c, tree-outof-ssa.c, tree-ssa-dom.c,
545         tree-ssa-dse.c, tree-ssa-operands.c, tree-ssa-pre.c,
546         tree-tailcall.c: Fix comment typos.  Follow spelling
547         conventions.
548
549 2004-06-25  Eric Christopher  <echristo@redhat.com>
550
551         * config/mips/mips.md: Add back scheduling exclusion info.
552
553 2004-06-25  Roger Sayle  <roger@eyesopen.com>
554
555         * ifcvt.c (seq_contains_jump): Delete function.
556         (end_ifcvt_sequence): Replace call to seq_contains_jump with an
557         inline test for a jump instruction in the existing "insn" loop.
558         (block_fallthru): Document function.
559
560 2004-06-25  Philip Blundell  <philb@gnu.org>
561
562         PR wrong-code/15089
563         * loop.c (scan_loop): Do not move user-specified register
564         assignments.
565
566 2004-06-25  DJ Delorie  <dj@redhat.com>
567
568         * c-common.h (warn_cast_qual, warn_missing_format_attribute,
569         warn_pointer_arith, warn_missing_prototypes, warn_parentheses,
570         warn_missing_braces, warn_sign_compare, warn_long_long,
571         warn_redundant_decls, warn_float_equal, warn_char_subscripts,
572         warn_conversion, warn_format_y2k, warn_format_extra_args,
573         warn_format_zero_length, warn_format_nonliteral,
574         warn_format_security, mesg_implicit_function_declaration,
575         warn_bad_function_cast, warn_traditional,
576         warn_declaration_after_statement, warn_strict_prototypes,
577         warn_missing_declarations, warn_nested_externs,
578         warn_sequence_point, warn_init_self, warn_div_by_zero,
579         warn_implicit_int, warn_nonnull, warn_old_style_definition,
580         warn_selector, warn_undeclared_selector, warn_protocol,
581         warn_abi, warn_invalid_offsetof, warn_ctor_dtor_privacy,
582         warn_overloaded_virtual, warn_nonvdtor, warn_reorder,
583         warn_synth, warn_pmf2ptr, warn_ecpp, warn_sign_promo,
584         warn_old_style_cast, warn_nontemplate_friend,
585         warn_deprecated): Remove explicit declarations.
586         * c-common.c: Likewise, remove explicit definitions.
587         * c-opts.c: Likewise, remove explicit assignments.
588         * c.opts: Likewise, add implicit declare/define/assign.
589
590 2004-06-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
591
592         * gimplify.c (lookup_tmp_var): Set TREE_READONLY in is_formal case.
593         (build_addr_expr_with_type): Deleted.
594         (build_addr_expr): Deleted; callers changed to build_fold_addr_expr.
595         (gimplify_compound_lval): Make two passes over reference nest.
596
597         * tree-nested.c (build_addr): Merge real/imagpart with
598         handled_component_p.
599         (convert_nonlocal_reference, convert_local_reference): Process extra
600         args to COMPONENT_REF and ARRAY_REF.
601         * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Check for
602         lower bound and field offset being constant.
603
604 2004-06-25  Mark Mitchell  <mark@codesourcery.com>
605
606         PR wrong-code/16129
607         * alias.c (get_alias_set): Adjust setting of
608         DECL_POINTER_ALIAS_SET for pointers to aggregates.
609
610 2004-06-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
611
612         * tree-inline.c (remap_type): Arrange to have just one pointer type
613         for each type, mode, and 'can alias' value.
614         (setup_one_parameter): Remap type when making VAR_DECL for PARM_DECL.
615         (estimate_num_insns_1): Minor code reformatting.
616         (inline_forbidden_p_1): Likewise; add; missing return statement.
617
618 2004-06-25  Roger Sayle  <roger@eyesopen.com>
619
620         PR middle-end/15825
621         * ifcvt.c (unshare_ifcvt_sequence): Rename to end_ifcvt_sequence.
622         Use get_isns and end_sequence instead of accepting a seq argument.
623         Scan the instruction sequence for unrecognizable or jump insns.
624         (noce_try_move, noce_try_store_flag, noce_try_store_flag_constants,
625         noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove,
626         noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
627         noce_try_sign_mask): Use end_ifcvt_sequence to factor common code.
628
629 2004-06-24  Jeff Law  <law@redhat.com>
630
631         * gimplify.c (gimplify_compound_lval): Reset TREE_SIDE_EFFECTS
632         after gimplifying the innermost component.
633
634 2004-06-25  Richard Sandiford  <rsandifo@redhat.com>
635
636         PR target/16176
637         * config/mips/mips.c (mips_expand_unaligned_load): Use a temporary
638         register for the destination of the lwl or ldl.
639
640 2004-06-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
641
642         * tree-dfa.c (get_virtual_var): Merge real/imaginary parts with
643         handled_component_p handling.
644         * tree-gimple.c (get_base_address): Likewise and fix typo that
645         caused both recursion and looping.
646
647         * tree-cfg.c (verify_expr): Add macro CHECK_OK.
648         Properly test for nest of handled_components in LHS context.
649
650 2004-06-25  Devang Patel  <dpatel@apple.com>
651
652         * doc/tree-ssa.texi: Document info about MODIFY_EXPR's type
653
654 2004-06-25  Paul Brook  <paul@codesourcery.com>
655
656         * target-def.h (TARGET_CXX_GUARD_TYPE, TARGET_CXX_GUARD_MASK_BIT,
657         TARGET_CXX): Define.
658         (TARGET_INITIALIZER): Use TARGET_CXX.
659         * target.h (struct gcc_target): Add struct cxx.
660         * targhooks.h (default_cxx_guard_type): Add prototype.
661         * targhooks.c (default_cxx_guard_type): New function.
662         * config/arm/arm.c (TARGET_CXX_GUARD_TYPE, TARGET_CXX_GUARD_MASK_BIT):
663         Define.
664         (arm_cxx_guard_type, arm_cxx_guard_mask_bit): New functions.
665         * doc/tm.texi: Document TARGET_CXX_GUARD_TYPE and
666         TARGET_CXX_GUARD_MASK_BIT.
667
668 2004-06-25  Devang Patel  <dpatel@apple.com>
669
670         * config/rs6000/darwin.h (CC1_SPEC): Handle -gused and -gfull.
671         * config/i386/darwin.h (CC1_SPEC): Same.
672
673 2004-06-25  Mark G. Adams  <mark.g.adams@sympatico.ca>
674
675         * dbxout.h: Add include guards
676
677 2004-06-25  Paul Brook  <paul@codesourcery.com>
678
679         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_EABI__.
680
681 2004-06-25  Richard Earnshaw  <rearnsha@arm.com>
682
683         * arm.c (arm_arch4t): New variable.
684         (arm_override_options): Initialize it.  If compiling for armv5 or
685         higher clear TARGET_INTERWORK.
686         (output_call): Abort if called for armv5.  Use BX if it's available.
687         (output_call_mem): Use BLX if available and ensure that all armv5
688         code is interworking safe.
689         (output_return_instruction): Always use BX in preference to MOV if
690         it's available.
691         (arm_output_epilogue): Likewise.
692         (arm_final_prescan_insn): Never conditionally call a subroutine
693         on armv5.
694         * arm.h (arm_arch4t): Declare.
695         * arm.md (call_reg_armv5, call_value_reg_armv5): New.
696         (call_reg_arm, call_value_reg_arm): Renamed from call_reg and
697         call_value_reg respectively.
698         (call_reg_thumb_v5, call_value_reg_thumb_v5): New.
699         (call_reg_thumb, call_value_reg_thumb): Renamed from call_indirect
700         and call_value_indirect respectively.
701
702 2004-06-25  Richard Sandiford  <rsandifo@redhat.com>
703
704         * config/mips/mips.c (reg_or_const_float_1_operand): Reimplement
705         in terms of const_float_1_operand.
706
707 2004-06-25  Richard Sandiford  <rsandifo@redhat.com>
708
709         PR target/16144
710         * config/mips/mips.md (divsf, divdf): Don't FAIL if the first operand
711         is 1.0; force it into a register instead.
712
713 2004-06-25  Bernardo Innocenti  <bernie@develer.com>
714
715         * config/m68k/m68k.h: Restore valid comment removed by mistake with
716         the recent m68k comments cleanup.
717
718 2004-06-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
719
720         * c-gimplify.c (gimplify_for_stmt): Use gimplify_and_add.
721         * gimplify.c (internal_get_tmp_var, gimplify_return_expr): Likewise.
722         (gimplify_loop_expr, gimplify_init_constructor): Likewise.
723         (gimplify_self_mod_expr, gimplify_cond_expr): Likewise.
724
725         PR/16131
726         * gimplify.c (voidify_wrapper_expr): Allow TARGET_EXPR.
727
728         * gimplify.c: Remove unneeded forward declarations.
729
730         * gimplify.c (append_to_compound_expr): Deleted.
731         * tree-gimple.h (append_to_compound_expr): Deleted.
732
733         * fold-const.c (fold_addr_expr_with_type): Look through all
734         valid LHS modifiers to find a base to mark addressable.
735
736         * tree.h (debug_find_tree): Add declaration.
737         * tree-inline.c (debug_find_tree): Remove extern declaration.
738
739 2004-06-24  Eric Christopher  <echristo@redhat.com>
740
741         * config/rs6000/rs6000.md: Apply change mistakenly
742         deleted with 2004-06-22 patch.
743
744 2004-06-24  Richard Henderson  <rth@redhat.com>
745
746         * c-decl.c (c_in_iteration_stmt, c_in_case_stmt): Remove.
747         (c_break_label, c_cont_label): New.
748         (start_function): Update initializations.
749         (c_push_function_context): Update saves.
750         (c_pop_function_context): Update restores.
751         * c-parse.in: Update expected conflicts.
752         (stmt_count, compstmt_count): Remove.  Remove all updates.
753         (if_prefix, simple_if, do_stmt_start): Remove.
754         (lineno_labeled_stmt): Remove.
755         (lineno_labels): New.
756         (c99_block_lineno_labeled_stmt): Use it.
757         (lineno_stmt, lineno_label): Don't clear EXPR_LOCUS before calling
758         annotate_with_locus.
759         (select_or_iter_stmt): Replace by ...
760         (condition, if_statement_1, if_statement_2, if_statement,
761         start_break, start_continue, while_statement, do_statement,
762         for_cond_expr, for_incr_expr, for_statement, switch_statement): New.
763         (stmt): Split out ...
764         (stmt_nocomp): ... this.  Use c_finish_bc_stmt, c_finish_goto_label,
765         c_finish_goto_ptr.
766         * c-semantics.c (add_stmt): Don't add line numbers to labels.
767         * c-tree.h: Update prototypes.
768         (struct language_function): Remove x_in_iteration_stmt, x_in_case_stmt;
769         add x_break_label, x_cont_label, x_switch_stack.
770         (c_switch_stack): Declare.
771         * c-typeck.c (c_finish_goto_label, c_finish_goto_ptr): New.
772         (c_finish_return): Return the statement.
773         (c_switch_stack): Rename from switch_stack; export.
774         (if_elt, if_stack, if_stack_space, if_stack_pointer): Remove.
775         (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_begin_else,
776         c_finish_else): Remove.
777         (c_finish_if_stmt): Rewrite to perform the entire operation.
778         (c_begin_while_stmt, c_finish_while_stmt_cond, c_finish_while_stmt,
779         c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
780         c_finish_for_stmt_incr, c_finish_for_stmt): Remove.
781         (c_finish_loop): New.
782         (c_finish_bc_stmt): New.
783         (c_finish_expr_stmt): Return the statement.  Split out...
784         (c_process_expr_stmt): ... this.  Don't add locus to error marks.
785         * gimplify.c (gimplify_cond_expr): Accept NULL type statements.
786         * tree-gimple.c (is_gimple_stmt): Likewise.
787         * tree-pretty-print.c (dump_generic_node <COND_EXPR>): Likewise.
788         (print_struct_decl): Delete empty compound statement.
789         * objc/objc-act.c (objc_build_throw_stmt): Return the statement.
790         * objc/objc-act.h: Update decl.
791
792 2004-06-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
793
794         * tree-pretty-print.c (dump_generic_node, case TYPE_DECL):
795         Don't look at TYPE_METHODS unless RECORD_TYPE or UNION_TYPE.
796
797 2004-06-24  Andrew Pinski  <apinski@apple.com>
798
799         * objc-act.c (build_objc_method_call): Save the lookup_object
800         so we do not call it twice.
801
802 2004-06-24  Richard Henderson  <rth@redhat.com>
803
804         * tree-ssa-dom.c (real_avail_expr_hash): New.
805         (tree_ssa_dominator_optimize): Use it in the htab.
806
807 2004-06-24  Frank Ch. Eigler  <fche@redhat.com>
808
809         * tree-mudflap.c (mx_register_decls): Add third (type) argument
810         to synthesized __mf_unregister call.
811
812 2004-06-24  Roger Sayle  <roger@eyesopen.com>
813
814         PR middle-end/15239
815         * expmed.c (expand_mult): Remove artificial restriction on the
816         maximum cost of a synthetic multiplication sequence.
817
818 2004-06-24  Eric Christopher  <echristo@redhat.com>
819
820         * combine.c (distribute_notes): Don't delete sets to
821         global register variables.
822
823 2004-06-24  Jakub Jelinek  <jakub@redhat.com>
824
825         * config/i386/i386.md (ffsdi2, clzdi2): New expanders.
826         (ffs_rex64): New splitter.
827         (ffsdi_1, ctzdi2, bsr_rex64): New instructions.
828
829 2004-06-24  Andrew Pinski  <apinski@apple.com>
830
831         * config/darwin7.h (MATH_LIBRARY): Remove.
832         (LIB_SPEC): Define.
833         * config/darwin.h (MATH_LIBRARY): Define always to empty.
834         (LIB_SPEC): Only define if not already defined.
835
836 2004-06-24  Revital Eres  <eres@il.ibm.com>
837
838         * loop-iv.c (iv_analyze, simple_set_p): Support for identifying
839         shifts of induction variable.
840         (iv_shift): New function.
841
842 2004-06-24  Richard Henderson  <rth@redhat.com>
843
844         * gimplify.c (gimplify_body): Watch for body vanishing.
845
846 2004-06-24  Jeff Law  <law@redhat.com>
847
848         * tree-ssa-dom.c (record_dominating_conditions): New function.
849         (dom_opt_finalize_block, get_eq_expr_value): Use it.
850
851 2004-06-24  Richard Sandiford  <rsandifo@redhat.com>
852
853         * calls.c (shift_returned_value): Fix handling of non-integer
854         TYPE_MODEs.
855
856 2004-06-24  Ulrich Weigand  <uweigand@de.ibm.com>
857
858         * c-decl.c (finish_function): Do not check for DEFAULT_MAIN_RETURN.
859         * system.h (DEFAULT_MAIN_RETURN): Poison.
860         * doc/tm.texi (DEFAULT_MAIN_RETURN): Remove documentation.
861
862 2004-06-24  Ben Elliston  <bje@au.ibm.com>
863
864         * doc/cfg.texi (Edges): Fix typo.
865
866 2004-06-24  Paul Brook  <paul@codesourcery.com>
867
868         * config/arm/arm.c (arm_output_epilogue): Remove excess checks.
869
870 2004-06-23  Andrew Pinski  <apinski@apple.com>
871
872         PR middle-end/15988
873         * fold-const.c (fold_convert): Types which are compatible
874         can be converted with only a NOP_EXPR.
875
876 2004-06-24  Alan Modra  <amodra@bigpond.net.au>
877
878         * calls.c (expand_call): Call INIT_CUMULATIVE_ARGS earlier, and
879         pass raw n_named_args to it.
880         * targhooks.c: Formatting.
881         (hook_bool_CUMULATIVE_ARGS_false): Correct comment.
882
883 2004-06-23  Richard Henderson  <rth@redhat.com>
884
885         * c-gimplify.c (gimplify_decl_stmt): Push gimplify_one_sizepos inside
886         non-constant size check.  Gimplify the type too.  Tidy building
887         BUILT_IN_STACK_ALLOC call.
888
889 2004-06-23  Roger Sayle  <roger@eyesopen.com>
890
891         * c-common.c (expand_unordered_cmp): Delete.
892         (expand_tree_builtin): Delete.
893         * c-common.h (expand_tree_builtin): Delete function prototype.
894         * c-typeck.c (build_function_call): Don't call expand_tree_builtin.
895
896 2004-06-23  Richard Henderson  <rth@redhat.com>
897
898         * gimplify.c (gimplify_compound_lval): Don't set ARRAY_REF or
899         COMPONENT_REF variable fields unless they're non-constant.
900
901 2004-06-23  Robert Millan  <robertmh@gnu.org>
902
903         * config.gcc: Merge kfreebsd*-gnu with linux* and add knetbsd*-gnu.
904         * config/i386/linux.h: Allow overriding of LINK_EMULATION,
905           DYNAMIC_LINKER and register names in sc_ structure.
906         * config/kfreebsd-gnu.h: New. kfreebsd-gnu followup for linux.h.
907         * config/i386/kfreebsd-gnu.h: New. Ditto for i386-kfreebsd-gnu.
908         * config/knetbsd-gnu.h: New. Ditto for knetbsd-gnu.
909         * config/i386/knetbsd-gnu.h: New. Ditto for i386-knetbsd-gnu.
910
911         * config/kfreebsdgnu.h: Remove.
912         * config/t-kfreebsd-gnu: Likewise.
913         * config/i386/kfreebsdgnu.h: Likewise.
914
915 2004-06-23  Eric Christopher  <echristo@redhat.com>
916
917         * fold-const.c (make_range): Cleanup type checking through function.
918         Remove orig_type. Replace with checks to exp_type and arg0_type.
919         Clarify comment when converting from unsigned to signed.
920
921 2004-06-23  Eric Christopher  <echristo@redhat.com>
922
923         * config/mips/mips.c (mips_use_dfa_pipeline_interface): Add R3000.
924         * config/mips/mips.md: Remove R3000 scheduling description.
925         * config/mips/3000.md: New file.
926
927 2004-06-23  Ulrich Weigand  <uweigand@de.ibm.com>
928
929         * config/s390/s390-protos.h (s390_emit_compare): Add prototype.
930         (s390_emit_jump): Likewise.
931         * config/s390/s390.c (s390_emit_compare): New function.
932         (s390_emit_jump): Likewise.
933         * config/s390/s390.md ("beq", "bne", "bgt", "bgtu", "blt", "bltu",
934         "bge", "bgeu", "ble", "bleu", "bunordered", "bordered", "buneq",
935         "bungt", "bunlt", "bunge", "bunle", "bltgt"): Use s390_emit_compare
936         and s390_emit_jump.
937         ("cjump"): Remove, replace by ...
938         ("*cjump_64", "*cjump_31"): ... these insns.  Improve length default.
939         ("icjump", "*icjump_64", "*icjump_31"): Likewise.
940         ("trap"): Fix type attribute.
941         ("conditional_trap"): Use s390_emit_compare.
942         ("doloop_si"): Remove, replace by ...
943         ("doloop_si64", "doloop_si31"): ... these new insn_and_split.
944         Merge existing splitter into insn_and_split.  Improve length default.
945         ("doloop_di"): Merge with existing splitter into insn_and_split.
946         ("doloop"): Adapt.
947         ("jump"): Convert to expander.  Use s390_emit_jump.
948         ("*jump_64", "*jump_31"): New insns.  Improve length default.
949
950 2004-06-23  Wu Yongwei  <adah@sh163.net>
951
952         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
953         (__gthr_i486_lock_cmp_xchg): New inline assembly function.
954         (__GTHR_W32_InterlockedCompareExchange): New macro to choose a
955         suitable function for interlocked compare-and-exchange.
956         (__gthread_mutex_trylock): Use
957         __GTHR_W32_InterlockedCompareExchange.
958         (__gthread_mutex_init_function, __gthread_mutex_lock,
959         __gthread_mutex_trylock, __gthread_mutex_unlock): Adjust the
960         initial counter value to work correctly under Windows 95.
961         * config/i386/gthr-win32.c: Adjust include order.
962         Define __GTHREAD_I486_INLINE_LOCK_PRIMITIVES before including
963         gthr-win32.h.
964         (__gthr_win32_mutex_init_function, __gthr_win32_mutex_lock,
965         __gthr_win32_mutex_trylock, __gthr_win32_mutex_unlock): Adjust
966         to match inline versions in gthr-win32.h.
967
968 2004-06-23  David Edelsohn  <edelsohn@gnu.org>
969
970         * config/rs6000/rs6000.c (rs6000_use_dfa_pipeline_interface): Delete.
971         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Redefine a hook_int_void_1.
972         (insvdi_rshift_rlwimi_p): New function.
973         * config/rs6000/rs6000.md (insvdi_internal2/3): New patterns.
974         (extendsfdf2): Convert to define_insn_and_split.
975         * config/rs6000/rs6000-protos.h (insvdi_rshift_rlwimi_p): Prototype.
976
977 2004-06-23  Andrew Pinski  <apinski@apple.com>
978
979         * c-typeck.c (composite_type, <case ARRAY_TYPE>): Abort if we have
980         type qualifiers at all.
981         If both of the type domains are null and the new element type is
982         the same as one of the, return the one which the element type.
983         matches.
984         Do not call qualify_type on the new type.
985
986 2004-06-23  Ulrich Weigand  <uweigand@de.ibm.com>
987
988         * config/s390/s390.h (DEFAULT_MAIN_RETURN): Remove.
989
990 2004-06-23  Roger Sayle  <roger@eyesopen.com>
991
992         * convert.c (strip_float_extension): Skip both NOP_EXPR and
993         CONVERT_EXPR floating point extensions.
994
995 2004-06-23  Diego Novillo  <dnovillo@redhat.com>
996
997         * Makefile.in (tree-vn.o): New.
998         (tree-ssa-pre.o): Don't depend on RTL_H.
999         * tree-dfa.c (find_referenced_vars): Don't call init_tree_ssa.
1000         * tree-flow.h (struct var_ann_d): Remove field expr_set.
1001         (add_to_value, expressions_equal_p, get_value_handle, vn_compute,
1002         vn_lookup_or_add, vn_add, vn_lookup, vn_init, vn_delete): Declare.
1003         * tree-optimize.c (execute_init_datastructures): New local function.
1004         (pass_init_datastructures): New local variable.
1005         (init_tree_optimization_passes): Sequence pass_init_datastructures.
1006         * tree-pretty-print.c (MASK_POINTER): Remove.
1007         (dump_generic_node): Handle VALUE_HANDLE.
1008         * tree-ssa-pre.c: Move all value numbering routines to tree-vn.c.
1009         Update callers to use new function names.
1010         Use VALUE_HANDLE_ID and VALUE_HANDLE_EXPR_SET instead of
1011         variable annotations.
1012         * tree-ssa.c (init_tree_ssa): Call vn_init.
1013         (delete_tree_ssa): Call vn_delete.
1014         * tree-vn.c: New file.
1015         * tree.c (tree_size): Handle VALUE_HANDLE.
1016         (tree_node_structure): Likewise.
1017         (iterative_hash_expr): Likewise.
1018         * tree.def (VALUE_HANDLE): New code.
1019         * tree.h (struct tree_value_handle): New.
1020         (VALUE_HANDLE_ID): Define.
1021         (VALUE_HANDLE_EXPR_SET): Define.
1022         (enum tree_node_structure_enum): Add TS_VALUE_HANDLE.
1023         (union tree_node): Add struct tree_value_handle.
1024
1025 2004-06-23  Andrew Pinski  <apinski@apple.com>
1026
1027         * c-typeck.c (composite_type):
1028         <case POINTER_TYPE>: Build a qualified type of
1029         the new type.
1030         <case ARRAY_TYPE>: Likewise.
1031         <case FUNCTION_TYPE>: Likewise.
1032
1033 2004-06-23  Pat Haugen  <pthaugen@us.ibm.com>
1034
1035         PR optimization/15633
1036         * value-prof.c (divmod_fixed_value_transform): Compute probability
1037         of taking optimal path and pass along to gen_ routine.
1038         (mod_pow2_value_transform): Same.
1039         (mod_subtract_transform): Same.
1040         (gen_divmod_fixed_value): Add new probability parameter.
1041         Add probability to newly created jump.
1042         (gen_mod_pow2): Same.
1043         (gen_mod_subtract): Same.
1044
1045 2004-06-23  Richard Earnshaw  <rearnsha@arm.com>
1046
1047         * PR target/15948
1048         * arm.md (bicsi3_cbranch): Add alternative to handle tying operands
1049         one and two.
1050
1051 2004-06-23  Richard Earnshaw  <rearnsha@arm.com>
1052
1053         PR target/15927
1054         * arm.h (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Don't need a secondary
1055         reload if CLASS is BASE_REGS.
1056
1057 2004-06-23  Richard Sandiford  <rsandifo@redhat.com>
1058
1059         * gengtype-yacc.y (option): Avoid use of non-constant struct
1060         initializer.
1061
1062 2004-06-23  Nathan Sidwell  <nathan@codesourcery.com>
1063
1064         * doc/extend.texi (Function Attributes): Alphabetize.
1065
1066 2004-06-23  Richard Henderson  <rth@redhat.com>
1067
1068         * c-gimplify.c (gimplify_decl_stmt): Update gimplify_type_sizes call.
1069         Use gimplify_and_add.
1070         * c-typeck.c (c_finish_if_stmt): Use NULL instead of empty stmt.
1071         * gimplify.c (build_and_jump, gimplify_exit_expr,
1072         gimplify_init_constructor, gimplify_save_expr, gimple_push_cleanup,
1073         gimplify_stmt, gimplify_expr): Likewise.
1074         (shortcut_cond_expr): Handle NULL arms of COND_EXPR.
1075         (gimplify_statement_list): Remove NULL entries.
1076         (gimplify_to_stmt_list): Handle NULL results.
1077         (gimplify_type_sizes): Add list_p argument.
1078         (gimplify_one_sizepos): Don't use internal pre/post queue.
1079         * tree-gimple.h (gimplify_type_sizes): Update.
1080
1081 2004-06-22  Eric Christopher  <echristo@redhat.com>
1082
1083         * config/rs6000/rs6000.md (*insvsi_internal5/6): New patterns.
1084
1085 2004-06-22  Pat Haugen  <pthaugen@us.ibm.com>
1086
1087         * cfghooks.c (make_forwarder_block): Decrement count on fallthru edge
1088         when redirecting back edges.
1089
1090         * cfghooks.c (split_block): Call make_single_succ_edge so that edge
1091         count/probability are set correctly.
1092
1093 2004-06-22  Richard Henderson  <rth@redhat.com>
1094
1095         * c-typeck.c (emit_side_effect_warnings): Ignore error marks.
1096         (c_finish_stmt_expr): Likewise.
1097
1098         * config/i386/i386.c (TARGET_STRUCT_VALUE_RTX): New.
1099         (ix86_return_in_memory): Move SSE vector return warning ...
1100         (ix86_struct_value_rtx): ... here.  New.
1101
1102 2004-06-22  Richard Henderson  <rth@redhat.com>
1103
1104         * tree.def (VTABLE_REF): Remove.
1105         (OBJ_TYPE_REF): New.
1106         (TRY_CATCH_EXPR, TRY_FINALLY_EXPR): Set type 's'.
1107         * expr.c (expand_expr_real_1): Replace VTABLE_REF with OBJ_TYPE_REF.
1108         * fold-const.c (non_lvalue): Likewise.
1109         * gimplify.c (gimplify_expr): Likewise.
1110         (gimplify_call_expr): Use is_gimple_call_addr.
1111         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): New.
1112         * langhooks.h (fold_obj_type_ref): New.
1113         * tree-gimple.c (is_gimple_call_addr): New.
1114         * tree-gimple.h (is_gimple_call_addr): Declare.
1115         * tree-inline.c (inlinable_function_p): Fix merge error.
1116         (estimate_num_insns_1): Replace VTABLE_REF with OBJ_TYPE_REF.
1117         * tree-pretty-print.c (dump_generic_node): Likewise.
1118         (print_call_name): Handle OBJ_TYPE_REF.
1119         * tree-ssa-ccp.c (fold_stmt): Fold OBJ_TYPE_REF.
1120         * tree-ssa-operands.c (get_expr_operands): Handle OBJ_TYPE_REF.
1121         * tree.h (OBJ_TYPE_REF_EXPR): New.
1122         (OBJ_TYPE_REF_OBJECT, OBJ_TYPE_REF_TOKEN): New.
1123         * doc/c-tree.texi (VTABLE_REF): Remove.
1124         * objc/objc-act.c (build_objc_method_call): Build an OBJ_TYPE_REF.
1125
1126 2004-06-22  Richard Henderson  <rth@redhat.com>
1127
1128         PR middle-end/16026
1129         * function.c (assign_parms): Don't abort for overaligned PARALLEL.
1130
1131 2004-06-22  Joseph S. Myers  <jsm@polyomino.org.uk>
1132
1133         * Makefile.in (distclean): Don't try to remove empty directories.
1134
1135 2004-06-22  Richard Sandiford  <rsandifo@redhat.com>
1136
1137         PR target/15869
1138         * config/mips/mips.c (mips_avoid_hazards): Call split_all_insns_noflow.
1139
1140 2004-06-22  Alexandre Oliva  <aoliva@redhat.com>
1141
1142         * config/mn10300/mn10300.md (movdi, movdf): Use high/low for movu
1143         operands.
1144
1145 2004-06-22  Dale Johannesen  <dalej@apple.com>
1146
1147         * config/rs6000/rs6000.c (legitimate_offset_address_p): Make
1148         global, rename rs6000_legitimate_offset_address_p.
1149         (rs6000_legitimate_address_p): Adjust calls to it.
1150         (lmw_operation): Ditto.
1151         (stmw_operation): Ditto.
1152         * config/rs6000/rs6000-protos.h: Declare it.
1153         * config/rs6000/rs6000.md (*movdf_hardfloat32): Use it
1154         instead of offsettable_memref_p.
1155
1156 2004-06-22  Dale Johannesen  <dalej@apple.com>
1157
1158         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
1159         [reg+reg] mode for TFmode memory accesses.
1160         (rs6000_eliminate_indexed_memrefs): New.
1161         (rs6000_emit_move): Call preceding for TImode and TFmode.
1162
1163 2004-06-22  Paolo Bonzini  <bonzini@gnu.org>
1164
1165         * tree-cfg.c (pass_warn_function_return): It needs
1166         CFG, not SSA.
1167
1168 2004-06-22  Nathan Sidwell  <nathan@codesourcery.com>
1169
1170         * doc/invoke.texi (Machine Dependent Options): Alphabetize.
1171         (Submodel Options): Likewise.
1172
1173 2004-06-21  Andrew Pinski  <apinski@apple.com>
1174
1175         Radar #: 3701874
1176         * c-decl.c (push_file_scope): Return early if we already
1177         have a file scope.
1178
1179 2004-06-21  Geoffrey Keating  <geoffk@apple.com>
1180
1181         * c-opts.c (c_common_handle_option): Handle -fpch-preprocess.
1182         * c-common.h (flag_pch_preprocess): Declare.
1183         (c_common_pch_pragma): Likewise.
1184         * c-common.c (flag_pch_preprocess): New.
1185         * c-pch.c (c_common_read_pch): Support -fpreprocess-only.
1186         (c_common_pch_pragma): New.
1187         * c-ppoutput.c (cb_read_pch): New.
1188         (init_pp_output): Support -fpch-preprocess.
1189         * c-pragma.c (init_pragma): Support #pragma GNUC pch_preprocess.
1190         * c.opt (fpch-preprocess): New.
1191         * gcc.c (cpp_options): When save-temps, pass -fpch-preprocess.
1192         * doc/cppopts.texi: Document -fpch-preprocess.
1193         * doc/invoke.texi (Precompiled Headers): Mention that
1194         -fpreprocessed is safe for PCH.  Mention that if an option is
1195         listed as safe that doesn't mean it does what you expect.
1196
1197 2004-06-22  Ben Elliston  <bje@au.ibm.com>
1198
1199         * tree-ssa.c (ssa_redirect_edge): Correct leading comment.
1200
1201 2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1202
1203         * Makefile.in (gimplify.o): Add cgraph.h.
1204         * alias.c (adjust_offset_for_component_ref): Use
1205         component_ref_field_offset.
1206         * c-decl.c (build_array_declarator): Add news args for ARRAY_REF.
1207         * c-gimplify.c (gimplify_expr_stmt): Use alloc_stmt_list.
1208         (gimplify_decl_stmt): Call gimplify_type_sizes for type.
1209         For decl, call gimplify_one_sizepos and use statement list.
1210         (gimplify_compound_literal_expr): New arg PRE_P.
1211         Add statement to PRE_P list and return DECL.
1212         (c_gimplify_expr, case COMPOUND_LITERAL_EXPR): Add arg to
1213         gimplify_compound_literal_expr.
1214         * c-tree.h (getdecls): Deleted.
1215         * c-typeck.c (build_component_ref): Add operand for COMPONENT_REF.
1216         (build_array_ref): Add two operands for ARRAY_REF.
1217         (build_unary_op): Set TREE_INVARIANT and TREE_CONSTANT for
1218         COMPOUND_LITERAL_EXPR.
1219         * coverage.c (tree_coverage_counter_ref): Add new operands
1220         for ARRAY_REF.
1221         * emit-rtl.c (component_ref_for_mem_expr): Add new operand
1222         for COMPONENT_REF.
1223         (set_mem_attributes_minus_bitpos): Use array_ref_low_bound
1224         and array_ref_element_size.
1225         (widen_memory_access):Use component_ref_field_offset.
1226         * explow.c (update_nonlocal_goto_save_area): Add two operands
1227         for ARRAY_REF.
1228         * expr.c (array_ref_element_size, array_ref_low_bound): New functions.
1229         (component_ref_field_offset): Likewise.
1230         (get_inner_reference): Use them.
1231         (expand_expr_real_1, case ARRAY_REF): Use array_ref_low_bound.
1232         * fold-const.c (fold, case EQ_EXPR): Properly handle DECL_SIZE.
1233         (fold_read_from_constant_string): Use array_ref_low_bound.
1234         Verify that result is a character type.
1235         (build_fold_indirect_ref): Add two operands for ARRAY_REF.
1236         * function.c (expand_function_start): Likewise.
1237         * gimple-low.c (expand_var_p): Delete duplicated line.
1238         * gimplify.c: Add static decls for local functions.
1239         (cgraph.h): Now included.
1240         (create_tmp_var): Remove check for ARRAY_TYPE.
1241         (copy_if_shared_r): Look at bounds and sizes of types.
1242         (build_and_jump): Return alloc_stmt_list instead of build_empty_stmt.
1243         (gimplify_exit_expr, shortcut_cond_expr): Likewise.
1244         (gimplify_save_expr, gimple_push_cleanup): Likewise.
1245         (gimplify_init_constructor): Likewise.
1246         WANT_VALUE now bool.
1247         If empty list with no result wanted, return GS_UNHANDLED.
1248         Add additional operands for ARRAY_REF and COMPONENT_REF.
1249         (canonicalize_component_ref): Convert to &array[L].
1250         (gimplify_array_ref_to_plus): Use array_ref_element_size and
1251         array_ref_lower_bound.
1252         (build_addr_expr_with_type, build_addr_expr): New functions.
1253         (gimplify_compound_lval): WANT_LVALUE now bool.
1254         Major rework to allow handle_component_p and initialize and
1255         gimplify new operands for ARRAY_REF, ARRAY_RANGE_REF, and
1256         COMPONENT_REF.
1257         (gimplify_array_ref): Deleted.
1258         (gimplify_self_mod_expr): WANT_VALUE now bool.
1259         (gimplify_modify_expr): Gimplify to_p and from_p later.
1260         Factor out code into gimplify_modify_expr_rhs and call twice.
1261         Move variable-size code earlier and handle PLACEHOLDER_EXPR.
1262         (gimplify_modify_expr_rhs, gimplify_variable_sized_compare): New fns.
1263         (gimplify_addr_expr, case VIEW_CONVERT_EXPR): New case.
1264         (gimplify_expr, case ARRAY_REF): Delete special case.
1265         Instead handle like COMPONENT_REF; also do ARRAY_RANGE_REF,
1266         IMAGPART, and REALPART the same way.
1267         (gimplify_expr, case VIEW_CONVERT_EXPR): New case.
1268         (gimplify_expr): Call gimplify_variable_sized_compare if applicable.
1269         Call alloc_stmt_list instead of build_empty_stmt.
1270         Deal with _REF that's volatile.
1271         (gimplify_type_sizes, gimplify_one_sizepos): New functions.
1272         (unshare_body, unvisit_body): New functions.
1273         (gimplify_body): Call them.
1274         * stmt.c (expand_stack_alloc): Don't expand TYPE_MAX_VALUE.
1275         * stor-layout.c (get_pending_sizes): Don't change SAVE_EXPR_CONTEXT.
1276         * tree-alias-common.c (get_alias_var): Also skip ARRAY_RANGE_REF.
1277         * tree-cfg.c (tree_node_can_be_shared): Treat ARRAY_RANGE_REF
1278         like ARRAY_REF.
1279         (verify_expr, case ADDR_EXPR): Use handled_component_p.
1280         * tree-dfa.c (get_virtual_var): Likewise.
1281         * tree-dump.c (dequeue_and_dump, case COMPONENT_REF, ARRAY_REF):
1282         New cases to dump new operands; likewise for ARRAY_RANGE_REF.
1283         * tree-eh.c (tree_could_trap, case ARRAY_RANGE_REF): Like ARRAY_REF.
1284         * tree-gimple.c (is_gimple_addr_expr_arg): Add ARRAY_RANGE_REF
1285         and INDIRECT_REF.
1286         (get_base_address): Use handled_component_p.
1287         * tree-gimple.h (gimplify_type_sizes, gimplify_one_sizepos): New.
1288         * tree-inline.c (walk_tree): Walk more things for types and decls.
1289         * tree-mudflap.c (mf_build_check_statement_for): Add new operands
1290         for ARRAY_REF and COMPONENT_REF.
1291         (mx_xform_derefs_1): Clean up usage of decl sizes.
1292         * tree-nested.c (build_addr): Use handled_component_p.
1293         (walk_stmts, case CATCH_EXPR): Add missing "break".
1294         (get_static_chain, get_frame_field): Add new operand for COMPONENT_REF.
1295         (finalize_nesting_tree_1): Likewise.
1296         (convert_nonlocal_reference, case ARRAY_RANGE_REF): Like ARRAY_REF
1297         and process additional operands.
1298         (convert_local_reference): Likewise.
1299         * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Treat
1300         ARRAY_RANGE_REF similarly to ARRAY_REF.
1301         * tree-pretty-print.c (dump_generic_node, case QUAL_UNION_TYPE): Handle
1302         like RECORD_TYPE.
1303         (dump_generic_node, case COMPONENT_REF): Print offset operand.
1304         (dump_generic_node, case ARRAY_RANGE_REF): Treat like ARRAY_REF
1305         and print lower bound and element size for both.
1306         (op_prio, case ARRAY_RANGE_REF): Like ARRAY_REF.
1307         * tree-sra.c (csc_build_component_ref): Add new operand.
1308         (scalarize_call_expr): Use get_base_address.
1309         * tree-ssa-ccp.c (widen_bitfield): Clean up size handling.
1310         (maybe_fold_offset_to_array_ref): Rework to handle input having an
1311         ARRAY_REF, refine handling of lower bound, and add new operands
1312         for ARRAY_REF.
1313         (maybe_fold_to_component_ref): Add new operand for COMPONENT_REF.
1314         (maybe_fold_stmt_indirect): Only fold *&B to B if types match.
1315         (maybe_fold_stmt_addition): Only handle constant lower bound.
1316         * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
1317         Treat ARRAY_REF and ARRAY_RANGE_REF the same; look at extra operands.
1318         Look at new offset operand of COMPONENT_REF.
1319         * tree-ssa.c (set_is_used): Use handled_component_p.
1320         * tree.c (substitute_in_expr, case COMPONENT_REF): Add new operand.
1321         (stabilize_reference, case COMPONENT_REF): Likewise.
1322         (stabilize_reference, case ARRAY_RANGE_REF, ARRAY_REF): Similarly.
1323         (recompute_tree_invariant_for_addr_expr): Completely rework to
1324         be more precise.  Also set TREE_SIDE_EFFECTS.
1325         (build1_stat, case ARRAY_EXPR): Don't handle TREE_SIDE_EFFECTS here.
1326         (build2_stat, build3_stat, build4_stat): For references,
1327         propagate TREE_THIS_VOLATILE.
1328         (get_unwidened): Add new operand for COMPONENT_REF.
1329         (get_narrower): Likewise; use host_integerp for DECL_SIZE.
1330         * tree.def (COMPONENT_REF): Add new operand.
1331         (ARRAY_REF, ARRAY_RANGE_REF): Add two new operands.
1332         * tree.h (array_ref_element_size, array_ref_low_bound): New decls.
1333         (component_ref_field_offset): Likewise.
1334         * config/alpha/alpha.c (alpha_va_start): Add new op for COMPONENT_REF.
1335         (alpha_gimplify_va_arg): Likewise.
1336         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
1337         * config/i860/i860.c (i860_va_start, i860_va_arg): Likewise.
1338         * config/iq2000/iq2000.c (iq2000_va_arg): Likewise.
1339         * config/mips/mips.c (mips_va_start, mips_va_arg): Likewise.
1340         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
1341         Likewise.
1342         * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
1343         * config/sh/sh.c (sh_va_start, sh_va_arg): Likewise.
1344         * config/stormy16/stormy16.c (xstormy1_expand_builin_va_start):
1345         Likewise.
1346         (xstormy16_expand_builtin_va_arg): Likewise.
1347         * config/xtensa/xtensa.c (xtensa_va_start, xtensa_va_arg): Likewise.
1348         * objc/objc-act.c (generate_static_references): Likewise.
1349         (generate_strings, build_method_prototype_list_template): Likewise.
1350         (generate_protocol_list): Likewise.
1351
1352 2004-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1353
1354         PR rtl-optimization/14782
1355         * pa.c (emit_move_sequence): Use SFmode for 4-byte modes when doing
1356         the address checks for secondary reloads for loads from and stores
1357         to floating-point registers.
1358         * pa.h (EXTRA_CONSTRAINT, case T): Use SFmode for 4-byte modes
1359         in the address check.  Move work around for ELF32 targets to
1360         GO_IF_LEGITIMATE_ADDRESS.
1361         (GO_IF_LEGITIMATE_ADDRESS): Require constant offsets to be
1362         correctly aligned for DImode loads and stores.  Don't allow long
1363         SFmode displacements on ELF32.
1364
1365 2004-06-21  Richard Henderson  <rth@redhat.com>
1366
1367         PR rtl-opt/16114
1368         * cse.c (merge_equiv_classes): Also rehash in response to
1369         delete_reg_equiv changes.
1370         (rehash_using_reg): Don't exclude REGs from rehashing.
1371
1372 2004-06-21  Richard Henderson  <rth@redhat.com>
1373
1374         * c-common.def (RETURN_STMT): Remove.
1375         * c-common.h (RETURN_STMT_EXPR): Remove.
1376         (c_expand_return, build_return_stmt): Remove.
1377         (c_common_stmt_codes): Remove RETURN_STMT.
1378         * c-dump.c (dump_next_stmt): Remove.
1379         (c_dump_tree): Remove RETURN_STMT.
1380         * c-decl.c (finish_function): Use c_finish_return.
1381         * c-parse.in (stmt): Likewise.
1382         * c-gimplify.c (gimplify_return_stmt): Remove.
1383         (c_gimplify_expr): Remove RETURN_STMT.
1384         * c-pretty-print.c (pp_c_statement): Likewise.
1385         * c-semantics.c (build_return_stmt): Remove.
1386         * c-tree.h (c_finish_return): Declare.
1387         * c-typeck.c (c_finish_return): Rename from c_expand_return.
1388         Return void.  Build RETURN_EXPR directly.
1389         * tree-dump.h (dump_next_stmt): Remove.
1390
1391 2004-06-21  Zack Weinberg  <zack@codesourcery.com>
1392
1393         * c-decl.c (start_function): Don't call make_decl_rtl.  Don't
1394         look at TREE_ADDRESSABLE of symbol name.
1395
1396 2004-06-21  Kelley Cook  <kcook@gcc.gnu.org>
1397
1398         PR target/15551
1399         * config/i386/i386.md: Change UNSPEC_STACK_PROBE to UNSPECV_STACK_PROBE.
1400         (allocate_stack_worker): Make unspec_volatile.
1401         (allocate_stack_worker_rex64):  Likewise.
1402         (allocate_stack_worker_postreload):  Likewise.
1403         (allocate_stack_worker_rex64_postreload):  Likewise.
1404
1405 2004-06-21  Daniel Berlin  <dberlin@dberlin.org>
1406
1407         Fix PR optimization/15982
1408         * tree-ssa-pre.c: Update a few comments and todos to
1409         reflect constants change.
1410         (get_value_handle): Constants now value number to themselves.
1411         (lookup): Constants lookup to themselves.
1412         (add_to_value): Adjust to always be on.
1413         (set_contains_value): Adjust for constants change.
1414         (find_leader): Ditto.
1415         (phi_translate): 'r' nodes are never ANTIC right now.
1416         (valid_in_set): Ditto.
1417         (get_expr_set): New function.
1418         (find_or_generate_expression): New function, broken out from
1419         insert_aux.
1420         (create_expression_by_pieces): Ditto, plus additional
1421         machinery to handle complex values.
1422         (compute_avail): Remove dead RETURN_EXPR handling.
1423
1424 2004-06-21  Steven Bosscher  <stevenb@suse.de>
1425
1426         * config/i386/i386.c: Include insn-codes.h
1427         * config/i386/i386.h (FLAGS_REG, FPSR_REG, DIRFLAG_REG): Don't
1428         define here.
1429         * config/i386/i386.md (BP_REG, SP_REG, FLAGS_REG, FPSR_REG,
1430         DIRFLAG_REG): New define_constants.  Use them everywhere.
1431
1432 2004-06-21  Kaz Kojima  <kkojima@gcc.gnu.org>
1433
1434         * config/sh/t-linux (MULTILIB_OPTIONS): Remove.
1435
1436 2004-06-21  J"orn Rennecke <joern.rennecke@superh.com>
1437
1438         * sh.h (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4): Conditionally define.
1439         (SUPPORT_SH4_SINGLE): Likewise.
1440         (TARGET_SWITCHES): Break out switches for cpu subtargets:
1441         (TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E): Define.
1442         (TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E): Likewise.
1443         (TARGET_SWITCH_SH4_SINGLE_ONLY, TARGET_SWITCH_SH4_SINGLE): Likewise.
1444         (TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4): Likewise.
1445         (TARGET_SWITCH_SH5_64MEDIA, TARGET_SWITCH_SH5_64MEDIA_NOFPU): Likewise.
1446         (TARGET_SWITCHES_SH5_32MEDIA): Likewise.
1447         (TARGET_SWITCHES_SH5_32MEDIA_NOFPU): Likewise.
1448         (SELECT_SH5_64, SELECT_SH5_64_NOFPU): Rename to:
1449         (SELECT_SH5_64MEDIA, SELECT_SH5_64MEDIA_NOFPU)
1450         (SELECT_SH5_32, SELECT_SH5_32_NOFPU): Rename to:
1451         (SELECT_SH5_32MEDIA, SELECT_SH5_32MEDIA_NOFPU).
1452         (SH_MULTILIB_CPU_DEFAULT, MULTILIB_DEFAULTS): Define.
1453         (ASM_ISA_SPEC_DEFAULT, ASM_ISA_DEFAULT_SPEC): Likewise.
1454         * sh64.h (ASM_SPEC, LINK_DEFAULT_CPU_EMUL): Don't redefine.
1455         (TARGET_DEFAULT): Likewise.
1456         * config/sh/t-elf: Amend comment.
1457         * config/sh/t-1e, config/sh/t-mlib-sh1: New files.
1458         * config/sh/t-mlib-sh2, config/sh/t-mlib-sh2e: Likewise.
1459         * config/sh/t-mlib-sh3, config/sh/t-mlib-sh3e: Likewise.
1460         * config/sh/t-mlib-sh4, config/sh/t-mlib-sh4-nofpu: Likewise.
1461         * config/sh/t-mlib-sh4-single: Likewise.
1462         * config/sh/t-mlib-sh4-single-only: Likewise.
1463         * config/sh/t-mlib-sh5-32media: Likewise.
1464         * config/sh/t-mlib-sh5-32media-nofpu: Likewise.
1465         * config/sh/t-mlib-sh5-64media: Likewise.
1466         * config/sh/t-mlib-sh5-64media-nofpu: Likewise.
1467         * config/sh/t-mlib-sh5-compact: Likewise.
1468         * config/sh/t-mlib-sh5-compact-nofpu: Likewise.
1469         * config/sh/t-sh: (MULTILIB_ENDIAN): Add mb.
1470         (MULTILIB_CPUS): Define.
1471         (MULTILIB_OPTIONS): Use MULTILIB_CPUS.
1472         (MULTILIB_MATCHES): Use some shell code to calculate it.
1473         (MULTILIB_EXCEPTIONS): Change to ml/m1.
1474         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Use ASM_ISA_DEFAULT_SPEC.
1475         * config/sh/netbsd-elf.h: Update code which sets TARGET_VERSION_CPU.
1476         (LINK_DEFAULT_CPU_EMUL): Don't redefine.
1477         (NO_PROFILE_COUNTERS): Define to 1.
1478         * config/sh/t-netbsd (MULTILIB_OPTIONS): Don't append to.
1479         (MULTILIB_DIRNAMES, MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap.
1480         * config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Don't redefine.
1481         (MULTILIB_MATCHES): Don't zap.
1482         (MULTILIB_DIRNAMES): Use MULTILIB_RAW_DIRNAMES.
1483         * config/sh/t-sh64 (MULTILIB_OPTIONS): Don't redefine.
1484         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap.
1485         (MULTILIB_RAW_DIRNAMES): Define.
1486         (MULTILIB_DIRNAMES): Use it.
1487         * config.gcc: Also set cpu_type / need_64bit_hwint for sh[be]*-*-*.
1488         (sh*linux configurations): Merge into:
1489         (sh*elf / sh*kaos configurations).  Support --with-endian, --with-cpu,
1490         --with-multilib-list options.  Support sh-superh-elf configuration.
1491         (sh*-netbsd*): Use SELECT_SH* macros.
1492         (supported_defaults): sh[123456ble]-*-* | sh-*-* support "cpu".
1493         Merge sh*-*-netbsd* configurations into sh-elf configurations.
1494         * config/sh/t-netbsd-sh5, config/sh/t-be, config/sh/t-le: Delete.
1495         * config/sh/t-monolib: Likewise.
1496
1497 2004-06-21  Paul Brook  <paul@codesourcery.com>
1498
1499         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Soft-float need
1500         not imply FPA.
1501
1502 2004-06-21  Roger Sayle  <roger@eyesopen.com>
1503
1504         * fold-const.c (operand_equal_p): Pass flags in recursive calls for
1505         binary and relational operations.  Add support for TRUTH_ANDIF_EXPR,
1506         TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR.
1507         * tree.c (commutative_tree_code): Also list UNORDERED_EXPR,
1508         ORDERED_EXPR, UNEQ_EXPR, LTGT_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR
1509         and TRUTH_XOR_EXPR.
1510
1511 2004-06-21  Paolo Bonzini  <bonzini@gnu.org>
1512
1513         * rtlanal.c (may_trap_p): Mark LTGT as trapping.
1514
1515 2004-06-21  Joseph S. Myers  <jsm@polyomino.org.uk>
1516
1517         * tree-alias-common.h (struct tree_alias_ops): Change ip and
1518         ip_partial to unsigned int.
1519
1520 2004-06-21  Richard Henderson  <rth@redhat.com>
1521
1522         * c-common.c (verify_sequence_points): Export.
1523         (c_expand_expr_stmt): Move to c-typeck.c.
1524         * c-common.h (c_expand_expr_stmt): Remove.
1525         (verify_sequence_points): Declare.
1526         * c-mudflap.c (mflang_flush_calls): Use c_finish_expr_stmt.
1527         * c-parse.in (for_init_stmt, stmt): Likewise.
1528         * c-tree.h (c_finish_expr_stmt): Declare.
1529         (c_tree_expr_nonnegative_p): Remove.
1530         * c-typeck.c (c_tree_expr_nonnegative_p): Remove.
1531         (build_conditional_expr, build_binary_op): Use tree_expr_nonnegative_p.
1532         (emit_side_effect_warnings): New.
1533         (c_finish_expr_stmt): Rename from c_expand_expr_stmt.  Use it.
1534         (c_finish_stmt_expr): Work without EXPR_STMT.  Handle eh regions.
1535         Use emit_side_effect_warnings.
1536         (push_cleanup): Copy STATEMENT_LIST_STMT_EXPR.
1537         * fold-const.c (tree_expr_nonnegative_p): Handle TARGET_EXPR.
1538         * gimplify.c (gimplify_modify_expr): Don't discard TARGET_EXPR
1539         with void initializer.
1540         (gimplify_target_expr): Handle void BIND_EXPR initializer.
1541         * tree-inline.c (estimate_num_insns_1): Fix type lookup for
1542         INIT_EXPR and MODIFY_EXPR.
1543         * objc/objc-act.c (build_module_descriptor): Use add_stmt
1544         instead of c_expand_expr_stmt.
1545
1546 2004-06-21  Paolo Bonzini  <bonzini@gnu.org>
1547
1548         * fold-const.c (fold_cond_expr_with_comparison):
1549         New function, extracted from fold.
1550         (fold): Extract code to fold A op B ? A : C, use
1551         it to fold A op B ? C : A.  Really optimize
1552         A & N ? N : 0 where N is a power of two.  Avoid
1553         relying on canonicalization and recursion for
1554         foldings of COND_EXPR to happen.
1555
1556 2004-06-20  David Ayers  <d.ayers@inode.at>
1557
1558         * objc/objc-act.h (get_object_reference): Rename to
1559         get_protocol_reference.
1560         (super_type): Rename to objc_super_type.
1561         (selector_type): Rename to objc_selector_type.
1562         (id_type): Rename to objc_id_type.
1563         (instance_type): Rename to objc_instance_type.
1564         (protocol_type): Rename to objc_protocol_type.
1565         (IS_ID): Update reference to id_type.
1566         * objc/objc-act.c (get_object_reference): Rename to
1567         get_protocol_reference; add documentation; update references to
1568         id_type.
1569         (lookup_method_in_protocol_list): Rename class_meth to
1570         is_class; add documentation.
1571         (finish_message_expr): Rename is_class to class_tree.
1572         (synth_module_prologue, objc_is_object_ptr, objc_build_exc_ptr,
1573         next_sjlj_build_try_catch_finally, objc_begin_catch_clause,
1574         build_next_objc_exception_stuff, get_arg_type_list,
1575         build_objc_method_call): Update references to id_type.
1576         (synth_module_prologue, build_objc_symtab_template,
1577         build_selector_reference_decl, build_selector,
1578         build_selector_translation_table, build_typed_selector_reference,
1579         get_arg_type_list, synth_self_and_ucmd_args, get_arg_type_list,
1580         synth_self_and_ucmd_args): Update references to selector_type.
1581         (build_private_template, build_ivar_reference): Update references
1582         to instance_type.
1583         (synth_module_prologue, build_protocol_reference,
1584         build_protocol_expr, start_protocol): Update references to
1585         protocol_type.
1586         (synth_module_prologue, get_arg_type_list, build_objc_method_call):
1587         Update references to super_type.
1588         * c-parse.in: (typespec_nonreserved_nonattr): Update
1589         references to get_object_reference.
1590         * objc/objc-tree.def: Add C mode identifier sequence.
1591
1592 2004-06-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1593
1594         * loop-invariant.c: New file.
1595         * Makefile.in (loop-invariant.o): New.
1596         * cfgloop.h (global_cost_for_size, init_set_costs,
1597         move_loop_invariants): Declare.
1598         * cfgloopanal.c (seq_cost, init_set_costs, global_cost_for_size): New
1599         functions.
1600         (avail_regs, res_regs, small_cost, pres_cost, spill_cost): New
1601         variables.
1602         * common.opt (floop-optimize2, fmove-loop-invariants): New options.
1603         * loop-init.c (loop_optimizer_init): Call init_set_costs.
1604         * passes.c (rest_of_handle_loop2): Call move_loop_invariants.
1605         (rest_of_compilation): Check flag_loop_optimize2.
1606         * toplev.c (process_options): Handle flag_loop_optimize2.
1607         * doc/invoke.texi (-floop-optimize2, -fmove-loop-invariants): Document.
1608         * doc/passes.texi (loop-invariant.c): Document.
1609
1610 2004-06-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1611
1612         * tree-ssa-pre.c (compute_antic): Keep BB_VISITED flag zeroed.
1613
1614 2004-06-20  Richard Henderson  <rth@redhat.com>
1615
1616         * stmt.c (warn_if_unused_value): Add locus argument.
1617         * tree.h (warn_if_unused_value): Update decl.
1618         * c-typeck.c (internal_build_compound_expr): Update call.
1619         * c-gimplify.c (gimplify_expr_stmt): Likewise.
1620
1621 2004-06-20  Andrew Pinski  <pinskia@physics.uc.edu>
1622
1623         PR middle-end/16089
1624         * builtins.c (entry_of_function): Move to ...
1625         * cfgrtl.c (entry_of_function): Here and make non-static.
1626         * integrate.c (emit_initial_value_sets): Use entry_of_function.
1627         * rtl.h (entry_of_function): Prototype.
1628
1629 2004-06-20  Roger Sayle  <roger@eyesopen.com>
1630
1631         * config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3.
1632         (ix86_rtx_costs) <ASHIFT, PLUS>: Consider ix86_cost->lea even when
1633         TARGET_DECOMPOSE_LEA.
1634
1635 2004-06-20  Richard Henderson  <rth@redhat.com>
1636
1637         * c-common.h (add_decl_stmt): Move to cp-tree.h.
1638         * c-decl.c (finish_decl): Don't use add_decl_stmt.
1639         * c-parse.in: Likewise.
1640         * c-gimplify.c (gimplify_expr_stmt): Don't build CLEANUP_POINT_EXPR.
1641         (gimplify_c_loop, gimplify_return_stmt, gimplify_decl_stmt): Likewise.
1642         * c-semantics.c (add_decl_stmt): Move to cp/semantics.c.
1643
1644 2004-06-20  Richard Henderson  <rth@redhat.com>
1645
1646         * c-common.def (IF_STMT, CLEANUP_STMT): Move to cp-tree.def.
1647         * c-common.h (IF_COND, THEN_CLAUSE, ELSE_CLAUSE, CLEANUP_BODY,
1648         CLEANUP_EXPR, CLEANUP_DECL): Move to cp-tree.h.
1649         (c_common_stmt_codes): Remove IF_STMT, CLEANUP_STMT.
1650         * c-dump.c (c_dump_tree): Move IF_STMT, CLEANUP_STMT to cp_dump_tree.
1651         * c-pretty-print.c (pp_c_statement): Similarly.
1652         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts,
1653         gimplify_if_stmt): Move to cp-gimplify.c.
1654         (c_genericize, c_gimplify_expr): Don't call them.
1655         * c-semantics.c (push_cleanup): Move to cp/semantics.c.
1656         * c-typeck.c (push_cleanup): New.
1657         (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_finish_else,
1658         c_finish_if_stmt): Use COND_EXPR.
1659         * tree.h (CLEANUP_EH_ONLY): Update documentation.
1660
1661 2004-06-20  Zack Weinberg  <zack@codesourcery.com>
1662
1663         * c-common.h (has_c_linkage): New interface.
1664         * c-cppbuiltin.c: Include target.h.
1665         (c_cpp_builtins): Define __PRAGMA_REDEFINE_EXTNAME and
1666         __PRAGMA_EXTERN_PREFIX when appropriate.
1667         * c-pragma.c: Include target.h.
1668         Document clarified semantics of symbol-renaming #pragmas.
1669         (handle_pragma_redefine_extname, handle_pragma_extern_prefix)
1670         (maybe_apply_renaming_pragma): Rewrite according to clarified
1671         semantics.  Always recognize, but do not necessarily execute.
1672         (init_pragma): Unconditionally register symbol-renaming pragmas.
1673         * system.h: Poison HANDLE_PRAGMA_REDEFINE_EXTNAME
1674         and HANDLE_PRAGMA_EXTERN_PREFIX.
1675         * target.h (struct gcc_target): Add handle_pragma_redefine_extname
1676         and handle_pragma_extern_prefix flags.
1677         * target-def.h: Add defaults for TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME
1678         and TARGET_HANDLE_PRAGMA_EXTERN_PREFIX.
1679         * Makefile.in (c-pragma.o, c-cppbuiltin.o): Update dependencies.
1680         * config/sol2.h: Define TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME,
1681         not HANDLE_PRAGMA_REDEFINE_EXTNAME.
1682         (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_REDEFINE_EXTNAME.
1683         (TRANSFER_FROM_TRAMPOLINE): Prototype mprotect.
1684         * config/alpha/osf.h: Define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX,
1685         not HANDLE_PRAGMA_EXTERN_PREFIX.
1686         (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_EXTERN_PREFIX.
1687         * doc/extend.texi (Solaris Pragmas, Tru64 Pragmas): Combine
1688         into one section "Symbol-Renaming Pragmas"; clarify; document
1689         adjusted semantics.
1690
1691         * builtins.c (expand_builtin): Do not issue error for a builtin
1692         with no special case code and no DECL_ASSEMBLER_NAME; just do the
1693         library call.
1694         * c-decl.c (builtin_function): Don't call make_decl_rtl.
1695         * c-objc-common.c (has_c_linkage): Stub implementation.
1696         * cgraphunit.c (cgraph_expand_function)
1697         (cgraph_remove_unreachable_nodes): Don't clear DECL_ARGUMENTS.
1698
1699 2004-06-19  Roger Sayle  <roger@eyesopen.com>
1700
1701         * builtins.c (fold_builtin_unordered_cmp): Take an EXP argument
1702         instead of both an ARGLIST and a result TYPE.  Handle these C99
1703         comparison functions as "polymorphic" builtins.  Also handle
1704         lowering of BUILT_IN_ISUNORDERED to an UNORDERED_EXPR tree node.
1705         (fold_builtin_1): Update calls to fold_builtin_unordered_cmp.
1706         Move handling of BUILT_IN_ISUNORDERED from here to there.
1707
1708 2004-06-19  Richard Henderson  <rth@redhat.com>
1709
1710         * c-common.c, c-common.h (lang_gimplify_stmt): Remove.
1711         * c-gimplify.c: Remove unnecessary prototypes.
1712         (c_gimplify_stmt): Merge into ...
1713         (c_gimplify_expr): ... here.  Don't play with prep_stmt.
1714         * c-semantics.c (prep_stmt): Remove.
1715         * gimplify.c (annotate_one_with_locus): Break out from ...
1716         (annotate_all_with_locus): ... here.
1717         (gimplify_expr): Add locus to expressions even if pre/post queues
1718         are not present.
1719
1720 2004-06-19  Richard Henderson  <rth@redhat.com>
1721
1722         PR target/15941
1723         * function.c (assign_parms): If not padding upward or intentionally
1724         forcing upward padding, take offset_rtx into account when determining
1725         the alignment for stack_parm.
1726
1727 2004-06-19  Richard Henderson  <rth@redhat.com>
1728
1729         PR target/15550
1730         * ifcvt.c (noce_try_move): Recognize all generated instructions.
1731
1732 2004-06-19  Jan Hubicka  <jh@suse.cz>
1733
1734         * function.c (free_after_compilation): Do not free computed_goto_common*.
1735         * function.h (struct function): Kill computed_goto_common*.
1736         * stmt.c (expand_computed_goto): Do not commonize the computed gotos.
1737         * tree-cfg.c (disband_implicit_edges): Do not forward across the
1738         commonized computed goto.
1739
1740 2004-06-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1741
1742         * doc/invoke.texi: Remove obsolete comment regarding PA 2.0 support
1743         in binutils.
1744
1745 2004-06-19  Andrew Pinski  <apinski@apple.com>
1746
1747         PR c++/15721
1748         * toplev.c (wrapup_global_declarations): Do not check
1749         TREE_SYMBOL_REFERENCED of the DECL_ASSEMBLER_NAME but check
1750         cgraph_varpool_node's needed field.
1751
1752 2004-06-19  Jan Hubicka  <jh@suse.cz>
1753             Steven Bosscher  <stevenb@suse.de>
1754
1755         CFG transparent RTL expansion:
1756         * Makefile.in (cfgexpand.o): New object file.
1757         (builtins.o): Add dependency on basic-block.h
1758         * builtins.c: Include basic-block.h
1759         (entry_of_function): New function.
1760         (expand_builtin_apply_args, expand_builtin_saveargs): Use it.
1761         * cfgexpand.c: New file.
1762         * expr.c (execute_expand, pass_expand): Kill.
1763         * pass.c (rest_of_compilation): Do not build CFG unless called from
1764         coverage code.
1765         * tree-cfg.c (delete_tree_cfg): Rename to..
1766         (delete_tree_cfg_annotations): ... this one; Do not remove the CFG itself.
1767         * tree-flow.h (delete_tree_cfg_annotations): Declare.
1768         (dleete_tree_cfg): Kill.
1769         * tree-optimize.c (execute_rebuild_bind, pass_rebuild_bind): Kill.
1770         (execute_del_cfg): Rename to...
1771         (execute_free_datastructures): This one...
1772         (pass_del_cfg): Rename to...
1773         (pass_free_datastructures): ... this one; Do not kill PROP_cfg.
1774         (init_tree_optimization_passes): Make cfg build and profiling to happen
1775         unconditionally.
1776
1777 2004-06-19  Steven Bosscher  <stevenb@suse.de>
1778
1779         * tree-mudflap.c (mf_decl_cache_locals): Skip labels before
1780         inserting the cache variables.
1781
1782         * tree-mudflap.c: Include headers to make basic_block available.
1783         Move functions around such that related functions are near each
1784         other.  Add prototypes for all static functions.  Add comments
1785         briefly explaining what IR the mudflap1 and mudflap2 work on and
1786         what they do.
1787         (mudflap_function_decls): Rename to execute_mudflap_function_decls.
1788         (mudflap_function_ops): Rename to execute_mudflap_function_ops.
1789         (pass_mudflap_1, pass_mudflap_2): Update.
1790         (mf_decl_cache_locals): Make it work on the CFG instead of the saved
1791         function tree.
1792         (mf_build_check_statement_for): Make it work on the CFG.
1793         (mf_xform_derefs_1): Likewise.  Cleanup code style.
1794         (mf_xform_derefs): Likewise.
1795
1796 2004-06-19  Jan Hubicka  <jh@suse.cz>
1797
1798         * tree-cfg.c (label_to_block): Invent the label destination for
1799         undefined labels.
1800         (cleanup_dead_labels): Update table in the case label_to_block added
1801         new label.
1802
1803 2004-06-18  Richard Henderson  <rth@redhat.com>
1804
1805         PR c++/16036
1806         * gimple-low.c (lower_function_body): Generate return statement for
1807         fall off the end of the function here ...
1808         * tree-cfg.c (make_edges): ... instead of here.
1809         * gimplify.c (gimplify_return_expr): Mark return temp TREE_NO_WARNING.
1810
1811 2004-06-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1812
1813         * tree-ssa.c (raise_value): Removed.
1814         (get_eq_name, check_phi_redundancy): New functions.
1815         (kill_redundant_phi_nodes): Use standard ssa minimalization algorithm.
1816
1817 2004-06-18  Roger Sayle  <roger@eyesopen.com>
1818
1819         * fold-const.c (fold) <UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR,
1820         UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR>: Add
1821         constant folding for unordered comparison tree nodes.  If both
1822         operands are real constants, call fold_relational_const.  If either
1823         operand is a NaN, evaluate the other for side-effects and return a
1824         constant.  Optimize (double)float1 CMP (double)float2 into the
1825         equivalent float1 CMP float2.
1826         (nondestructive_fold_binary_to_constant) <UNORDERED_EXPR,
1827         ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
1828         LTGT_EXPR>: Call fold_relational_const for constant operands.
1829         (fold_relational_const): Add support for unordered comparison tree
1830         nodes.  Don't constant fold "ordered" floating point comparisons
1831         against NaN if when flag_trapping_math is set.
1832
1833 2004-06-19  Jakub Jelinek  <jakub@redhat.com>
1834
1835         * fold-const.c (build_range_check): If !in_p and recursive call
1836         fails, exit immediately.  If high - low overflows and etype is
1837         a signed type, retry with unsigned etype.
1838         (merge_ranges): If !in0_p and !in1_p, handle even range2 adjacent
1839         to range1 at TYPE_MAX_VALUE and TYPE_MIN_VALUE.
1840
1841 2004-06-18  Richard Henderson  <rth@redhat.com>
1842
1843         * c-gimplify.c (gimplify_condition): Remove.
1844         (gimplify_c_loop, gimplify_if_stmt, gimplify_switch_stmt): Don't
1845         call it.
1846
1847 2004-06-18  Richard Henderson  <rth@redhat.com>
1848
1849         * tree-eh.c (decide_copy_try_finally): Fix scaling of copy and
1850         switch estimates.
1851
1852 2004-06-18  Andrew Pinski  <pinskia@physics.uc.edu>
1853
1854         * config/i386/darwin.h (HOT_TEXT_SECTION_NAME): Define.
1855         (NORMAL_TEXT_SECTION_NAME): Define.
1856         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
1857         (SECTION_FORMAT_STRING): Define.
1858
1859 2004-06-18  Steven Bosscher  <stevenb@suse.de>
1860
1861         * config/xtensa/xtensa.c
1862         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
1863         * xtensa.md: Replace the old pipeline description with a DFA model.
1864
1865 2004-06-18  Steven Bosscher  <stevenb@suse.de>
1866             Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1867
1868         * config/s390/s390.md: Remove the generic pipeline description.
1869         * config/s390/2064.md: Make all insn reservations apply to
1870         the z900, g5 and g6.
1871         * config/s390/s390.c (s390_use_dfa_pipeline_interface): Remove.
1872         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
1873         Define to hook_int_void_1.
1874         (s390_adjust_cost): Cleanup.  Don't check address dependency here.
1875         (s390_first_cycle_multipass_dfa_lookahead): Always return 4.
1876
1877 2004-06-18  Daniel Berlin  <dberlin@dberlin.org>
1878                         Diego Novillo  <dnovillo@redhat.com>
1879
1880         * tree-dfa.c (create_var_ann): tree_ann -> tree_ann_t.
1881         (create_stmt_ann): Ditto.
1882         (create_tree_ann): New function.
1883         (create_cst_ann): Remove.
1884         (create_expr_ann): Ditto.
1885
1886         * tree-flow-inline.h (cst_ann): Remove.
1887         (get_cst_ann): Ditto.
1888         (get_expr_ann): Ditto.
1889         (expr_ann): Ditto.
1890         (get_tree_ann): New function.
1891         (tree_ann): Ditto.
1892         (ann_type): tree_ann -> tree_ann_t.
1893         * tree-flow.h (tree_ann_type): CST_ANN, EXPR_ANN removed.
1894         (struct cst_ann_d): Removed.
1895         (struct expr_ann_d): Ditto.
1896         (union tree_ann_d): Removed cst and expr.
1897         (tree_ann): Renamed to tree_ann_t.
1898         * tree-ssa-ccp.c (set_rhs): tree_ann -> tree_ann_t.
1899         * tree-ssa-pre.c (get_value_handle): Rewrite for single common
1900         annotation.
1901         (set_value_handle): Ditto.
1902         (phi_translate): Ditto.
1903         * tree-tailcall.c (adjust_return_value): tree_ann -> tree_ann_t.
1904
1905 2004-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
1906
1907         * config/sh/t-linux64: New file.
1908         * config.gcc: Add it to tmake_file for sh64*-*-linux*.
1909
1910 2004-06-18  Paolo Bonzini  <bonzini@gnu.org>
1911
1912         * emit-rtl.c (unshare_all_rtl_1): New name of unshare_all_rtl.
1913         (unshare_all_rtl_again): Call unshare_all_rtl_1.
1914         (unshare_all_rtl): New.
1915         * function.c (instantiate_virtual_regs): Remove parameters.
1916         * function.h (instantiate_virtual_regs): Add prototype.
1917         * rtl.h (unshare_all_rtl): Add prototype.
1918         * tree.h (instantiate_virtual_regs, unshare_all_rtl): Remove
1919         prototype.
1920         * passes.c: Remove assertions on the parameters to
1921         rest_of_handle_* functions.  Remove the parameters to
1922         the functions, replacing decl with current_function_decl
1923         and insns with get_insns ().
1924
1925 2004-06-17  Roger Sayle  <roger@eyesopen.com>
1926
1927         * fold-const.c (constant_boolean_node): Handle boolean_type_node
1928         directly, return either boolean_true_node or boolean_false_node.
1929
1930 2004-06-18  Kelley Cook  <kcook@gcc.gnu.org>
1931
1932         * opts.sh: Delete.  Break out generated code to next four files.
1933         * opt-gather.awk: New file.
1934         * optc-gen.awk: New file.
1935         * opth-gen.awk: New file.
1936         * opt-functions.awk: New common file.
1937         * Makefile.in: Update for above.
1938         * configure.ac: Update comment.
1939         * configure: Regenerate.
1940
1941 2004-06-17  Richard Henderson  <rth@redhat.com>
1942
1943         * c-common.c (flag_objc_sjlj_exceptions): New.
1944         * c-common.h (flag_objc_sjlj_exceptions): Declare.
1945         * c-opts.c (c_common_handle_option): Set it.
1946         (c_common_post_options): Handle interation of different
1947         objective-c exception and runtime switches.
1948         * c-decl.c (c_eh_initialized_p): New.
1949         (finish_decl): Use it instead of local eh_initialized_p.
1950         * c-parse.in (nested_function, notype_nested_function): Record
1951         the result of compstmt.
1952         (compstmt_or_error): Likewise.
1953         (compstmt): Don't add_stmt the result.
1954         (stmt): Don't return anything.  Rewrite objc try and sync rules.
1955         (objc_try_stmt, objc_catch_list): Remove.
1956         (objc_catch_block, objc_finally_block): Remove.
1957         (objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New.
1958         (objc_try_catch_clause, objc_finally_clause): New.
1959         (objc_try_catch_stmt): Rewrite.
1960         * c-tree.h (c_eh_initialized_p): Declare.
1961         * c-opt (fobjc-sjlj-exceptions): New.
1962         * except.c (output_function_exception_table): Don't call cgraph
1963         on non-decls.
1964         * objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR,
1965         UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack,
1966         catch_count_stack, exc_binding_stack, if_nesting_count,
1967         blk_nesting_count, objc_enter_block, objc_exit_block,
1968         objc_declare_variable, val_stack_push, val_stack_pop,
1969         objc_build_try_enter_fragment, objc_build_extract_expr,
1970         objc_build_try_exit_fragment, objc_build_extract_fragment,
1971         objc_build_try_prologue, objc_build_try_epilogue,
1972         objc_build_catch_stmt, objc_build_catch_epilogue,
1973         objc_build_finally_prologue, objc_build_finally_epilogue,
1974         objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
1975         objc_build_synchronized_epilogue): Remove.
1976         (objc_create_temporary_var, struct objc_try_context, cur_try_context,
1977         objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr,
1978         next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp,
1979         next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
1980         next_sjlj_build_try_catch_finally, objc_begin_try_stmt,
1981         objc_begin_catch_clause, objc_finish_catch_clause,
1982         objc_build_finally_clause, objc_finish_try_stmt,
1983         objc_build_synchronized): New.
1984         (objc_is_object_id, objc_is_class_id): New.
1985         (objc_comptypes): Use them.
1986         (build_next_objc_exception_stuff): Break NeXT sjlj out from
1987         build_objc_exception_stuff.
1988         (synth_module_prologue): Update to match.
1989         (objc_build_throw_stmt): Use cur_try_context to decide if
1990         we're in a @catch.
1991         * objc/objc-act.h: Update prototypes.
1992         (OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove.
1993
1994 2004-06-17  Andrew Pinski <apinski@apple.com>
1995
1996         * c-typeck.c (tagged_types_tu_compatible_p <case UNION_TYPE>):
1997         Use TYPE_FIELDS instead of TYPE_VALUES.
1998
1999 2004-06-17  Jason Merrill  <jason@redhat.com>
2000
2001         PR c++/16015
2002         * gimplify.c (gimplify_target_expr): Handle void initializer.
2003         * expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise.
2004         * doc/c-tree.texi (Expression trees): Update TARGET_EXPR
2005         and AGGR_INIT_EXPR.
2006
2007 2004-06-17  Roger Sayle  <roger@eyesopen.com>
2008
2009         * fold-const.c (fold_relational_const): Use constant_boolean_node.
2010
2011 2004-06-17  Jan Hubicka  <jh@suse.cz>
2012
2013         PR target/15433
2014         * i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix
2015         operand numbering in the output template.
2016         (SSE DF cmov 0 splitter): The conditional is VOIDmode.
2017
2018 2004-06-17  Jan Hubicka  <jh@suse.cz>
2019
2020         * except.c (can_throw_internal): Recognize RESX expresisons.
2021
2022 2004-06-17  Jan Hubicka  <jh@suse.cz>
2023
2024         * cfgbuild.c (make_edges): Do not use label_value_list.
2025         (find_basic_blocks_1): Do not collect label_value_list.
2026         (find_sub_basic_blocks): Update call of make_edges.
2027
2028 2004-06-17  Andrew MacLeod  <amacleod@redhat.com>
2029
2030         * tree-cfg.c (tree_make_forwarder_block):  Use SET_PHI_RESULT.
2031         * tree-flow-inline.h (get_use_op_ptr):  Return a use_operand_p.
2032         (get_use_from_ptr, get_def_from_ptr):  New.  Return operand pointers.
2033         (get_def_op_ptr):  Return a def_operand_p instead of a 'tree *'.
2034         (get_v_may_def_result_ptr):  Return a def_operand_p.
2035         (get_v_may_def_op_ptr, get_vuse_op_ptr):   Return a use_operand_p.
2036         (get_v_must_def_op_ptr):  Return a def_operand_p.
2037         (get_phi_result_ptr):  New.  Return a pointer to the result of a PHI.
2038         (get_phi_arg_def_ptr):  New.  Return a pointer to an argument of a PHI.
2039         (phi_element_for_edge):  Remove.
2040         * tree-flow.h (propagate_value, replace_exp):  Change prototype.
2041         (propagate_tree_value):  Add new prototype.
2042         (phi_element_for_edge):  Remove prototype.
2043         * tree-into-ssa.c (mark_def_sites):  Use new operand types.
2044         (prepare_operand_for_rename):  Split into two functions.
2045         (prepare_use_operand_for_rename):  Prepare use operands.
2046         (prepare_def_operand_for_rename):  Prepare def operands.
2047         (rewrite_stmt):  Use new operand types.
2048         (rewrite_operand):  Use new operand types, change parameter type.
2049         * tree-outof-ssa.c (replace_variable):  Split into two functions.
2050         (replace_use_variable):  Rewrite uses.
2051         (replace_def_variable):  Rewrite defs.
2052         (rewrite_trees, rewrite_vars_out_of_ssa):  Use new operand types.
2053         * tree-phinodes.c (make_phi_node, resize_phi_node):  Use new types.
2054         (add_phi_arg, remove_phi_arg_num):  Use new operand types.
2055         * tree-ssa-ccp.c (substitute_and_fold):  Use new operand types.
2056         (ccp_fold, replace_uses_in):  Use new operand types.
2057         * tree-ssa-copy.c (replace_ssa_names):  Rename to replace_ssa_names_ann
2058         and no longer set the value, change parameter type.
2059         (replace_exp_1):  Use new operand types.
2060         (propagate_value):  Change parameter type, use new operand types.
2061         (propagate_tree_value):  Propagate_value without SSA operands.
2062         (replace_exp, cprop_operand, cprop_into_stmt):  Use new operand types.
2063         (cprop_into_successor_phis):  Use new operand types.
2064         * tree-ssa-dom.c (thread_across_edge):  Use new operand types.
2065         (eliminate_redundant_computations):  Use new operand types.
2066         * tree-ssa-dse.c (fix_phi_uses):  Use new operand_types.
2067         (fix_stmt_v_may_defs):  Use new operand_types.
2068         * tree-ssa-live.c (create_ssa_var_map):  Use new operand_types.
2069         (build_tree_conflict_graph):  Use new operand_types.
2070         * tree-ssa-loop.c (duplicate_blocks):  Use PHI_ARG_DEF_FROM_EDGE.
2071         * tree-ssa-operands.c (struct freelist_d):  Remove.
2072         (check_optype_freelist, add_optype_freelist):  Remove.
2073         (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
2074         allocate_vuse_optype, allocate_v_must_def_optype):  Call ggc_alloc.
2075         (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
2076         Call ggc_free instead of add_optype_freelist.
2077         (init_ssa_operands, fini_ssa_operands):  Remove free list code.
2078         (finalize_ssa_defs, finalize_ssa_uses):  Set new use/def operands.
2079         * tree-ssa-operands.h (struct def_optype_d):  Change underlying type.
2080         (struct use_optype_d):  Change underlying type.
2081         (def_operand_p, use_operand_p):  New types for pointers to operands.
2082         (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP,
2083         V_MUST_DEF_OP):  Use new pointer type instead of dereferencing directly.
2084         (USE_FROM_PTR, DEF_FROM_PTR):  New macros to "dereference" operand
2085         pointer types.
2086         (SET_USE, SET_DEF):  New macros to set operands from their pointer.
2087         (SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP,
2088         SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands.
2089         (PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT):  Macros to manage the
2090         PHI result as an operand.
2091         (PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE,
2092         PHI_ARG_DEF_PTR_FROM_EDGE):  Macros to manage the PHI arguments.
2093         * tree-ssa-pre.c (eliminate):  Call propagate_tree_value.
2094         * tree-tailcall.c (independent_of_stmt_p, propagate_through_phis):  Use
2095         PHI_ARG_DEF_FROM_EDGE.
2096         * tree.h (PHI_RESULT):  Renamed to PHI_RESULT_TREE.
2097         (PHI_ARG_DEF):  Renamed to PHI_ARG_DEF_TREE.
2098
2099 2004-06-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2100
2101         PR tree-optimization/15991
2102         * tree-cfg.c (tree_block_label): Export.
2103         * tree-flow-inline.h (bsi_after_labels): New function.
2104         * tree-flow.h (bsi_after_labels, tree_block_label): Declare.
2105         * tree-ssa.c (propagate_into_addr): New function.
2106         (replace_immediate_uses): Handle propagation of pointer constants.
2107         (raise_value): Do not restrict propagation of pointer constants.
2108         * tree-ssanames.c (duplicate_ssa_name): New function.
2109         * tree.h (duplicate_ssa_name): Declare.
2110
2111 2004-06-17  David Ayers  <d.ayers@inode.at>
2112
2113         * c-parse.in: Unify Objective-C token names.
2114
2115 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
2116
2117         Bug 14610
2118         * Makefile.in (min-insn-modes.o): Correct dependencies.
2119         * real.c (encode_ieee_extended, decode_ieee_extended): Always
2120         produce/consume 12-byte little-endian Intel format.
2121         (encode_ieee_extended_128, decode_ieee_extended_128): Delete.
2122         (encode_ieee_extended_motorola, decode_ieee_extended_motorola)
2123         (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96)
2124         (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128):
2125         New functions which convert between 12-byte little-endian Intel
2126         format and the desired format.
2127         (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format)
2128         (ieee_extended_intel_96_format, ieee_extended_intel_128_format):
2129         Update.
2130
2131 2004-06-17  Zack Weinberg  <zack@codesourcery.com>
2132
2133         * expmed.c (expand_mult_const): In sanity check, compare only
2134         the bits of val and val_so_far that are significant in the
2135         result mode.
2136
2137 2004-06-17  Daniel Berlin  <dberlin@dberlin.org>
2138
2139         * tree-ssa-pre.c:  Update comments.
2140         (val_expr_pair_eq): Factor code from here.
2141         (expr_pred_trans_eq): and here.
2142         (expressions_equal_p): To here.
2143         (print_value_set): Print value for expression.
2144         (phi_trans_lookup): Rename some variables.
2145         (lookup): Ditto.
2146         (value_exists_in_set_bitmap): Ditto.
2147         (value_remove_from_set_bitmap): Ditto.
2148         (value_insert_into_set_bitmap): Ditto.
2149
2150 2004-06-17  Ulrich Weigand  <uweigand@de.ibm.com>
2151
2152         * config/s390/s390-modes.def (CCL3mode): New machine mode.
2153         * config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode.
2154         (s390_alc_comparison, s390_slb_comparison): Likewise.
2155         (s390_branch_condition_mask): Likewise.
2156         * config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New.
2157         ("*subsi3_cc2", "*subsi3_cconly2"): New.
2158
2159         * config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and
2160         ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison.
2161         * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
2162         Handle SIGN_EXTEND and ZERO_EXTEND.
2163
2164         * config/s390/s390-protos.h (s390_expand_addcc): New prototype.
2165         * config/s390/s390.c (s390_expand_addcc): New function.
2166         * config/s390/s390.md ("adddicc", "addsicc"): New expanders.
2167         ("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns.
2168         ("sltu", "sgtu", "sleu", "sgeu"): New expanders.
2169
2170 2004-06-17  Ben Elliston  <bje@au.ibm.com>
2171
2172         * tree-alias-common.c: Add whitespace.
2173         * tree-inline.c: Correct comment about this file's purpose.
2174         * tree-optimize.c: Likewise.
2175         * tree-tailcall.c: Likewise.
2176
2177         * tree-alias-ander.h: Add standard top-of-file comment.
2178         * tree-alias-common.h: Likewise.
2179         * tree-alias-type.h: Likewise.
2180
2181 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
2182
2183         * tree-ssa-pre.c (compute_avail): Value number uses as well.
2184         Strip useless type conversions.
2185         Casts have to be treated slightly different than normal unaries.
2186
2187 2004-06-16  Richard Henderson  <rth@redhat.com>
2188
2189         * c-common.def (COMPOUND_STMT): Remove.
2190         * c-common.c (finish_fname_decls): Don't look through it.
2191         * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
2192         * c-common.h (COMPOUND_BODY): Remove.
2193         (c_common_stmt_codes): Remove COMPOUND_STMT.
2194         * c-dump.c (c_dump_tree): Likewise.
2195         * c-gimplify.c (c_gimplify_stmt): Likewise.
2196         * c-pretty-print.c (pp_c_statement): Likewise.
2197         * tree.h (DECL_SAVED_TREE): Update commentary.
2198         * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT.
2199         (CASE_LABEL_EXPR): Rename from CASE_LABEL.
2200         (GOTO_EXPR): Rename from GOTO_STMT.
2201         (GOTO_FAKE_P): Remove.
2202         (COMPOUND_STMT): Remove.
2203         (HANDLER): Update wrt COMPOUND_STMT.
2204         (STMT_EXPR): Likewise.
2205         (LABEL_EXPR): Rename from LABEL_STMT.
2206         (SCOPE_STMT): Remove.
2207         * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look
2208         through COMPOUND_STMT.
2209
2210 2004-06-16  Richard Henderson  <rth@redhat.com>
2211
2212         * c-common.h (c_begin_if_stmt, c_begin_while_stmt,
2213         c_finish_while_stmt_cond): Remove decls.
2214         * c-parse.in (if_prefix): Don't save c_begin_if_stmt result.
2215         * c-typeck.c (c_begin_if_stmt): Return void.
2216         (c_begin_else): Tidy.  Save stmt_count.
2217         * c-tree.h (c_begin_if_stmt): Update decl.
2218
2219         * objc/objc-act.c (objc_build_try_enter_fragment,
2220         objc_build_extract_fragment, objc_build_try_epilogue,
2221         objc_build_catch_stmt, objc_build_catch_epilogue,
2222         objc_build_finally_prologue, objc_build_finally_epilogue): Update
2223         for if builder function changes.
2224
2225 2004-06-16  Ulrich Weigand  <uweigand@de.ibm.com>
2226
2227         * config/s390/s390.c (struct machine_function):  New member
2228         last_restore_gpr.
2229         (s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters.
2230         Do not modify machine->save_return_addr_p or regs_ever_live.
2231         Fill in machine->last_restore_gpr.
2232         (s390_optimize_prolog): Use s390_frame_info to compute registers
2233         to save/restore, remove duplicated code.
2234         (s390_arg_frame_offset): Use s390_frame_info to compute frame
2235         size, remove duplicated code.
2236         (s390_emit_prologue): Adapt s390_frame_info call.  Update
2237         machine->save_return_addr_p and regs_ever_live.
2238         (s390_emit_epilogue): Use machine->last_restore_gpr instead of
2239         machine->last_save_gpr.
2240
2241 2004-06-16  Richard Henderson  <rth@redhat.com>
2242
2243         * c-parse.in (if_stmt_locus): Remove.
2244         (if_prefix): Increment stmt_count; pass it to c_finish_if_cond.
2245         (select_or_iter_stmt): Move empty if warnings to c-typeck.c.
2246         * c-typeck.c (if_elt): Sort by expected size.  Rename locus to
2247         empty_locus.  Add stmt_count, saw_else.
2248         (c_begin_if_stmt): Push if_stack here.
2249         (c_finish_if_cond): Rename from c_expand_end_cond.  Record stmt_count.
2250         (c_finish_then, c_finish_else): Record empty_locus.
2251         (c_begin_else): Rename from c_expand_start_else.  Record stmt_count.
2252         (c_finish_if_stmt): Rename from c_expand_end_cond.  Warn for empty
2253         if or else body.
2254         * c-tree.h: Update prototypes.
2255
2256 2004-06-16  Steven Bosscher  <stevenb@suse.de>
2257
2258         * tree.h (PHI_CHAIN): New.
2259         * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c,
2260         tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c,
2261         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c,
2262         tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
2263         tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN
2264         when traversing a list of PHI_NODEs.
2265
2266 2004-06-16  Bernardo Innocenti  <bernie@develer.com>
2267
2268         PR target/13292
2269         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
2270         on -msoft-float.
2271         (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
2272         68040 and soft-float.
2273         * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
2274         in the TARGET_68040_ONLY case.
2275
2276 2004-06-16 Peter Barada  <peter@the-baradas.com>
2277
2278         * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
2279         (movsi_cf): Make named, don't match TARGET_CFV4.
2280         (pushexthisi_const): Use mov3q if possible.
2281         (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
2282         to special case mvz.w for ColdFire V4.
2283         (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
2284         to special case mvz.b for ColdFire V4.
2285         (udivmodhi4, divmodhi4): Use mvz to zero extend arg for
2286         divide.
2287         (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
2288         * config/m68k/m68k.c(valid_mov3q_const):  New function.
2289         (const_method): SWAP is valid for ColdFire.
2290         (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
2291         * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.
2292
2293 2004-06-16  Richard Henderson  <rth@redhat.com>
2294
2295         * c-common.def (CASE_LABEL): Remove.
2296         * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL.
2297         (match_case_to_enum_1): Likewise.
2298         * c-common.h (c_common_stmt_codes): Remove CASE_LABEL.
2299         * c-dump.c (c_dump_tree): Likewise.
2300         * c-gimplify.c (c_gimplify_stmt): Likewise.
2301         * c-pretty-print.c (pp_c_statement): Likewise.
2302         * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR.
2303         * tree.h (CASE_LOW): Update commentary.
2304
2305 2004-06-16  Richard Henderson  <rth@redhat.com>
2306
2307         * c-common.def (ASM_STMT): Remove.
2308         * c-common.h (c_common_stmt_codes): Remove ASM_STMT.
2309         * c-dump.c (c_dump_tree): Likewise.
2310         * c-gimplify.c (c_gimplify_stmt): Likewise.
2311         * c-pretty-print.c (pp_c_statement): Likewise.
2312         * c-typeck.c (build_asm_expr): Use ASM_EXPR.
2313         * tree.h: Fix commentary.
2314
2315 2004-06-16  Richard Henderson  <rth@redhat.com>
2316
2317         * c-common.def (GOTO_STMT, LABEL_STMT): Remove.
2318         * c-common.c (c_add_case_label): Use LABEL_EXPR.
2319         * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove.
2320         (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT.
2321         * c-dump.c (c_dump_tree): Likewise.
2322         * c-gimplify.c (c_gimplify_stmt): Likewise.
2323         * c-pretty-print.c (pp_c_statement): Likewise.
2324         * c-parse.in (stmt): Use GOTO_EXPR.
2325         (label): Use LABEL_EXPR.
2326         * c-semantics.c (build_stmt): Set TREE_TYPE to void.
2327         * tree-inline.c (copy_body_r): Don't build empty BLOCKs.
2328
2329 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
2330
2331         * cfgcleanup.c (try_simplify_condjump): Update test to make
2332         sure we have a conditional branch around am unconditional branch.
2333
2334 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
2335
2336         * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.
2337
2338 2004-06-16  Dale Johannesen  <dalej@apple.com>
2339
2340         * loop.c (loop_givs_reduce): Avoid miscompilation of
2341         loops entered at bottom.
2342
2343 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
2344
2345         * cfglayout.c (fixup_reorder_chain): Handle case where the
2346         destination of E_FALL is EXIT_BLOCK_PTR.
2347
2348 2004-06-16  Vladimir Makarov  <vmakarov@redhat.com>
2349
2350         PR target/15653
2351         * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
2352         after shifts before asm.
2353
2354 2004-06-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2355
2356         PR tree-optimization/15993
2357         * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
2358         destination is unchanged.
2359
2360 2004-06-16  Andreas Jaeger  <aj@suse.de>
2361
2362         * doc/install.texi (Configuration): Update description for
2363         --enable-version-specific-runtime-libs.
2364
2365 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
2366
2367         * doc/install.texi: boehm-gc now uses automake 1.8.5.
2368
2369 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
2370
2371         * toplev.h (rest_of_compilation): Adjust prototype.
2372
2373 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
2374
2375         * coverage.c: Remove argument to rest_of_compilation.
2376         * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
2377         * passes.c (rest_of_compilation): Remove argument.
2378         (pass_rest_of_compilation): New.
2379         (rest_of_handle_final, rest_of_handle_delay_slots,
2380         rest_of_handle_stack_regs, rest_of_handle_variable_tracking
2381         rest_of_handle_machine_reorg, rest_of_handle_regrename
2382         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
2383         rest_of_handle_regmove, rest_of_handle_tracer
2384         rest_of_handle_if_conversion, rest_of_handle_if_after_combine
2385         rest_of_handle_web, rest_of_handle_branch_prob
2386         rest_of_handle_value_profile_transformations, rest_of_handle_cfg
2387         rest_of_handle_addressof, rest_of_handle_jump_bypass
2388         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
2389         Check that the two arguments are actually superfluous.
2390         * tree-optimize.c (register_dump_files): Add properties argument.
2391         Track validity of passes.  Only initialize dump files for
2392         tree-based passes.  Store the full set of provided passes in
2393         the pass.
2394         (init_tree_optimization_passes): Register pass_expand and
2395         pass_rest_of_compilation.
2396         (execute_one_pass): Do not track the presence of required properties
2397         here.  Set in_gimple_form.  Do not update current_properties.
2398         (current_properties): Remove.
2399         (set_save_expr_context): Remove.
2400         (tree_rest_of_compilation): Do not set in_gimple_form.  Do not
2401         expand to RTL here, and do not call rest_of_compilation.  Push
2402         GGC context even before gimplification.
2403         * tree-pass.h (PROP_rtl, PROP_trees): New flags.
2404         (pass_expand, pass_rest_of_compilation): Declare.
2405
2406 2004-06-15  Jeff Law  <law@redhat.com>
2407
2408         * fold-const.c (swap_tree_comparison): No longer static.
2409         (tree_swap_operands_p): Similarly.  Return true if both operands
2410         are SSA_NAMEs and the first operand has a higher version number than
2411         the second operand.
2412         * tree.h (swap_tree_comparison): Prototype.
2413         (tree_swap_operands_p): Prototype.
2414         * tree-ssa-operands.c (get_expr_operands): For commutative
2415         operators and relational comparisons, canonicalize the
2416         order of the operands.
2417
2418 2004-06-15  Richard Henderson  <rth@redhat.com>
2419
2420         * c-common.c (lang_gimplify_stmt): Remove next_p argument.
2421         (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
2422         c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
2423         c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
2424         (finish_fname_decls, fname_decl): Use statement_lists.
2425         (c_expand_expr_stmt): Don't set last_expr_type.
2426         (c_type_hash): Fix indentation.
2427         (c_safe_from_p): Don't follow TREE_CHAIN.
2428         (c_tree_chain_matters_p): Remove.
2429         * c-common.def (SCOPE_STMT): Remove.
2430         (CLEANUP_STMT): Redefine to contain its own body.
2431         * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
2432         x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
2433         Add x_cur_stmt_list.
2434         (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
2435         (cur_stmt_list): New.
2436         (STATEMENT_LIST_STMT_EXPR): New.
2437         (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
2438         SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
2439         (CLEANUP_BODY): New.
2440         (CLEANUP_DECL): Move to operand 2.
2441         (c_common_stmt_codes): Remove SCOPE_STMT.
2442         (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
2443         * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
2444         (c_push_function_context, c_pop_function_context): Don't save it.
2445         (finish_decl): Set TREE_USED on the decl for a cleanup.
2446         Use push_cleanup.
2447         (store_parm_decls): Use statement lists.
2448         (finish_function): Remove compstmt rule workaround.  Use statement
2449         lists.  Call finish_fname_decls after finalizing the body.
2450         (c_begin_compound_stmt): Move to c-typeck.c.
2451         * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
2452         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
2453         (c_genericize): Invoke them.
2454         (c_gimplify_stmt): Don't look through TREE_CHAIN.  Kill SCOPE_STMT.
2455         (c_build_bind_expr): Export.
2456         (gimplify_block, gimplify_cleanup): Remove.
2457         (gimplify_condition): Use gimplify_stmt.
2458         (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
2459         (gimplify_if_stmt): Remove recursion hack.
2460         (c_gimplify_expr): Remove STMT_EXPR handling.
2461         (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
2462         (is_last_stmt_of_scope): Remove.
2463         * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
2464         * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
2465         c_end_compound_stmt.
2466         * c-objc-common.c (build_cdtor): Likewise.
2467         * c-parse.in (primary): Use c_finish_stmt_expr.
2468         (push_scope, pop_scope): Remove.
2469         (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
2470         (c99_block_end, compstmt): Use c_end_compound_stmt.
2471         (c99_block_lineno_labeled_stmt): Likewise.
2472         (compstmt_primary_start): Use c_begin_stmt_expr.
2473         (simple_if, select_or_iter_stmt): Update calls to stmt builders.
2474         (do_stmt_start): Fill in body directly.
2475         (lineno_stmt): Avoid setting lineno on constants.
2476         * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
2477         Remove SCOPE_STMT.
2478         * c-semantics.c (begin_stmt_tree): Remove.
2479         (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
2480         (add_stmt): Use statement lists.
2481         (add_scope_stmt, finish_stmt_tree): Remove.
2482         (push_cleanup): New.
2483         * c-tree.h: Move some decls from c-common.h.
2484         * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
2485         (do_case, c_finish_case): Likewise.
2486         (c_finish_then): Take body for then as argument.
2487         (c_finish_else): Similarly.
2488         (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
2489         c_finish_for_stmt_incr, c_finish_for_stmt): New.
2490         (c_begin_stmt_expr, c_finish_stmt_expr): New.
2491         (c_begin_compound_stmt): Do scope management.
2492         (c_end_compound_stmt): New.
2493         * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
2494         * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
2495         Look through exception handling constructs.
2496         (gimplify_bind_expr): Accept temporary argument.
2497         (gimplify_target_expr): Special case BIND_EXPR bodies.
2498         (gimplify_expr): Handle fallback == fb_none like a statement.
2499         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
2500         * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
2501         * langhooks.h (tree_chain_matters_p): Remove.
2502         * stub-objc.c (objc_clear_super_receiver): New.
2503         * tree-gimple.h (voidify_wrapper_expr): Update decl.
2504         (append_to_statement_list, append_to_statement_list_force): Move
2505         to tree-iterator.h.
2506         * tree-inline.c (expand_call_inline): Update call.
2507         (clone_body): Use statement lists.
2508         (walk_tree): Don't check tree_chain_matters_p.
2509         (copy_tree_r): Likewise.
2510         * tree-iterator.c (alloc_stmt_list): Clear lang bits.
2511         (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
2512         * tree-iterator.h (append_to_statement_list,
2513         append_to_statement_list_force): Moved from tree-gimple.h.
2514         * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
2515         * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
2516         (objc_enter_block): Likewise.
2517         (objc_exit_block): Use c_end_compound_stmt.
2518         (objc_build_try_enter_fragment): Add #error and comment for
2519         rewriting for OBJCPLUS.
2520         (objc_build_extract_fragment, objc_build_try_epilogue,
2521         objc_build_catch_stmt, objc_build_finally_prologue,
2522         objc_build_finally_epilogue): Update for C statement builders.
2523         * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
2524         Remove.
2525
2526 2004-06-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2527
2528         * df.c (df_reg_clobber_gen): Removed.
2529         (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
2530         Make more effective for hard regs.
2531         * ra-build.c (livethrough_conflicts_bb): Check contains_call.
2532
2533 2004-06-15  Alexandre Oliva  <aoliva@redhat.com>
2534
2535         * c-pragma.h (c_lex_string_translate): Change type to int.
2536         * c-parse.in: Change all assignments of c_lex_string_translate
2537         to true and false to 1 and 0.
2538         * c-lex.c (c_lex_string_translate): Likewise.
2539         (lex_string): Convert string without translation in the -1
2540         case.
2541
2542 2004-06-15  Mark G. Adams  <mark.g.adams@sympatico.ca>
2543
2544         * convert.h: Add include guards
2545
2546 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
2547
2548         * tree-flow-inline.h: Document all functions.
2549
2550 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
2551
2552         * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
2553         * tree-dfa.c (create_stmt_ann): Ditto.
2554         * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
2555         * tree-inline.c (estimate_num_insns_1): Ditto.
2556         * tree.c (tree_size): Ditto.
2557         (make_node_stat): Ditto.
2558         (tree_node_structure): Ditto.
2559         (ephi_node_elt_check_failed): Remove.
2560         (is_essa_node): Ditto.
2561         * tree.def (EPHI_NODE): Ditto.
2562         (EEXIT_NODE): Ditto.
2563         (EUSE_NODE): Ditto.
2564         (EKILL_NODE): Ditto.
2565         * tree.h (EREF_NODE_CHECK): Remove.
2566         (EPHI_NODE_ELT_CHECK): Ditto.
2567         (struct tree_eref_common): Ditto.
2568         (struct tree_euse_node): Ditto.
2569         (struct ephi_arg_d): Ditto.
2570         (struct tree_ephi_node): Ditto.
2571         (ephi_node_elt_check_failed): Remove prototype.
2572         (is_essa_node): Ditto.
2573         (enum tree_node_structure_enum): Remove TS_E*_NODE.
2574         (union tree_node): Remove E*_NODE uses.
2575
2576 2004-06-15  Jerry Quinn  <jlquinn@optonline.net>
2577
2578         * alias.c (record_set, record_base_value, canon_rtx, get_addr,
2579         nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
2580         * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
2581         Likewise.
2582         * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
2583         expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
2584         expand_builtin_strcmp, expand_builtin_strncmp,
2585         expand_builtin_frame_address): Likewise.
2586         * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
2587         insert_one_insn): Likewise.
2588         * calls.c (prepare_call_address, precompute_register_parameters,
2589         precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
2590         * cfganal.c (flow_active_insn_p): Likewise.
2591         * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
2592         combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
2593         subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
2594         make_extraction, recog_for_combine, gen_lowpart_for_combine,
2595         simplify_comparison, record_dead_and_set_regs_1,
2596         record_dead_and_set_regs, record_promoted_value,
2597         check_promoted_subreg, get_last_value_validate, get_last_value,
2598         reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
2599         unmentioned_reg_p_1): Likewise.
2600         * conflict.c (mark_reg): Likewise.
2601         * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
2602         mention_regs, insert_regs, lookup, lookup_for_remove, insert,
2603         merge_equiv_classes, flush_hash_table, invalidate,
2604         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
2605         invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
2606         cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
2607         record_jump_cond, cse_insn, addr_affects_sp_p,
2608         invalidate_from_clobbers, cse_process_notes, cse_around_loop,
2609         cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
2610         cse_cc_succs, cse_condition_code_reg): Likewise.
2611         * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
2612         cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
2613         cselib_record_set, cselib_record_sets): Likewise.
2614         * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
2615         dbxout_block): Likewise.
2616         * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
2617         * dojump.c (do_jump): Likewise.
2618         * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
2619         is_based_loc, rtl_for_decl_location): Likewise.
2620         * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
2621         set_decl_incoming_rtl, mark_user_reg): Likewise.
2622         * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
2623         copy_to_suggested_reg, allocate_dynamic_stack_space,
2624         probe_stack_range, hard_function_value): Likewise.
2625         * expmed.c (store_bit_field, store_fixed_bit_field,
2626         store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
2627         extract_split_bit_field, expand_divmod, emit_store_flag_force):
2628         Likewise.
2629         * expr.c (convert_move, convert_modes,
2630         block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
2631         use_group_regs, emit_move_insn, emit_move_insn_1,
2632         compress_float_constant, push_block, emit_single_push_insn,
2633         emit_push_insn, get_subtarget, expand_assignment, store_expr,
2634         store_constructor, store_field, force_operand, safe_from_p,
2635         expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
2636         Likewise.
2637         * final.c (profile_function, final_scan_insn, alter_subreg,
2638         get_mem_expr_from_op, output_asm_operand_names, output_operand,
2639         only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
2640         * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
2641         find_regno_partial, propagate_one_insn, init_propagate_block_info,
2642         insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
2643         attempt_auto_inc, find_auto_inc, mark_used_regs,
2644         count_or_remove_death_notes_bb): Likewise.
2645         * function.c (find_temp_slot_from_address, update_temp_slot_address,
2646         preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
2647         fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
2648         put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
2649         purge_single_hard_subreg_set, instantiate_decl,
2650         instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
2651         promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
2652         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
2653         expand_function_start, diddle_return_value, clobber_return_register,
2654         expand_function_end, keep_stack_depressed, handle_epilogue_set,
2655         update_epilogue_consts): Likewise.
2656         * genemit.c (gen_exp, gen_insn): Likewise.
2657         * genrecog.c (make_insn_sequence): Likewise.
2658         * global.c (global_conflicts, expand_preferences, mark_reg_store,
2659         mark_reg_conflicts, set_preference, reg_becomes_live,
2660         build_insn_chain, mark_reg_change): Likewise.
2661         * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
2662         Likewise.
2663         * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
2664         Likewise.
2665         * integrate.c (copy_rtx_and_substitute, try_constants,
2666         subst_constants, mark_stores, allocate_initial_values): Likewise.
2667         * jump.c (reversed_comparison_code_parts, delete_prior_computation,
2668         delete_computation, rtx_renumbered_equal_p, true_regnum,
2669         reg_or_subregno): Likewise.
2670         * lcm.c (reg_dies, reg_becomes_live): Likewise.
2671         * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
2672         update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
2673         wipe_dead_reg, no_conflict_p): Likewise.
2674         * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
2675         iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
2676         simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
2677         * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
2678         move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
2679         find_single_use_in_loop, count_one_set, loop_bivs_init_find,
2680         loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
2681         valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
2682         loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
2683         maybe_eliminate_biv_1, record_initial, update_reg_last_use,
2684         canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
2685         try_swap_copy_prop): Likewise.
2686         * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
2687         expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
2688         Likewise.
2689         * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
2690         reload_cse_simplify_operands, reload_combine,
2691         reload_combine_note_store, reload_combine_note_use,
2692         reload_cse_move2add, move2add_note_store): Likewise.
2693         * print-rtl.c (print_rtx): Likewise.
2694         * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
2695         contains_pseudo, handle_asm_insn): Likewise.
2696         * ra-debug.c (ra_print_rtx_object, dump_constraints,
2697         dump_static_insn_cost): Likewise.
2698         * ra-rewrite.c (slots_overlap_p, emit_colors,
2699         remove_suspicious_death_notes): Likewise.
2700         * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
2701         register_operand, scratch_operand, nonmemory_operand,
2702         constrain_operands): Likewise.
2703         * reg-stack (check_asm_stack_operands, remove_regno_note,
2704         emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
2705         subst_asm_stack_regs): Likewise.
2706         * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
2707         record_address_regs, reg_scan_mark_refs): Likewise.
2708         * regmove.c (discover_flags_reg, replacement_quality,
2709         copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
2710         fixup_match_1): Likewise.
2711         * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
2712         kill_set_value, copyprop_hardreg_forward_1): Likewise.
2713         * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
2714         reload_inner_reg_of_subreg, can_reload_into, push_reload,
2715         combine_reloads, find_dummy_reload, hard_reg_set_here_p,
2716         operands_match_p, decompose, find_reloads, find_reloads_toplev,
2717         find_reloads_address, subst_indexed_address, find_reloads_address_1,
2718         find_reloads_subreg_address, find_replacement,
2719         refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
2720         refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
2721         * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
2722         find_reg, delete_dead_insn, alter_reg, eliminate_regs,
2723         elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
2724         forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
2725         emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
2726         do_output_reload, emit_reload_insns, gen_reload,
2727         delete_address_reloads_1, inc_for_reload): Likewise.
2728         * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
2729         update_reg_unused_notes, fill_slots_from_thread): Likewise.
2730         * resource.c (update_live_status, mark_referenced_resources,
2731         mark_set_resources, mark_target_live_regs): Likewise.
2732         * rtlanal.c (nonzero_address_p, get_jump_table_offset,
2733         global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
2734         reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
2735         note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
2736         find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
2737         parms_set, find_first_parameter_load, keep_with_call_p,
2738         hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
2739         num_sign_bit_copies1): Likewise.
2740         * rtlhooks.c (gen_lowpart_general): Likewise.
2741         * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
2742         sched_analyze): Likewise.
2743         * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
2744         Likewise.
2745         * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
2746         * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
2747         simplify_binary_operation, simplify_const_relational_operation,
2748         simplify_subreg): Likewise.
2749         * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
2750         expand_end_stmt_expr, expand_return, expand_decl,
2751         expand_anon_union_decl): Likewise.
2752         * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
2753         find_splittable_regs, find_splittable_givs, find_common_reg_term,
2754         loop_iterations): Likewise.
2755         * var-tracking.c (variable_union, variable_part_different_p,
2756         variable_different_p, count_uses, add_uses, add_stores,
2757         compute_bb_dataflow, set_variable_part, delete_variable_part,
2758         emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
2759         Likewise.
2760         * varasm.c (assemble_variable): Likewise.
2761
2762 2004-06-15  Chris Demetriou  <cgd@broadcom.com>
2763
2764         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
2765         definition.
2766         * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
2767         #undef and #if 0'd definition.
2768
2769 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
2770
2771         * combine.c (distribute_notes): Comment typo fix.
2772
2773 2004-06-15  Roger Sayle  <roger@eyesopen.com>
2774
2775         * expmed.c (synth_mult): Mask bits of the multiplier to the
2776         machine mode of the multiplication.  Don't consider shifts
2777         by more than (or equal to) the width of the operation's mode.
2778
2779 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2780
2781         * doc/install.texi: Yet another update for autoconf
2782         and automake versions.
2783
2784 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2785
2786         * function.h (struct function): Remove cannot_inline field.
2787         (current_function_cannot_inline): Remove.
2788         * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
2789         Simplify conditionals to ignore warn_return_type.
2790         * tree-optimize.c (tree_rest_of_compilation): Do not reset
2791         DECL_DEFER_OUTPUT.
2792         * objc/objc-act.c (build_module_descriptor, finish_method_def):
2793         Do not set current_function_cannot_inline.
2794
2795 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
2796
2797         * cfglayout.c (fixup_reorder_chain): Handle case where the
2798         destination of E_TAKEN is EXIT_BLOCK_PTR.
2799
2800 2004-06-15  Diego Novillo  <dnovillo@redhat.com>
2801
2802         * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
2803
2804 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2805
2806         * fold-const.c (operand_equal_p): Update comment.
2807
2808 2004-06-15  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
2809
2810         * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
2811         (INCOMING_RETURN_ADDR_RTX): Define.
2812         * config/m32r/m32r-protos.h (m32r_return_addr): Added.
2813         * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
2814         __builtin_return_address(0).
2815         (m32r_return_addr): Added for __builtin_return_address(0).
2816         (m32r_reload_lr): Ditto.
2817
2818         * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
2819
2820 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2821
2822         * doc/install.texi (Prerequisites): Update libbanshee,
2823         fastjar, libcpp, libjava/libltdl entries to
2824         automake 1.8.5.
2825
2826 2004-06-15  Eric Botcazou  <ebotcazou@act-europe.fr>
2827             Olivier Hainque  <hainque@act-europe.fr>
2828
2829         * function.c (fixup_var_refs): Also adjust the start of sequence
2830         after fixing up the insns.
2831
2832 2004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
2833
2834         * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
2835
2836 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
2837
2838         * doc/install.texi (Prerequisites): Update libstdc++ entry to
2839         automake 1.8.5.
2840
2841 2004-06-14  Eric Christopher  <echristo@redhat.com>
2842
2843         * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
2844         to -mtpf-trace (-mno-tpf-trace).
2845         * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
2846         documentation.
2847
2848 2004-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
2849
2850         * real.c: Fix bit count in head comment.
2851
2852 2004-06-14  Jeff Law  <law@redhat.com>
2853
2854         * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
2855         PHIs where the destination or an argument is marked with
2856         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
2857
2858 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
2859
2860         PR middle-end/15945
2861         * simplify-rtx.c (simplify_binary_operation): Don't optimize out
2862         Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
2863
2864 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2865
2866         * opts.sh (var_args): Fix regexp.
2867
2868 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
2869
2870         PR target/15178
2871         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
2872
2873 2004-06-14  Paul Brook  <paul@codesourcery.com>
2874
2875         * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
2876
2877 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2878
2879         * Makefile.in (FLAGS_H): New.
2880         (flags.h): Replace by FLAGS_H.
2881         * c.opt: Document Var, VarExists, Init and Report attributes.
2882         * common.opt: Fill the values of the attributes.
2883         * diagnostic.c (flag_fatal_errors): Do not define.
2884         * except.c (flag_non_call_exceptions): Do not define.
2885         * flags.h: Include options.h.  Remove declarations conflicting with
2886         the automatically defined ones.
2887         * opts.c: Remove automatically defined variables.
2888         (handle_option): Perform default initialization.
2889         (common_handle_option): Do not handle options covered by the
2890         default initialization.
2891         * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
2892         fields.
2893         (CL_REPORT): New.
2894         * opts.sh: Generate variable declarations, handle CL_REPORT.
2895         * toplev.c: Remove automatically defined variables.
2896         (f_options): Removed.
2897         (print_switch_values): Use cl_options instead of f_options.
2898         * toplev.h (version_flag): Declaration removed.
2899
2900 2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>
2901
2902         * config/sparc/sparc.h: Correct comment about availability of
2903         little endian option.
2904
2905         * config.gcc: Remove sparc64-*-aout*.
2906         * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
2907         * config/sparc/sp64-aout.h: Remove.
2908         * config/sparc/aout.h: Remove.
2909
2910 2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
2911
2912         * config/s390/s390.c: Include "tree-gimple.h".
2913         (s390_gimplify_va_arg): New function.
2914         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2915         (s390_va_arg): Remove.
2916         * config/s390/s390-protos.h (s390_va_arg): Remove.
2917         * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
2918
2919 2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>
2920
2921         * basic-block.h (could_fall_through): Declare.
2922         * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
2923         Fail if the source already has a fallthrough edge to the exit
2924         block pointer.
2925         (could_fall_through): New function.
2926         * cfgbuild.c (make_edges): Check if we already have a fallthrough
2927         edge to the exit block pointer.
2928         * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
2929         not called before reload has completed.
2930         Handle special case of first block having a fall-through exit edge.
2931         (cfg_layout_finalize): Don't call it before reload or if we have
2932         rtl epilogues.
2933         (fixup_reorder_chain): A fall through to the exit block does not
2934         require the block to come last.  Add sanity checks.
2935         * cfgrtl.c (rtl_split_edge): Add special handling of fall through
2936         edges to the exit block.
2937         * function.c (cfglayout.h): #include.
2938         (thread_prologue_and_epilogue_insns): If we have neither return nor
2939         epilogue, but a fall through to the exit block from mid-function,
2940         force a non-fall-through exit.
2941         * Makefile.in (function.o): Depend on CFGLAYOUT_H.
2942
2943 2004-06-14  Alan Modra  <amodra@bigpond.net.au>
2944
2945         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
2946         for power5 and rs64a.  Correct condition for default.  Correct power3,
2947         620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
2948
2949 2004-06-13  Steven Bosscher <stevenb@suse.de>
2950
2951         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
2952         Revert previous change, don't use CALL_P.
2953
2954 2004-06-13  Jason Merrill  <jason@redhat.com>
2955
2956         * tree.h: Move std_gimplify_va_arg_expr protoype here.
2957         * tree-gimple.h: From here.
2958
2959 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
2960
2961         Fix PR tree-optimization/15979
2962         Fix PR tree-optimization/15981
2963         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
2964         try to insert values undefined along some path.
2965
2966 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
2967
2968         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
2969         are available everywhere too.
2970
2971 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
2972
2973         * fold-const.c (fold_checksum_tree <case 't'>): Only
2974         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
2975         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
2976         EXPR is an INTEGERAL_TYPE or a scalar float type.
2977
2978 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
2979
2980         * tree-sra.c (tree_sra): Update documentation.
2981
2982 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
2983
2984         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
2985         function_types_compatible_p, type_lists_compatible_p): Remove
2986         flags parameter.
2987         * c-tree.h (comptypes): Likewise.
2988         (COMPARE_STRICT): Remove.
2989         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
2990         callers changed.
2991
2992 2004-06-13  Eric Christopher  <echristo@redhat.com>
2993
2994         * c-decl.c (diagnose_mismatched_decls): Improve error message.
2995         Remove unused code.
2996         * c-typeck.c (comptypes): Add location in standard we're checking.
2997
2998 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
2999
3000         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
3001         version 3.3.4.
3002
3003 2004-06-12  Roger Sayle  <roger@eyesopen.com>
3004
3005         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
3006         index by machine mode.
3007         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
3008         tables inside the loop over machine modes.
3009         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
3010         expand_divmod): Index shift*_cost by the appropriate machine mode.
3011
3012 2004-06-12  Eric Christopher  <echristo@redhat.com>
3013
3014         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
3015         * config/s390/s390.md: Ditto.
3016         * config/s390/s390.c: Ditto.
3017         (s390_frame_info): Conditionalize frame and setup info on
3018         TARGET_TPF_PROFILING.
3019         (s390_arg_frame_offset): Ditto.
3020
3021 2004-06-12  Roger Sayle  <roger@eyesopen.com>
3022
3023         * fold-const.c (omit_two_operands): New function.
3024         * tree.h (omit_two_operands): Prototype here.
3025         * builtins.c (fold_builtin_unordered_cmp): New function to lower
3026         C99 unordered comparison builtins to the appropriate tree nodes.
3027         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
3028         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
3029         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
3030         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
3031         (simplify_builtin_memcmp, simplify_builtin_strncmp,
3032         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
3033         omit_two_operands function to build the required COMPOUND_EXPRs.
3034
3035 2004-06-12  Steven Bosscher <stevenb@suse.de>,
3036             Andreas Jaeger  <aj@suse.de>
3037
3038         * gcse.c (record_set_info): Use predicates like REG_P.
3039         (mems_conflict_for_gcse_p): Likewise.
3040         (load_killed_in_block_p): Likewise.
3041         (hash_expr_1): Likewise.
3042         (insert_set_in_table): Likewise.
3043         (gcse_constant_p): Likewise.
3044         (hash_scan_set): Likewise.
3045         (hash_scan_insn): Likewise.
3046         (canon_list_insert): Likewise.
3047         (record_last_mem_set_info): Likewise.
3048         (record_last_set_info): Likewise.
3049         (compute_hash_table_work): Likewise.
3050         (mark_set): Likewise.
3051         (mark_clobber): Likewise.
3052         (mark_oprs_set): Likewise.
3053         (compute_transp): Likewise.
3054         (find_avail_set): Likewise.
3055         (cprop_insn): Likewise.
3056         (do_local_cprop): Likewise.
3057         (cprop): Likewise.
3058         (find_implicit_sets): Likewise.
3059         (find_bypass_set): Likewise.
3060         (bypass_conditional_jumps): Likewise.
3061         (insert_insn_end_bb): Likewise.
3062         (pre_insert_copy_insn): Likewise.
3063         (compute_transpout): Likewise.
3064         (next_ls_expr): Likewise.
3065         (invalidate_any_buried_refs): Likewise.
3066         (compute_ld_motion_mems): Likewise.
3067         (reg_set_info): Likewise.
3068         (reg_clear_last_set): Likewise.
3069         (find_moveable_store): Likewise.
3070         (compute_store_table): Likewise.
3071         (find_loads): Likewise.
3072         (store_killed_in_insn): Likewise.
3073         (insert_insn_start_bb): Likewise.
3074         (reg_set_between_after_reload_p): Likewise.
3075         (reg_used_between_after_reload_p): Likewise.
3076         (is_jump_table_basic_block): Likewise.
3077         (gcse_after_reload): Likewise.
3078         (hash_scan_set_after_reload): Likewise.
3079         (compute_hash_table_after_reload): Likewise.
3080
3081 2004-06-12  Steven Bosscher  <stevenb@suse.de>
3082
3083         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
3084         (INSN_P): Don't look at the rtx code class, just explicitly
3085         check for one of the tree RTX_INSN codes.
3086
3087 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
3088
3089         * c-typeck.c (default_function_array_conversion): Use
3090         build_pointer_type not TYPE_POINTER_TO.
3091
3092 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
3093
3094         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
3095         * configure, config.in: Regenerate.
3096         * system.h: Unconditionally define bool as unsigned char,
3097         BOOL_BITFIELD as unsigned int.
3098         * domwalk.h: Use BOOL_BITFIELD.
3099
3100 2004-06-12  Andreas Jaeger  <aj@suse.de>
3101
3102         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
3103         * libgcc-darwin.ver: Likewise.
3104
3105 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
3106
3107         * reload.c (find_reloads): Force reload for pseudo registers on big
3108         endian machines.
3109
3110 2004-06-11  Steven Bosscher <stevenb@suse.de>
3111
3112         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
3113         Don't try to mark anything control dependent on the entry or
3114         exit blocks.
3115
3116 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
3117
3118         Fix Bug 15899
3119         Fix Bug 15460
3120         * tree.h (SSA_NAME_VALUE): New macro.
3121         (struct tree_ssa_name): Add value_handle member.
3122         * tree-ssa-pre.c: Replaced.
3123         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
3124         (struct cst_ann_d): New.
3125         (struct expr_ann_d): New.
3126         (union tree_ann_d): Add cst_ann, expr_ann.
3127         * tree-dfa.c (create_cst_ann): New function.
3128         (create_expr_ann): Ditto.
3129         * tree-flow-inline.h (cst_ann): New function.
3130         (expr_ann): Ditto.
3131         (get_cst_ann): Ditto.
3132         (get_expr_ann): Ditto..
3133
3134 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3135
3136         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
3137         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
3138         _U_Qfcmp library function.
3139         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
3140         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
3141
3142         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
3143         unspec used for loading address from DLT.
3144         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
3145         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
3146         Don't use short code sequence when loading the address of a nonlocal
3147         label.
3148         (nonlocal_goto): New expander.
3149         (indirect_goto): New jump pattern for nonlocal gotos.
3150         (short_jump): Remove extra whitespace.
3151         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
3152         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
3153         pattern.
3154
3155 2004-06-11  Roger Sayle  <roger@eyesopen.com>
3156
3157         * expmed.c (synth_mult): Add an additional MODE argument for the
3158         machine mode of the multiplication.  Update recursive calls.  Use
3159         mode instead of word_mode for determining operation costs.
3160         (choose_mult_variant): Update calls to synth_mult with "mode".
3161
3162 2004-06-11  Richard Henderson  <rth@redhat.com>
3163
3164         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
3165         and makes_aliased_stores.
3166
3167 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
3168
3169         * doc/install.text (--enable-shared): Fix typo.
3170
3171 2004-06-11  Richard Henderson  <rth@redhat.com>
3172
3173         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
3174         argument.  Use internal post for call to gimplify_expr.  Tidy
3175         rounded type size computation.
3176         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
3177         get_initialized_tmp_var.
3178
3179 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
3180
3181         * doc/install.texi (--enable-shared): Update libobjc's shared library
3182         status.  Remove reference to libf2c.
3183
3184 2004-06-11  Jason Merrill  <jason@redhat.com>
3185
3186         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
3187         * config/i386/i386.c (ix86_va_arg): Remove.
3188         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
3189         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
3190         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
3191         * config/alpha/alpha.c (alpha_va_arg): Remove.
3192         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
3193         * config/sparc/sparc.c (sparc_va_arg): Remove.
3194
3195         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
3196         assignment might throw.
3197         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
3198         expressions.
3199
3200 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
3201
3202         PR 15886:
3203         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
3204
3205 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
3206
3207         * doc/install.texi (Prerequisites): Update documentation of
3208         required versions of autoconf and automake.  Remove mention of
3209         libf2c.
3210
3211 2004-06-11  Jason Merrill  <jason@redhat.com>
3212
3213         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
3214         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3215
3216 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
3217
3218         * typeclass.h: Add GPL plus exception license.  Add include
3219         guard.
3220
3221 2004-06-10  Jason Merrill  <jason@redhat.com>
3222
3223         * gimplify.c (gimplify_modify_expr): Don't force a temporary
3224         of an aggregate_value_p type.
3225
3226 2004-06-10  Jeff Law  <law@redhat.com>
3227
3228         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
3229         code when we are in gimple form.
3230
3231 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
3232
3233         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
3234         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
3235         (highest_ssa_version): Remove.
3236         * tree-outof-ssa.c (new_temp_expr_table): Replace
3237         highest_ssa_version with num_ssa_names.
3238         (dump_replaceable_exprs): Likewise.
3239         (rewrite_vars_out_of_ssa): Likewise.
3240         * tree-ssa-ccp.c (initialize): Likewise
3241         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
3242         * tree-ssa-dce.c (tree_dce_init): Likewise.
3243         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
3244         * tree-ssa-live.c (create_ssa_var_map): Likewise.
3245         (dump_var_map): Likewise.
3246         * tree-ssa.c (verify_ssa): Likewise.
3247         (kill_redundant_phi_nodes): Likewise.
3248         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
3249         * tree-ssanames.c: Include tree-flow.h
3250         (ssa_names): New varray.
3251         (init_ssa_names): Initialize ssa_names.
3252         Reserve the first slot of the ssa_names table.
3253         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
3254         Assign version numbers using num_ssa_names.
3255
3256 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
3257
3258         * doc/sourcebuild.texi (Front End): Add details of more
3259         installation documentation required.
3260
3261 2004-06-10  Brian Booth  <bbooth@redhat.com>
3262
3263         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
3264         of V_MAY_DEF and V_MUST_DEF.
3265         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
3266         num_vdefs to num_v_may_defs.
3267         (compute_immediate_uses_for_stmt): Rename occurences of vdef
3268         to v_may_def.
3269         (redirect_immediate_uses): Ditto.
3270         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
3271         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
3272         Also add code to sum up the number of v_must_defs.
3273         (vdefs_disappeared_p): Replace with...
3274         (v_may_defs_disappeared_p): This.
3275         (v_must_defs_disappeared_p): New function.
3276         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
3277         Also add code to mark new variables found in V_MUST_DEFs for
3278         renameing.
3279         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
3280         vdef_ops to v_may_def_ops.
3281         (get_vdef_ops): Replace with...
3282         (get_v_may_def_ops): This.
3283         * tree-flow-inline.h (get_vdef_ops): Replace with...
3284         (get_v_may_def_ops): This.
3285         (get_v_must_def_ops): New function.
3286         (get_vdef_result_ptr): Replace with...
3287         (get_v_may_def_result_ptr): This.
3288         (get_vdef_op_ptr): Ditto with...
3289         (get_v_may_def_op_ptr); This.
3290         (get_v_must_def_op_ptr): New function.
3291         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
3292         to v_may_def. Also add code to mark statements with
3293         V_MUST_DEFs as definition sites.
3294         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
3295         add code to register new V_MUST_DEFs made by the statement.
3296         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
3297         (check_replaceable): Rename occurences of vdef to v_may_def. Also
3298         add check for V_MUST_DEFs.
3299         (find_replaceable_in_bb): Ditto.
3300         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
3301         to v_may_def. Also add code to dump V_MUST_DEFs.
3302         * tree-sra.c (mark_all_vdefs): Replace with...
3303         (mark_all_v_may_defs): This.
3304         (mark_all_v_must_defs): New function.
3305         (create_scalar_copies): Replace call to mark_all_vdefs with
3306         calls to mark_all_v_may_defs and mark_all_v_must_defs.
3307         (scalarize_structures): Rename occurences of vdef to v_may_def.
3308         Also add a check for V_MUST_DEFs.
3309         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
3310         * tree-ssa-alias.c (global_var): Update comment.
3311         (compute_may_aliases): Ditto.
3312         (compute_points_to_and_addr_escape): Rename occurences of vdef
3313         to v_may_def. Also add code to mark variables in V_MUST_DEF
3314         operands as being written to.
3315         (group_aliases): Update comment.
3316         (maybe_create_global_var): Ditto.
3317         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
3318         Also add a check for V_MUST_DEFs on GIMPLE registers.
3319         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
3320         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
3321         to v_may_def. Also add code to mark all V_MUST_DEF operands
3322         VARYING.
3323         (initialize): Ditto.
3324         (set_rhs): Rename occurences of vdef to v_may_def. Also add
3325         code to update SSA_NAMEs in V_MUST_DEFs.
3326         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
3327         to v_may_def.
3328         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
3329         occurences of vdef to v_may_def. Also add code to mark statements
3330         with V_MUST_DEFs as necessary.
3331         (propagate_necessity): Rename occurences of vdef to v_may_def.
3332         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
3333         occurences of vdef to v_may_def. Also add code to mark operands
3334         in V_MUST_DEFs for renaming.
3335         (eliminate_redundant_computations): Rename occurences of vdef
3336         to v_may_def.
3337         (record_equivalences_from_stmt): Rename occurences of vdef
3338         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
3339         (optimize_stmt): Remove unnesessary variable vdefs. Update
3340         comment.
3341         (register_definitions_for_stmt): Rename occurences of vdef
3342         to v_may_def. Also add code to register definitions made with
3343         V_MUST_DEFs.
3344         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
3345         (fix_stmt_v_may_defs): This.
3346         (fix_phi_uses): Rename occurences of vdef to v_may_def.
3347         (dse_optimize_stmt): Ditto.
3348         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
3349         to v_may_def. Also add code to mark V_MUST_DEF operands as being
3350         used in virtual operators.
3351         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
3352         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
3353         renaming.
3354         * tree-ssa-operands.c (opf_kill_def): New flag for killing
3355         definitions.
3356         (build_vdefs): Renamed to...
3357         (build_v_may_defs): This.
3358         (build_v_must_defs): New variable.
3359         (voperands_d): Add v_must_def_ops and replace vdef_ops with
3360         v_may_def_ops.
3361         (append_vdef): Replace with...
3362         (append_v_may_def): This.
3363         (append_v_must_def): New function.
3364         (NUM_FREE): Increment for V_MUST_DEF
3365         (optype_freelist): Increment its size for V_MUST_DEF
3366         (allocate_vdef_optype): Replace with...
3367         (allocate_v_may_def_optype): This.
3368         (allocate_v_must_def_optype): New function.
3369         (free_vdefs): Replace with...
3370         (free_v_may_defs): This.
3371         (free_v_must_defs): New function.
3372         (remove_vdefs): Replace with...
3373         (remove_v_may_defs): This.
3374         (remove_v_must_defs): New function.
3375         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
3376         add code to initialize build_v_must_defs.
3377         (finalize_ssa_vdefs): Replace with...
3378         (finalize_ssa_v_may_defs): This.
3379         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
3380         (finalize_ssa_v_must_defs): New function.
3381         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
3382         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
3383         (verify_start_operands): Rename occurences of vdef to v_may_def.
3384         Also add check for build_v_must_defs.
3385         (get_stmt_operands): Rename occurences of vdef to v_may_def.
3386         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
3387         killing definitions.
3388         (get_expr_operands): Update comment and use opf_kill_def for
3389         killing definitions.
3390         (add_stmt_operand): Replace code that appends VDEFs with code
3391         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
3392         otherwise.
3393         (add_call_clobber_ops): Update comments.
3394         * tree-ssa-operands.h (vdef_optype_d): Replace with...
3395         (v_may_def_optype_d): This.
3396         (v_must_def_optype_d): New structure.
3397         (VDEF_OPS): Replace with...
3398         (V_MAY_DEF_OPS): This.
3399         (STMT_VDEF_OPS): Same with...
3400         (STMT_V_MAY_DEF_OPS): This.
3401         (NUM_VDEFS): And...
3402         (NUM_V_MAY_DEFS): This.
3403         (VDEF_RESULT_PTR): As well as...
3404         (V_MAY_DEF_RESULT_PTR): This.
3405         (VDEF_RESULT): Same goes for...
3406         (V_MAY_DEF_RESULT): This.
3407         (VDEF_OP_PTR): And...
3408         (V_MAY_DEF_OP_PTR): This.
3409         (VDEF_OP): And...
3410         (V_MAY_DEF_OP): This.
3411         (V_MUST_DEF_OPS): New macro.
3412         (STMT_V_MUST_DEF_OPS): Ditto.
3413         (NUM_V_MUST_DEFS): Ditto.
3414         (V_MUST_DEF_OP_PTR): Ditto.
3415         (V_MUST_DEF_OP): Ditto.
3416         (remove_vdefs): Replace signature with...
3417         (remove_v_may_defs): This.
3418         (remove_v_must_defs): New function signature.
3419         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
3420         with calls to remove_v_may_defs and remove_v_must_defs.
3421         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
3422         Also add code that marks left occurences of operands in V_MUST_DEFs.
3423         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
3424         to v_may_def. Also add check for V_MUST_DEFs.
3425         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
3426
3427 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
3428
3429         PR target/15653
3430         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
3431         insn.
3432
3433 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3434
3435         PR web/15263
3436         * doc/install.texi: Remove superfluous linebreak.
3437
3438 2004-06-10  Roger Sayle  <roger@eyesopen.com>
3439
3440         * builtins.c (expand_builtin): Fall back to library function call for
3441         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
3442         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
3443         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
3444         IMAGPART_EXPR respectively.
3445
3446 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
3447
3448         * sh.c (dump_table): New argument start.  Changed caller.
3449         (fixup_mova): New function.
3450         (find_barrier): Use it.
3451         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
3452         If the label a mova refers to is above the mova itself, change
3453         the mova into a load.
3454         * sh.md (*casesi_worker): Rename to:
3455         (casesi_worker_1).
3456         (casesi_worker_2): New insn.
3457
3458 2004-06-10  Jason Merrill  <jason@redhat.com>
3459
3460         * target.h (struct gcc_target): Change gimplify_va_arg_expr
3461         hook signature.
3462         * tree-gimple.h: Adjust.
3463         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
3464         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
3465         Use fold_convert.
3466         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
3467         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
3468         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
3469         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
3470         (gimplify_va_arg_expr): Return GS_ERROR in error case.
3471         Gimplify valist rather than calling stabilize_va_list.
3472
3473 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3474
3475         * Makefile.in (df.o): Remove fibheap dependency.
3476         * df.h: Do not include sbitmap.h.
3477         (struct ref): New field "data".
3478         (DF_REF_DATA): New accessor macro.
3479         (struct df): Field "dom" removed.
3480         (df_analyze_subcfg): New function.
3481         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
3482         (transfer_function): ... new type.
3483         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
3484         (iterative_dataflow): ... new function.
3485         (enum set_representation, struct dataflow): New.
3486         * df.c: Do not include fibheap.h.
3487
3488         (df_reg_def_chain_clean, df_reg_use_chain_clean,
3489         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
3490         prune_to_subcfg, df_bb_modify): New functions.
3491         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
3492         df_refs_update, df_reg_table_realloc, df_ref_create,
3493         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
3494         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
3495         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
3496
3497         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
3498         (df_rd_transfer_function, df_ru_transfer_function,
3499         df_lr_transfer_function): Type of bitmaps changed to void *.
3500         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
3501         (hybrid_search): ... new function.
3502         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
3503         (iterative_dataflow): ... new function. Avoid use of fibheaps for
3504         a worklist.  Do not process basic blocks unnecessarily.
3505
3506 2004-06-10  Roger Sayle  <roger@eyesopen.com>
3507
3508         * fold-const.c (fold_abs_const): Make extern.
3509         * tree.h (fold_abs_const): Prototype here.
3510         * builtins.c (fold_builtin_fabs): New function to transform
3511         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
3512         (fold_builtin_abs): New function to transform abs, labs, llabs
3513         and imaxabs builtins into ABS_EXPR tree nodes.
3514         (expand_builtin): Fall back to a function call for abs, labs,
3515         llabs and imaxabs builtins that survive constant folding.
3516         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
3517         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
3518
3519 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
3520
3521         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
3522         leaf function without unwind info at RP 0.
3523
3524 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
3525
3526         PR c++/14791
3527         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
3528         (fileptr_type_node): Define.
3529         * tree.c (build_common_tree_nodes_2): Initialize
3530         fileptr_type_node to ptr_type_node.
3531         * c-common.c (c_common_nodes_and_builtins): For C++, make
3532         fileptr_type_node a distinct type copy.
3533         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
3534         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
3535         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
3536         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
3537         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
3538         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
3539         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
3540         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
3541         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
3542         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
3543         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
3544         the above *FILEPTR* types instead of *PTR*.
3545
3546 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
3547
3548         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
3549         match.
3550
3551 2004-06-09  Roger Sayle  <roger@eyesopen.com>
3552
3553         * fold-const.c (fold_not_const): New function.
3554         (fold) <ABS_EXPR>: Don't bother testing wins.
3555         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
3556         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
3557
3558 2004-06-09  Richard Henderson  <rth@redhat.com>
3559
3560         PR middle-end/15228
3561         * function.c (assign_parms): Always set_mem_align with the computed
3562         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
3563
3564 2004-06-09  Richard Henderson  <rth@redhat.com>
3565
3566         PR opt/15108
3567         * tree-tailcall.c (find_tail_calls): Don't check early for
3568         tail_recursion failure.
3569
3570 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
3571
3572         Move SSA_NAME annotations into tree_ssa_name.
3573
3574         * tree-dfa.c (create_ssa_name_ann): Remove.
3575         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
3576         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
3577         (struct ssa_name_ann_d): Remove.
3578         (union tree_ann_d): Update.
3579         (ssa_name_ann_t): Remove.
3580         * tree-ssa-alias.c: (get_ptr_info): New local function.
3581         Replace references to ssa_name_ann_t with struct ptr_info_def.
3582         * tree-ssa-operands.c (get_expr_operands): Likewise.
3583         * tree.h (SSA_NAME_PTR_INFO): Define.
3584         (struct ptr_info_def): Declare.
3585         (struct tree_ssa_name): Add field 'ptr_info'.
3586
3587 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
3588
3589         * config/i386/winnt.c (i386_pe_output_labelref): Correct
3590         misplaced ')'.
3591
3592 2004-06-09  Steven Bosscher  <stevenb@suse.de>
3593
3594         * config/i386/k6.md: Rewrite using the DFA model.
3595         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
3596         cost of load-operation insns for the K6.
3597         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
3598         (ia32_multipass_dfa_lookahead): Likewise.
3599
3600 2004-06-09  Richard Henderson  <rth@redhat.com>
3601
3602         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
3603         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
3604
3605 2004-06-09  Richard Henderson  <rth@redhat.com>
3606
3607         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
3608
3609 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
3610
3611         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
3612         (CPP_ID_DATA_H): New.
3613         (gtype-desc.o): Update dependencies.
3614         (GTFILES): Use CPP_ID_DATA_H.
3615
3616 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
3617
3618         Revert:
3619         PR c++/15815
3620         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
3621         * doc/extend.texi: Deprecate #pragma interface and #pragma
3622         implementation.
3623
3624 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
3625
3626         * config/sparc/sparc.h (MOVE_RATIO): New definition.
3627
3628 2004-06-09  Richard Henderson  <rth@redhat.com>
3629
3630         * basic-block.h (struct edge_def): Add goto_locus.
3631         * tree-cfg.c (make_goto_expr_edges): Set it.
3632         (disband_implicit_edges): Use it.
3633         * tree-pretty-print.c (dump_implicit_edges): Print it.
3634
3635 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
3636
3637         * h8300.md (ldm_h8300s_4): Fix condition for expander.
3638
3639 2004-06-08  Jason Merrill  <jason@redhat.com>
3640
3641         Gimplify VA_ARG_EXPR into simpler forms.
3642         * target.h: Add gimplify_va_arg_expr hook.
3643         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
3644         * fold-const.c (build_fold_addr_expr)
3645         (build_fold_addr_expr_with_type): Move from gimplify.c.
3646         * tree.h: Declare them.
3647         * gimplify.c (gimplify_and_add): New fn.
3648         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
3649         (gimplify_array_ref_to_plus, gimplify_modify_expr)
3650         (gimplify_expr): Use build_fold_*.
3651         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
3652         don't know how to gimplify it.
3653         * builtins.c (std_gimplify_va_arg_expr): New fn.
3654         (dummy_object): New static fn.
3655         (gimplify_va_arg_expr): New fn.
3656         (stabilize_va_list): Use build_fold_*.
3657         * tree-gimple.h: Declare new fns.
3658         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3659         (ix86_gimplify_va_arg): New fn.
3660         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3661         (ia64_gimplify_va_arg): New fn.
3662         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
3663         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3664         * alias.c (get_varargs_alias_set): Just return 0 for now.
3665
3666         * c-objc-common.c (c_tree_printer): Improve handling of %T.
3667
3668 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
3669
3670         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
3671         of convert.
3672         * tree-inline.c (setup_one_parameter): Likewise.
3673         * tree-sra.c (csc_build_component_ref): Likewise.
3674         * tree-ssa-ccp.c (ccp_fold): Likewise.
3675         * tree-ssa-copy.c (cprop_operand): Likewise.
3676         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
3677         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
3678
3679 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
3680
3681         PR rtl-optimization/15521:
3682         * sched-int.h (in_post_call_group_p): Change type to enum.
3683         * sched-deps.c (sched_analyze_insn):
3684         (sched_analyze): When in_post_call_group_p is post_call_initial,
3685         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
3686         and also reset in_post_call_group_p to post_call.
3687         (sched_analyze): When the previous basic block ended in a CALL_INSN,
3688         initialize in_post_call_group_p as post_call_initial.
3689         (init_deps): initialize in_post_call_group_p to not_post_call.
3690
3691 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
3692
3693         PR ada/6637
3694         * doc/install.texi: List ada, libada as options to --enable-shared
3695
3696 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
3697
3698         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
3699         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
3700         config.in entries.
3701         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
3702         if hard links are not available.
3703         * configure: Regenerate.
3704         * config.in: Regenerate.
3705
3706 2004-06-08  Per Bothner  <per@bothner.com>
3707
3708         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
3709
3710 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3711
3712         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
3713         Correct formatting.
3714
3715 2004-06-08  James E Wilson  <wilson@specifixinc.com>
3716
3717         PR target/15790
3718         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
3719
3720 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
3721
3722         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
3723         POINTER_TYPE and INTEGER_TYPE.
3724
3725 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
3726
3727         * modulo-sched.c: Compile only when INSN_SCHEDULING is
3728         defined.
3729
3730 2004-06-08  Jeff Law  <law@redhat.com>
3731
3732         * doc/contrib.texi: Add entries for Stefan Olsson and
3733         Ola Ronnerup.
3734
3735 2004-06-08  DJ Delorie  <dj@redhat.com>
3736
3737         * toplev.c (floor_log2_wide): Replace loop with faster bit
3738         operations.
3739         (exact_log2_wide): Define in terms of the above.
3740         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
3741         available.
3742
3743 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
3744
3745         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
3746         Make sure that we are in INDIRECT mode when getting the
3747         stub name.
3748
3749 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
3750
3751         * h8300.md (extendqisi2_h8300): Add constraints.
3752         (ldm_h8300s_4_normal): Fix typo.
3753
3754 2004-06-08  Richard Henderson  <rth@redhat.com>
3755
3756         * gimple-low.c (struct lower_data): Replace the_return_label and
3757         one_return_stmt with return_statements.
3758         (lower_function_body): Process the entire list of return_statements.
3759         (lower_return_expr): Check source value before unifying return_exprs.
3760         * gimplify.c (gimplify_return_expr): Force the use of a temporary
3761         for !aggregate_value_p.
3762         * tree-gimple.c: Update RETURN_EXPR grammer.
3763
3764 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
3765
3766         PR target/15598
3767         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
3768
3769 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3770
3771         PR rtl-optimization/15717
3772         * config/i386/i386.c (legitimate_constant_p): Do not allow
3773         x - symbol_ref.
3774
3775 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
3776
3777         * gimplify.c (copy_if_shared_r): Revert:
3778         2004-05-21  Richard Henderson  <rth@redhat.com>
3779         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
3780
3781 2004-06-07  Roger Sayle  <roger@eyesopen.com>
3782
3783         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
3784         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
3785         (init_expmed): Initialize these cost arrays as appropriate.
3786         (store_bit_field, extract_bit_field): Correct whitespace.
3787         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
3788         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
3789         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
3790         word_mode or compute_mode as appropriate.
3791
3792 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
3793
3794         PR target/15783
3795         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
3796         parameter.  Enumerate the registers inside the PARALLEL.
3797         (function_arg): Adjust call to function_arg_union_value.
3798         (function_value): Likewise.
3799
3800         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
3801
3802 2004-06-07  Roger Sayle  <roger@eyesopen.com>
3803
3804         * real.c (real_copysign): New function to implement libm's copysign.
3805         * real.h (real_copysign): Prototype here.
3806         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
3807         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
3808         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
3809         fold_builtin_isdigit): Add function prototypes.
3810         (fold_builtin_copysign): New function to fold copysign, copysignf
3811         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
3812         constant arguments at compile-time using real_copysign.  Fold
3813         copysign(X,Y) as fabs(X) if Y is always non-negative.
3814         (fold_builtin_1): Correct minor whitespace/style issues.  Call
3815         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
3816
3817 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
3818
3819         * tree.c (iterative_hash_expr): Use real_hash.
3820
3821 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
3822
3823         PR c/14765
3824         * c-parse.in (compstmt_primary_start): Set last_expr_type to
3825         NULL_TREE.
3826
3827 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
3828
3829         PR c++/15815
3830         * doc/extend.texi: Deprecate #pragma interface and #pragma
3831         implementation.
3832
3833 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
3834
3835         PR middle-end/15666
3836         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
3837         builtin decl as well.
3838
3839 2004-06-07  Roger Sayle  <roger@eyesopen.com>
3840
3841         PR c/14649
3842         * c-typeck.c (require_constant_value, require_constant_elements):
3843         Move declarations to the top of the file.
3844         (build_function_call): If we require a constant value, fold with
3845         fold_initializer.  If the result is a constant, and the function
3846         wasn't called using __builtin_foo, issue a pedantic warning.
3847         (build_unary_op): If we require a constant value, fold tree with
3848         fold_initializer.
3849         (build_binary_op): Use require_constant_value to determine whether
3850         to call fold or fold_initializer.
3851
3852 2004-06-07  Richard Henderson  <rth@redhat.com>
3853
3854         * gimple-low.c (struct lower_data): Add the_return_label and
3855         one_return_stmt.
3856         (lower_function_body): Initialize and use them.
3857         (lower_return_expr): New.
3858         (lower_stmt): Call it.
3859         * gimplify.c (gimplify_return_expr): Force the argument to be either
3860         null or a result_decl.
3861         * tree-gimple.c: Update gimple grammer to match.
3862         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
3863         coalescing of result_decls.
3864
3865 2004-06-07  Richard Henderson  <rth@redhat.com>
3866
3867         PR rtl-opt/15193
3868         * expmed.c (extract_bit_field): Fix vector_extract return.
3869
3870         * config/i386/i386.md (negv4sf2): New pattern.
3871
3872 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
3873
3874         PR c++/15337
3875         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
3876         message.
3877
3878 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
3879
3880         * config.in: Regenerate.
3881
3882 2004-06-06  Steven Bosscher  <stevenb@suse.de>
3883
3884         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
3885         SWITCH_LABELS are always sorted.
3886
3887 2004-06-06  Steven Bosscher  <stevenb@suse.de>
3888
3889         * hooks.c (hook_int_void_1): New generic hook.
3890         * hooks.h (hook_int_void_1): Add prototype.
3891         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
3892         Define to hook_int_void_1.
3893         * config/c4x/c4x.md: Replace dummies for the old pipeline model
3894         with dummies for the new one.
3895
3896 2004-06-06  Roger Sayle  <roger@eyesopen.com>
3897
3898         * tree.h (lvalue_or_else): Delete function prototype.
3899         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
3900
3901 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
3902
3903         PR target/14542
3904         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
3905         a live change of a register after peephole replacement.
3906
3907 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
3908
3909         PR c/13519
3910         * c-typeck.c (composite_type, common_pointer_type): New functions.
3911         (common_type): Split parts into composite_type and
3912         common_pointer_type.  Ensure that arithmetic operations return
3913         unqualified types without attributes.  Don't make composite type
3914         of signed enum and compatible integer be unsigned.
3915         (build_conditional_expr, build_binary_op): Use
3916         common_pointer_type.
3917         * c-decl.c (merge_decls): Use composite_type.
3918         * c-tree.h (composite_type): Declare.
3919
3920 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
3921
3922         PR target/14457
3923         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
3924         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
3925         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
3926         (inhibit_libc): Must define.
3927         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
3928         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
3929         ("xorhi3"): Likewise.
3930
3931 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
3932
3933         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
3934         always_inline pass.
3935
3936 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
3937
3938         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
3939         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
3940
3941 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
3942
3943         * regclass.c (init_reg_sets): Check for missing registers in target
3944         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
3945
3946 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
3947
3948         * Makefile.in (MKDEPS_H): New shorthand.
3949         (c-opts.o): Update dependencies.
3950         * c-opts.c: Include mkdeps.h.
3951         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
3952         not cpp_add_dependency_target.
3953
3954 2004-06-05  Steven Bosscher  <stevenb@suse.de>
3955
3956         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
3957         * config/v850/v850.md: Convert to DFA scheduler description.
3958
3959 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3960
3961         PR fortran/15478
3962         * doc/install.texi: Document GMP as prerequisite. Document
3963         --with-gmp and --with-gmp-dir configure options.
3964         * fortran/gfortran.texi: Remove section "Compiling and testing",
3965         remove TOC reference to it.
3966
3967 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
3968
3969         * combine.c(simplify_shift_const): Check shift amount is a
3970         CONST_INT.
3971
3972 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
3973
3974         * toplev.c (init_asm_output): Add explicit 'b' to mode when
3975         opening asm_out_file.
3976         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
3977         reading asm_out_file. Replace fflush after reading asm_out_file
3978         with fseek.
3979         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
3980         default and add to HOST_HOOKS_INITIALIZER.
3981         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
3982         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
3983         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
3984         to set mmi.offset padding.
3985          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
3986         $(srcdir)/config/i386/winnt.c.
3987         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
3988         (i[34567]86-*-uwin*): Likewise.
3989         *i[34567]86-*-interix3*): Likewise.
3990         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
3991         * config/i386/host-mingw32.c: New file.
3992         * config/i386/x-mingw32: Add rule for host-mingw32.o.
3993         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
3994         (extern_head): Likewise.
3995         (struct export_list) Likewise.
3996         (export_head): Likewise.
3997         (i386_pe_record_external_function): Use ggc_alloc.
3998         (i386_pe_record_exported_symbol): Likewise.
3999         Include "gt-winnt.h" at end.
4000         * doc/hostconfig.texi: Document
4001         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
4002
4003 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
4004
4005         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
4006         Rename 68000 and 68k to m68k for consistency in comments.  Remove
4007         trailing whitespace before EOLs and before TABs.
4008         (MAX_CODE_ALIGN): Remove unused macro.
4009         (CALL_USED_REGISTERS): Reformat and add comments.
4010
4011 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
4012
4013         * gcc.c (MFLIB_SPEC): Remove library references, to require users
4014         to enumerate -lmudflap* and dependencies when linking.
4015
4016 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
4017
4018         PR target/15822
4019         * dojump.c (do_jump): Fix uninitialized variable tcode1.
4020
4021 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
4022
4023         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
4024         * genconditions.c (write_header): Back out removal of reload.h.
4025
4026 2004-06-04  Jan Hubicka  <jh@suse.cz>
4027
4028         Re-apply hopefully fixed patch:
4029         * i386.md (UNSPECV_EH_RETURN): Kill.
4030         (eh_return): Use jump_insn.
4031         (eh_return_si, eh_return_di): Change pattern to jump instruction.
4032
4033 2004-06-04  Jeff Law  <law@redhat.com>
4034
4035         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
4036
4037 2004-06-04  Steven Bosscher  <stevenb@suse.de>
4038
4039         * except.c (for_each_eh_region): New function.
4040         * except.h (for_each_eh_region): Add a prototype for it.
4041         * tree-cfg.c (update_eh_labels): New function, callback for
4042         for_each_eh_region.
4043         (label_for_bb): Make global static, unfortunately.
4044         (cleanup_dead_labels): Also update label references for
4045         exception regions.
4046
4047 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
4048
4049         * config/mips/mips.c (struct irix_section_align_entry): Fix
4050         GTY marker.
4051
4052 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
4053
4054         * toplev.c (check_global_declarations): Don't ask for
4055         DECL_ASSEMBLER_NAME unless the function really is declared
4056         static and not defined.
4057
4058 2004-06-03  Matt Austern  <austern@apple.com>
4059
4060         PR c++/15428
4061         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
4062         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
4063         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
4064         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
4065         documentation to reflect the new macro name and to clarify its
4066         meaning.
4067
4068 2004-06-03  Steven Bosscher  <stevenb@suse.de>
4069
4070         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
4071
4072 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
4073
4074         * config/darwin.c (machopic_indirect_data_reference): Copy
4075         the SYMBOL_REF_DECL from the original RTX for the new
4076         non-lazy pointer RTX.
4077
4078 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
4079
4080         * tree.h: Remove include of version.h
4081         * c-cppbuiltin.c: Include version.h
4082         * diagnostic.c: Include version.h
4083         * dwarf2out.c: Include version.h
4084         * toplev.c: Include version.h
4085         * vmsdbgout.c: Include version.h
4086         * Makefile.in: Remove dependency on version.h from TREE_H, and
4087         add dependencies to required .o targets
4088
4089 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
4090
4091         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
4092         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
4093         (TARGET_H): Add insn-modes.h.
4094         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
4095         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
4096         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
4097         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
4098         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
4099         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
4100         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
4101         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
4102         CFGLAYOUT_H.
4103         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
4104         Replace ra.h with RA_H.
4105         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
4106         insn-recog.o): Replace resource.h with RESOURCE_H.
4107         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
4108         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
4109         with SCHED_INT_H.
4110         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
4111         ra-rewrite.o): Replace df.h with DF_H.
4112         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
4113         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
4114         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
4115         (insn-conditions.o): Remove unused reload.h.
4116         * cfglayout.h: Add include guard.  Include basic-block.h.
4117         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
4118         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
4119         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
4120         basic-block.h.
4121         * genconditions.c:  Remove reload.h.
4122         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
4123         hard-reg-set.h, insn-modes.h.
4124         * resource.h: Add include guard.  Include hard-reg-set.h.
4125         * sched-int.h:  Add include guard.  Include insn-attr.h,
4126         basic-block.h, rtl.h.
4127         * target.h: Add include guard.  Include insn-modes.h.
4128         * tree-ssa-live.h: Include partition.h.
4129
4130 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
4131                 Kenneth Zadeck <zadeck@naturalbridge.com>
4132
4133         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
4134         (add_var_to_ssa_edges_worklist): Add value argument.
4135         Update callers.
4136         Use new worklist.
4137         (process_ssa_edge_worklist): New function.
4138         (tree_ssa_ccp): Move worklist processing core to
4139         process_ssa_edge_worklist, and just call that for the two worklists.
4140
4141 2004-06-03  Steven Bosscher  <stevenb@suse.de>
4142
4143         * basic-block.c (tail_recursion_label_list): Don't declare.
4144         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
4145         accordingly.
4146         * cfgbuild.c (find_label_refs): Remove.
4147         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
4148         * cfgcleanup.c (tail_recursion_label_p): Remove.
4149         (merge_blocks_move): Do not check for tail recursion.
4150         (try_optimize_cfg): Likewise.
4151         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
4152         * cfgrtl.c (tail_recursion_label_list): Remove.
4153         * except.c (remove_unreachable_regions): Don't handle
4154         CALL_PLACEHOLDER insns.
4155         (convert_from_eh_region_ranges_1, can_throw_internal,
4156         can_throw_external): Likewise.
4157         * function.c (free_after_compilation): Don't clear
4158         x_tail_recursion_label.
4159         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
4160         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
4161         (reorder_blocks_1): Likewise.
4162         * function.h (struct function): Remove x_tail_recursion_label
4163         member.  Don't define tail_recursion_label.
4164         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
4165         * print-rtl.c (print_rtx): Likewise.
4166         * rtl.def (CALL_PLACEHOLDER): Remove.
4167         * rtl.h (sibcall_use_t): Remove enum.
4168         (optimize_sibling_and_tail_recursive_calls,
4169         replace_call_placeholder): Remove function prototypes.
4170         * stmt.c (tail_recursion_args): Remove.
4171         (optimize_tail_recursion): Remove.
4172         (expand_return): Don't check for possible tail recursion.
4173         * tree.h (optimize_tail_recursion): Remove prototype.
4174
4175 2004-06-02  Jan Hubicka  <jh@suse.cz>
4176
4177         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
4178         return_stmt.
4179
4180 2004-06-02  Jason Merrill  <jason@redhat.com>
4181
4182         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
4183         Do include c-parse.in.
4184
4185 2004-06-02  Eric Christopher  <echristo@redhat.com>
4186
4187         * c-typeck.c (common_type): Don't lose type qualifiers
4188         when creating new variants.
4189
4190 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
4191
4192         PR tree-optimization/14042
4193         PR tree-optimization/14729
4194         PR tree-optimization/14736
4195         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
4196         Check the type which the pointer points to
4197         instead of the pointer types.
4198
4199 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
4200
4201         PR tree-optimization/15738.
4202         * builtins.c (fold_builtin_strchr): Transform
4203         strrchr (s, '\0') to strchr (s, '\0').
4204
4205 2004-06-02  Steven Bosscher  <stevenb@suse.de>
4206
4207         * i386.c (ix86_adjust_cost): Don't increase the cost for
4208         load+operation for PROCESSOR_PENTIUMPRO, it is already
4209         modelled in the DFA description
4210
4211 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
4212
4213         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
4214         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
4215         (ALIAS_H, EMIT_RTL_H): New.
4216         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
4217         (cfgcleanup.o): Add EMIT_RTL_H.
4218         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
4219         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
4220         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
4221         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
4222         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
4223         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
4224         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
4225         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
4226         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
4227         set_mem_size): Move to emit-rtl.h.
4228         * emit-rtl.h: New.
4229         * alias.h: New.
4230
4231 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
4232
4233         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
4234         Call fixup_memory_subreg only if the MEM is equal to 'var'.
4235         Adjust recursive calls to self.
4236         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
4237
4238 2004-06-01  Richard Henderson  <rth@redhat.com>
4239             Andrew Pinski  <pinskia@physics.uc.edu>
4240
4241         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
4242         (primary): Handle offsetof.  Add error productions for faux functions.
4243         Move component_ref objc checking to build_component_ref.
4244         (reswords): Add offsetof.
4245         (rid_to_yy): Add offsetof.
4246         * c-tree.h (build_offsetof): Declare.
4247         * c-common.h (objc_is_public): Declare.
4248         * c-typeck.c (build_component_ref): Check objc_is_public.
4249         (build_offsetof): New.
4250         * stub-objc.c (objc_is_public): New.
4251         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
4252         from is_public.
4253         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
4254         * doc/extend.texi (Offsetof): Move from C++ section to C section
4255         and rewrite for __builtin_offsetof.
4256
4257 2004-06-01  Peter Barada  <peter@the-baradas.com>
4258             Peter Jakubek  <peter@laseranimation.com>
4259
4260         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
4261         a scratch to perform an add to memory.
4262
4263 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
4264
4265         PR target/14018
4266         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
4267         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
4268         m68k_align_funcs): Remove.
4269         (override_options): Remove code to handle -malign-* options.
4270         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
4271         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
4272         (m68k_align_loops_string, m68k_align_jumps_string,
4273         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
4274         m68k_align_funcs): Remove definitions.
4275
4276 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
4277
4278         PR target/15626
4279         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
4280         by the Sun linker in conjunction with the Sun assembler.
4281         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
4282
4283 2004-06-01  Jeff Law  <law@redhat.com>
4284
4285         * stmt.c (expand_decl): Be more selective about calling
4286         mark_reg_pointer.
4287
4288 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
4289
4290         PR objc/7993
4291         * objc-act.c (is_private): Do not emit the 'instance variable %s
4292         is declared private' error.
4293         (is_public): Emit the error after calling is_private.
4294         (lookup_objc_ivar): If the instance variable is private, return 0
4295         - the instance variable is invisible here.
4296
4297 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
4298
4299         * doc/invoke.texi (-static-libgcc): Explicitly mention
4300         non-GNU linkers.
4301
4302 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
4303
4304         PR target/12968
4305         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
4306
4307 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
4308
4309         PR c/15749
4310         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
4311         misuses of structures with flexible array members if
4312         in_system_header.
4313
4314 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
4315
4316         PR target/15693
4317         * config/sparc/sparc.c (compare_operand): New predicate.
4318         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
4319         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
4320         operand is a ZERO_EXTRACT and the second operand is not zero,
4321         force the former to a register.
4322         (cmpdi expander): Likewise.
4323
4324 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
4325
4326         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
4327         looks at.
4328         * alias.c (alias_invariant_size): Make alias_invariant_size
4329         static, fix GTY marker.
4330
4331 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
4332
4333         PR tree-optimization/15743.
4334         * builtins.c (fold_builtin_1): Fold index() and rindex().
4335
4336 2004-05-31  Roger Sayle  <roger@eyesopen.com>
4337
4338         PR middle-end/15069
4339         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
4340         into "X < 0" (where C is the signbit) if X's type is a full mode.
4341
4342 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4343
4344         * pa.md: Disable the peephole2 patterns that generate indexed
4345         floating-point stores when indexing is disabled.
4346
4347 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
4348
4349         * c-pretty-print.c (pp_c_left_bracket): Make a function.
4350         (pp_c_right_bracket): Likewise.
4351         (pp_c_star): Likewise.
4352         (pp_c_ampersand): Define.
4353         * c-pretty-print.h (pp_c_left_bracket): Declare.
4354         (pp_c_right_bracket): Likewise.
4355         (pp_c_star): Likewise.
4356         (pp_c_ampersand): Likewise.
4357
4358 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
4359
4360         * config/sol2.h (__enable_execute_stack): ANSIfy function
4361         definition.
4362
4363 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
4364
4365         * c-incpath.c (add_path): Canonicalize paths to use '/' if
4366         HAVE_DOS_BASED_FILESYSTEM.
4367
4368 2004-05-31  Steven Bosscher  <stevenb@suse.de>
4369
4370         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
4371         Only look at case labels if the immediate dominator is also
4372         the only predecessor.  Don't look for more case labels if the
4373         first seen is a case range.
4374
4375 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
4376
4377         * builtins.c: Add a prototype for fold_builtin_strchr().
4378
4379 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
4380
4381         Revert this patch:
4382         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
4383
4384         * combine.c (gen_binary): Remove.
4385         (known_cond, simplify_shift_const
4386         find_split_point, combine_simplify_rtx,
4387         simplify_if_then_else, simplify_set,
4388         simplify_logical, expand_field_assignment,
4389         extract_left_shift, force_to_mode,
4390         if_then_else_cond, apply_distributive_law,
4391         simplify_and_const_int, simplify_shift_const,
4392         gen_lowpart_for_combine, simplify_comparison,
4393         reversed_comparison): Replace with
4394         simplify_gen_binary, simplify_gen_relational or
4395         distribute_and_simplify_rtx.
4396         (distribute_and_simplify_rtx): New function.
4397
4398 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4399
4400         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
4401         when generating PIC code.
4402
4403 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
4404
4405         * c-decl.c (c_expand_body_1): Remove and fold back into ...
4406         (c_expand_body): here.
4407         (c_expand_decl): Move to ...
4408         * c-common.c (c_expand_decl): Here and remove check for nested
4409         functions.
4410         * c-common.h (c_expand_decl): Add prototype.
4411         * c-tree.h (c_expand_decl): Remove.
4412
4413 2004-05-30  Roger Sayle  <roger@eyesopen.com>
4414
4415         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
4416         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
4417         fold_mathfn_compare, fold_inf_compare, fold,
4418         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
4419         Use constant_boolean_node where appropriate.  Don't bother using
4420         fold_convert on the second argument to omit_one_operand.
4421
4422 2004-05-30  Roger Sayle  <roger@eyesopen.com>
4423
4424         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
4425         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
4426         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
4427         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
4428         Add missing (but documented) tree nodes to the index.
4429
4430 2004-05-30  Steven Bosscher  <stevenb@suse.de>
4431
4432         PR tree-optimization/14819
4433         * builtins.c (fold_builtin_strchr): New.
4434         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
4435         with fold_builtin_strchr().
4436
4437 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
4438
4439         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
4440         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
4441         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
4442         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
4443         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
4444         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
4445         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
4446         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
4447         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
4448         formatting.
4449
4450 2004-05-30  Steven Bosscher  <stevenb@suse.de>
4451
4452         * gimplify.c (sort_case_labels): New.  Split out from...
4453         (gimplify_switch_expr): ...here.  Use it.
4454         * tree-eh.c (lower_try_finally_switch): Sort the labels of
4455         the SWITCH_EXPR created here before leaving the function.
4456         * tree.c (sort_case_labels): Add prototype.
4457
4458 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
4459
4460         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
4461         of BOOLEAN_TYPE.
4462
4463 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
4464
4465         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
4466         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
4467         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
4468         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
4469         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
4470         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
4471         comment typos.  Follow spelling conventions.
4472
4473 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
4474
4475         * gengtype-yacc.y: Add NESTED_PTR token.
4476         (option): Record `nested_ptr' option.
4477         * gengtype-lex.l: Handle `nested_ptr' keyword.
4478         * gengtype.c (walk_type): Process `nested_ptr' option.
4479         * gengtype.h (struct nested_ptr_data): New.
4480         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
4481         * stringpool.c (struct string_pool_data): Make 'entries' point to
4482         ht_identifier instead of tree.
4483         (gt_pch_save_stringpool): Don't adjust pointers.
4484         (gt_pch_restore_stringpool): Call ht_load.
4485
4486 2004-05-29  Jason Merrill  <jason@redhat.com>
4487
4488         * gimplify.c (gimplify_expr): Don't build a statement list
4489         if no gimplification was necessary.
4490
4491 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
4492
4493         * pretty-print.c (pp_base_format_text): Support %< instead of %`
4494         and %> as well as %'.
4495         * c-format.c: Use %< and %>.
4496         (gcc_diag_char_table, gcc_cdiag_char_table,
4497         gcc_cxxdiag_char_table): Update.
4498
4499 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
4500
4501         * c-typeck.c (common_type): Correct comment.
4502
4503 2004-05-29  Peter Barada  <peter@the-baradas.com>
4504
4505         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
4506         * config/m68k/m68k.c (const_method): Likewise.
4507         * config/m68k/m68k.c (const_int_cost): Likewise.
4508         * config/m68k/m68k.c (const_int_cost): Likewise.
4509         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
4510
4511 2004-05-29  Peter Barada  <peter@the-baradas.com>
4512
4513         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
4514         addressing.
4515         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
4516         movsi,movhi,movqi insn patterns.
4517
4518 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
4519
4520         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
4521
4522         PR target/15720
4523         * config/darwin.c (machopic_indirect_call_target): Copy
4524         the SYMBOL_REF_DECL from the original RTX for the new
4525         stub RTX.
4526
4527 2004-05-28  DJ Delorie  <dj@redhat.com>
4528
4529         * stor-layout.c (place_field): Revert erroneous commit.
4530
4531 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
4532
4533         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
4534         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
4535         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
4536         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
4537         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
4538         vec_ste): Remove type checks for integral parameters and literals
4539         from '..._args_eq' macros.
4540
4541 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
4542
4543         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
4544
4545 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
4546
4547         * testsuite/g++.dg/charset/function.cc: New.
4548
4549         * testsuite/gcc.dg/charset/function.c: New.
4550
4551         * c-decl.c (c_make_fname_decl): Free return value from
4552         fname_as_string.
4553
4554         * cp/decl.c (cp_make_fname_decl): Free return value from
4555         fname_as_string.
4556
4557         * c-common.c (fname_as_string): Translate if necessary.
4558
4559 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
4560
4561         * stringpool.c: Add comments to PCH saving/restoring routines.
4562
4563 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
4564
4565         * c-common.c (c_estimate_num_insns_1): Kill.
4566         (c_estimate_num_insns): Kill.
4567         * c-common.h (c_estimate_num_insns): Kill.
4568
4569         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
4570         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
4571         Remove comment about not checking for
4572         _POSIX_PRIORITY_SCHEDULING.
4573         * gthr-posix.c: Likewise.
4574
4575 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
4576             Roger Sayle  <roger@eyesopen.com>
4577
4578         PR rtl-optimization/15649
4579         Add LTGT_EXPR and improve pretty-printing of unordered
4580         comparisons.
4581         * c-common.c (c_common_truthvalue_conversion):
4582         Handle LTGT_EXPR.
4583         * c-typeck.c (build_binary_op): Likewise.
4584         * dojump.c (do_jump): Likewise.
4585         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
4586         * predict.c (tree_predict_by_opcode): Likewise.
4587         * real.c (real_compare): Likewise.
4588         * tree-cfg.c (verify_expr): Likewise.
4589         * tree-inline.c (estimate_num_insns_1): Likewise.
4590         * tree-pretty-print.c (dump_generic_node): Likewise.
4591         Handle ORDERED_EXPR, UNORDERED_EXPR.
4592         (op_symbol): Print unordered comparisons differently
4593         than ordered ones.
4594         * tree.def (LTGT_EXPR): New '<' tree code.
4595         * doc/c-tree.texi (Expressions): Document floating-point
4596         comparison nodes.
4597
4598         Fold comparisons between floating point values.
4599         * fold-const.c (enum comparison_code): New, from
4600         #define'd constants.  Define compcodes for unordered
4601         comparisons and for invalid transformations.
4602         (invert_tree_comparison): Add "honor_nans" parameter.
4603         (fold_truthop): Revamp to work on floating-point types too.
4604         (comparison_to_compcode): Support unordered comparisons.
4605         Use new enum comparison_code.
4606         (compcode_to_comparison): Likewise.
4607         (combine_compcodes): New function.
4608         (invert_truthvalue): Let invert_tree_comparison decide
4609         whether it is valid to fold the comparison.  Fold ORDERED
4610         and UNORDERED even if flag_unsafe_math_optimizations is off,
4611         and the remaining even if flag_unsafe_math_optimizations
4612         is off but we are under -fno-trapping-math.
4613         (fold_relational_const): Integer modes do not honor NaNs.
4614
4615 2004-05-28  Paul Brook  <paul@codesourcery.com>
4616
4617         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
4618
4619 2004-05-28  Paul Brook  <paul@codesourcery.com>
4620
4621         * config/arm/arm.c (thumb_force_lr_save): New function.
4622         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
4623         thumb_output_function_prologue): Use it.
4624         (thumb_expand_prologue): Set lr_save_eliminated.
4625
4626 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
4627
4628         * config/mips/mips.md (extendsidi2): Tie the source and destination
4629         of the register alternative.  Split it into nothing.
4630
4631 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
4632
4633         * rtl.h (skip_consecutive_labels): Declare.
4634         * emit-rtl.c (skip_consecutive_labels): New function.
4635         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
4636         * jump.c (follow_jumps): Say what null return values mean.
4637
4638 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
4639
4640         PR target/13250
4641         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
4642
4643 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
4644
4645         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
4646         libgcc-std.ver.
4647         * config/sh/libgcc-std.ver: New file.
4648
4649 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
4650
4651         * except.c: Revert change of 2004-05-26.
4652         * config/i386/i386.md: Revert change of 2004-05-27.
4653
4654 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
4655
4656         * configure.ac: Remove --enable-tree-browser option.
4657         Define TREEBROWSER when ac_tree_checking is defined.
4658         * configure: Rebuilt.
4659
4660 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
4661
4662         * expr.c (store_constructor): Restore sanity check on
4663         the size of the type before clearing.
4664
4665 2004-05-27  Jan Hubicka  <jh@suse.cz>
4666
4667         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
4668
4669 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
4670
4671         * combine.c (gen_binary): Remove.
4672         (known_cond, simplify_shift_const
4673         find_split_point, combine_simplify_rtx,
4674         simplify_if_then_else, simplify_set,
4675         simplify_logical, expand_field_assignment,
4676         extract_left_shift, force_to_mode,
4677         if_then_else_cond, apply_distributive_law,
4678         simplify_and_const_int, simplify_shift_const,
4679         gen_lowpart_for_combine, simplify_comparison,
4680         reversed_comparison): Replace with
4681         simplify_gen_binary, simplify_gen_relational or
4682         distribute_and_simplify_rtx.
4683         (distribute_and_simplify_rtx): New function.
4684         * simplify-rtx.c (simplify_binary_operation):
4685         Use nonzero_bits to simplify ANDs where we are
4686         turning off bits already known to be off in OP0.
4687
4688 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
4689
4690         PR target/14478
4691         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
4692
4693 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
4694
4695         PR middle-end/14084
4696         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
4697         to size of decl.
4698
4699 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
4700
4701         PR/14924
4702         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
4703
4704 2004-05-26  Roger Sayle  <roger@eyesopen.com>
4705
4706         * tree.h: Fix comment typo.
4707
4708 2004-05-27  Steven Bosscher  <stevenb@suse.de>
4709
4710         * gimplify.c (compare_case_labels): New function.
4711         (gimplify_switch_expr): Sort case labels, and make sure the
4712         last label in the label vector is the default case.
4713         * tree-cfg.c (group_case_labels): New function.
4714         (build_tree_cfg): Cleanup redundant labels and group case labels
4715         before creating edges.
4716         (cleanup_dead_labels): Handle GOTO_EXPRs.
4717         (find_case_label_for_value): Use a binary search to find the
4718         case label for the given value.
4719         * tree-gimple.c: Mention that labels are sorted, and that the
4720         last label must be the default.
4721
4722 2004-05-27  Jan Hubicka  <jh@suse.cz>
4723
4724         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
4725
4726 2004-05-27  Jan Hubicka  <jh@suse.cz>
4727
4728         * i386.md (UNSPECV_EH_RETURN): Kill.
4729         (eh_return): Use jump_insn.
4730         (eh_return_si, eh_return_di): Change pattern to jump instruction.
4731
4732 2004-05-26  Jan Hubicka  <jh@suse.cz>
4733
4734         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
4735         not loop optimizing.
4736
4737 2004-05-26  Jan Hubicka  <jh@suse.cz>
4738
4739         * except.c (can_throw_internal):  Notice RESX instructions.
4740
4741 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
4742
4743         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
4744         of the two sizes to assemble_integer.
4745
4746 2004-05-25  Paul Brook  <paul@codesourcery.com>
4747
4748         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
4749         pointless #ifdef.
4750
4751 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
4752
4753         * Makefile.in (top_builddir): Define to .
4754
4755 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
4756
4757         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
4758         top-level detects, except when in-tree ld is being cross-built.
4759         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
4760         then AS only if target is host.
4761         * configure: Rebuilt.
4762
4763 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
4764
4765         * global.c (global_alloc): Call make_accurate_live_analysis.
4766         (record_one_conflict): Remove dead code.
4767         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
4768         (bb_info): New structure.
4769         (BB_INFO, BB_INFO_BY_INDEX): New macros.
4770         (allocate_bb_info, free_bb_info, mark_reg_change,
4771         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
4772         modify_bb_reg_pav, calculate_reg_pav,
4773         make_accurate_live_analysis): New functions.
4774
4775 2004-05-25  Devang Patel  <dpatel@apple.com>
4776
4777         * alias.c (init_alias_analysis): Use ggc_calloc instead of
4778         xrealloc.
4779         (end_alias_analysis): Use ggc_free instead fo free.
4780
4781 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
4782
4783         PR target/15546
4784         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
4785         as needed to be outputted.
4786
4787 2004-05-25  Jan Hubicka  <jh@suse.cz>
4788
4789         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
4790
4791 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
4792         Mostafa Hagog  <mustafa@il.ibm.com>
4793
4794         * Makefile.in (modulo-sched.o, ddg.o): New.
4795         * ddg.h, ddg.c, modulo-sched.c: New files.
4796         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
4797         internals to "dupicate_insn".
4798         (duplicate_insn): New function.
4799         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
4800         declarations.
4801         * common.opt (fmodulo-sched): New flag.
4802         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
4803         Remove static and forward declaration.
4804         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
4805         functions.
4806         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
4807         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
4808         declarations.
4809         * flags.h (flag_modulo_sched): New flag.
4810         * opts.c (common_handle_option): Handle modulo-sched flag.
4811         * params.def (max-sms-loop-number, sms-max-ii-factor,
4812         sms-dfa-history, sms-loop-average-count-threshold): New
4813         parameters.
4814         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
4815         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
4816         parameters.
4817         * passes.c ("sms", "sms-vcg"): New dumps.
4818         (rest_of_handle_sched): Call sms_schedule.
4819         * rtl.h (sms_schedule): New declaration.
4820         * timevar.def (TV_SMS): New.
4821         * toplev.c (flag_modulo_sched): Initialize.
4822         (f_options): Handle -fmodulo-sched option.
4823         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
4824         * docs/passes.texi: Document new SMS pass.
4825
4826 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
4827
4828         * Makefile.in (OBJS): Add rtlhooks.o.
4829         (rtlanal.o): Depend on function.h.
4830         (cse.o): Depend on rtlhooks-def.h.
4831         (combine.o): Depend on rtlhooks-def.h.
4832         (rtlhooks.o): New rule.
4833         * combine.c: Include rtlhooks-def.h.
4834         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
4835         num_sign_bit_copies, cached_num_sign_bit_copies,
4836         num_sign_bit_copies1): Move most of the code to rtlanal.c.
4837         (reg_nonzero_bits_for_combine,
4838         reg_num_sign_bit_copies_for_combine): New functions holding
4839         the remnants of the above.
4840         (combine_rtl_hooks): New.
4841         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
4842         * cse.c: Include rtlhooks-def.h.
4843         (cse_rtl_hooks): New.
4844         (cse_main): Set rtl_hooks instead of gen_lowpart.
4845         * emit-rtl.c (gen_lowpart): Remove.
4846         (gen_lowpart_general): Move to rtlhooks.c.
4847         * rtl.h (nonzero_bits, num_sign_bit_copies,
4848         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
4849         (gen_lowpart_general): Remove.
4850         (gen_lowpart): Temporarily redefine as a macro.
4851         * rtlanal.c: Include function.h.
4852         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
4853         num_sign_bit_copies, cached_num_sign_bit_copies,
4854         num_sign_bit_copies1): New, from combine.c.
4855         * rtlhooks.c: New file.
4856         * rtlhooks-def.h: New file.
4857
4858 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
4859
4860         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
4861         to support 32-bit -mint8 mode.
4862
4863         * doc/invoke.texi (-mint8): Added documentation for the -mint8
4864         option in the AVR architecture.
4865
4866 2004-05-24  Mike Stump  <mrs@apple.com>
4867
4868         * doc/install.texi: Document that dejagnu 1.4.4 is required.
4869
4870 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
4871
4872         * intl.h (open_quote, close_quote): New.
4873         * intl.c (open_quote, close_quote): New.
4874         (gcc_init_libintl): Set them.
4875         * pretty-print.c: Include "intl.h".
4876         (pp_base_format_text): Support 'q' format flag and %` and %'
4877         formats.  Use ' instead of ` in comments.
4878         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
4879         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
4880         foramt_types_orig): Describe these new formats.
4881         (decode_format_attr, check_function_format,
4882         check_format_info_main): Use these new formats.
4883         (status_warning): Use ATTRIBUTE_GCC_DIAG.
4884         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
4885         check these formats to 3.5.
4886
4887 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4888
4889         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
4890         (BACKEND): Reflect this.
4891         (LIBDEPS): Move CPPLIB before LIBIBERTY.
4892         (LIBS): Likewise.
4893
4894 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
4895
4896         PR tree-optimization/14197
4897         * builtins.c: Include "tree-gimple.h"
4898         (readonly_data_expr): Use get_base_address.  Make sure to call
4899         decl_readonly_section only on trees it can handle.
4900         * tree-gimple.c (get_base_address): Accept STRING_CST and
4901         CONSTRUCTOR expressions.
4902         * Makefile.in: Update dependencies.
4903
4904 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
4905
4906         Move libcpp to the toplevel.
4907         * Makefile.in: Remove references to libcpp files,
4908         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
4909         and change hashtable.h to that.
4910         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
4911         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
4912         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
4913         * configure: Regenerate.
4914         * config.in: Regenerate.
4915         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
4916         * cppcharset.c: Removed.
4917         * cpperror.c: Removed.
4918         * cppexp.c: Removed.
4919         * cppfiles.c: Removed.
4920         * cpphash.c: Removed.
4921         * cpphash.h: Removed.
4922         * cppinit.c: Removed.
4923         * cpplex.c: Removed.
4924         * cpplib.c: Removed.
4925         * cpplib.h: Removed.
4926         * cppmacro.c: Removed.
4927         * cpppch.c: Removed.
4928         * cpptrad.c: Removed.
4929         * cppucnid.h: Removed.
4930         * cppucnid.pl: Removed.
4931         * cppucnid.tab: Removed.
4932         * hashtable.c: Removed.
4933         * hashtable.h: Removed.
4934         * line-map.c: Removed.
4935         * line-map.h: Removed.
4936         * mkdeps.c: Removed.
4937         * mkdeps.h: Removed.
4938         * stringpool.h: Include symtab.h instead of hashtable.h.
4939         * tree.h: Include symtab.h instead of hashtable.h.
4940         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
4941
4942 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
4943
4944         * gcc.c (struct prefix_list): Add forward declaration.
4945         (do_spec_path): New function, extracted from...
4946         (do_spec_1) <'D'>: ... here.  Drop support for
4947         SPACE_AFTER_L_OPTION.
4948         (do_spec_1) <'I'>: Use do_spec_path.
4949         (process_command): Do not store the 'include' suffix
4950         in include_prefixes.
4951         * system.h: Poison SPACE_AFTER_L_OPTION.
4952
4953 2002-05-23  Roger Sayle  <roger@eyesopen.com>
4954
4955         * fold-const.c (non_lvalue): Explicitly list the tree codes that
4956         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
4957
4958 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
4959
4960         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
4961         Update based on printed manual.  Enable setting of offsets for
4962         FSFPRINT and move it to gcc-common.texi.
4963         * doc/gcc.texi: Update FSF printing details.
4964         * doc/gccint.texi: Remove FSF printing details.
4965
4966 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
4967
4968         * config/rs6000/t-rs6000: Remove the disabling -Werror.
4969
4970 2004-05-22  Roger Sayle  <roger@eyesopen.com>
4971
4972         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
4973         expand_builtin_strrchr, expand_builtin_strpbrk,
4974         expand_builtin_mempcpy, expand_builtin_memcmp,
4975         expand_builtin_strcmp, expand_builtin_strncmp,
4976         expand_builtin_strcat, std_expand_builtin_va_start,
4977         std_expand_builtin_va_arg, expand_builtin_va_copy,
4978         expand_builtin_signbit, fold_builtin_cabs,
4979         fold_builtin_logarithm, fold_builtin_mempcpy,
4980         fold_builtin_signbit, fold_builtin_isascii,
4981         fold_builtin_toascii, fold_builtin_isdigit,
4982         fold_builtin_1, build_function_call_expr,
4983         simplify_builtin_strchr, simplify_builtin_strrchr,
4984         simplify_builtin_strpbrk, simplify_builtin_strncpy,
4985         simplify_builtin_memcmp, simplify_builtin_strcmp,
4986         simplify_builtin_strncmp, simplify_builtin_strncat,
4987         simplify_builtin_strspn, simplify_builtin_strcspn,
4988         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
4989         to build with calls to build2, build3 or omit_one_operand.
4990
4991 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
4992
4993         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
4994         section when generating EABI code.
4995
4996 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
4997
4998         PR 15546
4999         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
5000         Call mark_decl_referenced on the SYMBOL_REF_DECL.
5001
5002 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
5003
5004         * c-common.c (c_common_truthvalue_conversion): Handle
5005         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
5006         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
5007         i.e. set the type to truthvalue_type_node and return.
5008
5009 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
5010
5011         * tree.h (struct tree_decl): Add possibly_inlined bit.
5012         (DECL_POSSIBLY_INLINED): New accessor macro.
5013         * cgraph.h: Remove declaration of cgraph_inline_hash.
5014         * cgraph.c: Remove definition of cgraph_inline_hash.
5015         (hash_node): Revert to hashing DECL_UID.
5016         (eq_node): Take two pointers to cgraph_node structures.
5017         Compare DECL_UIDs.
5018         (cgraph_remove_node): Pass the node directly to htab_find_slot.
5019         (cgraph_varpool_hash_node): Rename hash_varpool_node;
5020         hash on DECL_UID.
5021         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
5022         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
5023         (cgraph_node): Allocate a temporary node on the stack, fill in
5024         its DECL field, and pass that to htab_find_slot.
5025         (cgraph_varpool_node): Likewise.
5026         (cgraph_function_possibly_inlined_p): If global info is ready,
5027         return the DECL_POSSIBLY_INLINED bit.
5028         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
5029         instead of mucking with cgraph_inline_hash.
5030
5031 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
5032
5033         * doc/contrib.texi: Add g77 contributors.
5034
5035 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
5036
5037         * calls.c (initialize_argument_information): Forbid sibcalls if a
5038         callee-copied argument is stored in the current function's frame.
5039
5040 2004-05-22  Eric Christopher  <echristo@redhat.com>
5041
5042         * fix-header.c (read_scan_file): Update for add_path change.
5043
5044 2004-05-22  Ben Elliston  <bje@au.ibm.com>
5045
5046         * c.opt (Wmissing-include-dirs): New.
5047         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
5048         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
5049         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
5050         * c-incpath.h (add_path): Add fourth (bool) argument.
5051         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
5052         (add_standard_paths): Likewise.
5053         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
5054         is used and the directory was user-supplied via -I.
5055         (add_path): Set p->user_supplied_p.  Remove duplicated code by
5056         using add_cpp_dir_path ().
5057         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
5058         (struct cpp_dir): Add user_supplied_p.
5059         * doc/invoke.texi (Warning Options): Document new option.
5060
5061 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
5062
5063         * fold-const.c (fold_read_from_constant_string): Convert result to
5064         requested type.
5065
5066 2004-05-21  Richard Henderson  <rth@redhat.com>
5067
5068         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
5069         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
5070         Don't mark VA_ARG_EXPRs volatile here.
5071         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
5072
5073 2004-05-21  Richard Henderson  <rth@redhat.com>
5074
5075         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
5076         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
5077
5078 2004-05-21  Roger Sayle  <roger@eyesopen.com>
5079
5080         * fold-const.c (fold, fold_relational_hi_lo,
5081         nondestructive_fold_binary_to_constant,
5082         fold_read_from_constant_string): Use fold_convert instead of convert.
5083         * builtins.c (simplify_builtin, simplify_builtin_strstr,
5084         simplify_builtin_strchr, simplify_builtin_strrchr,
5085         simplify_builtin_strpbrk): Use fold_convert instead of convert.
5086
5087 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
5088
5089         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
5090         is NULL.
5091
5092 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
5093
5094         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
5095         override sparc.h definition.
5096
5097 2004-05-20  Roger Sayle  <roger@eyesopen.com>
5098
5099         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
5100         get_unwidened, get_narrower): Replace build with build2.
5101         * fold-const.c (negate_expr, associate_trees, size_binop,
5102         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
5103         pedantic_omit_one_operand, distribute_bit_expr,
5104         make_bit_field_ref, optimize_bit_field_compare,
5105         decode_field_reference, range_binop, make_range,
5106         build_range_check, fold_range_test, fold_truthop,
5107         optimize_minmax_comparison, extract_muldiv_1,
5108         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
5109         fold_inf_compare, fold_single_bit_test, fold,
5110         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
5111         Likewise replace build with either build2 or build3.
5112
5113 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
5114
5115         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
5116         * calls.c (prepare_call_address): Don't test
5117         NO_RECURSIVE_FUNCTION_CSE.
5118         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
5119         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5120         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5121         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5122         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5123         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5124         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5125         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5126         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5127         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5128         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5129         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
5130         Likewise.
5131         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
5132         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
5133         * doc/tm.texi (Costs): Remove documentation for
5134         NO_RECURSIVE_FUNCTION_CSE.
5135
5136 2004-05-20  Paul Brook  <paul@codesourcery.com>
5137
5138         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
5139         * unwind-dw2.c (extract_cie_info): Ditto.
5140         (_Unwind_FrameState): Change retaddr_column to word type.
5141
5142 2004-05-20  Roger Sayle  <roger@eyesopen.com>
5143
5144         PR middle-end/3074
5145         * fold-const.c (strip_compound_expr): Delete function.
5146         (count_cond): Delete function.
5147         (fold_binary_op_with_conditional_arg): Only perform transformations
5148         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
5149         when a is constant.  This greatly simplifies this routine.
5150
5151         * tree.c (saved_expr_p): Delete function.
5152         * tree.h (saved_expr_p): Delete function prototype.
5153
5154 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
5155
5156         * common.opt (ftree-loop-optimize): Remove.
5157
5158 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
5159
5160         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
5161         (NM_FOR_TARGET): Use := and $(shell).
5162         (mainversion): Remove unused variable.
5163
5164 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5165
5166         * reorg.c (delete_from_delay_slot): If we have a barrier after the
5167         sequence containing the insn to be deleted, always reemit it.
5168
5169 2004-05-20  Richard Henderson  <rth@redhat.com>
5170
5171         PR 15454
5172         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
5173         * function.c (expand_function_start): Expand static_chain_decl by hand.
5174         * gimplify.c (create_tmp_var_name): Export.
5175         * tree-gimple.h (create_tmp_var_name): Declare.
5176
5177 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
5178
5179         * rs6000.c (print_operand) <case 'z'>: Call
5180         mark_decl_referenced before assemble_name.
5181
5182 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
5183
5184         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
5185         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
5186         (cgraph_varpool_node): Hash on the pointer to the decl, not
5187         the DECL_UID.  Fixes 64-bit bootstrap failure.
5188
5189 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
5190
5191         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
5192         we don't earlyclobber operands used in the second insn.
5193
5194 2004-05-20  Steven Bosscher  <stevenb@suse.de>
5195
5196         * tree-mudflap.c: Formatting fixes.
5197
5198 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
5199
5200         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
5201         * gengtype.c (open_base_files): Include reload.h in ifiles.
5202         * reload.h (reg_equiv_memory_loc_varray): Declare.
5203         * reload1.c (reg_equiv_memory_loc_varray): New variable.
5204         (init_reload): Initialize it.
5205         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
5206         reg_equiv_memory_loc_varray to size 0.
5207         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
5208         growing reg_equiv_memory_loc_varray to the desired size.
5209         * passes.c (rest_of_handle_old_regalloc): Likewise.
5210         * reload.c: Amend comment on calling init_reload.
5211
5212 2004-05-20  Nick Clifton  <nickc@redhat.com>
5213
5214         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
5215         with 'TRAMP' in the body of the macro definition.
5216
5217 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
5218
5219         PR target/15383
5220         * config/ia64/ia64.c (ia64_expand_compare): Don't check
5221         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
5222         cmptf_libfunc isn't set.
5223         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
5224         conventions.
5225         (ia64_sysv4_init_libfuncs): New.
5226
5227         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
5228         ia64_sysv4_init_libfuncs.
5229
5230 2004-05-20  Falk Hueffner  <falk@debian.org>
5231
5232         PR other/15526
5233         * libgcc2.c (__mulvsi3): Fix overflow test.
5234
5235 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
5236
5237         PR c/14171
5238         * reg-stack.c (nan): Rename to ...
5239         (not_a_num): Here.
5240         (reg_to_stack): Rename nan to not_a_num.
5241         (subst_stack_regs_pat): Likewise.
5242         (convert_regs_entry): Likewise.
5243         (convert_regs_1): Likewise.
5244
5245         * tree-cfg.c (find_case_label_for_value): Replace call to
5246         simple_cst_equal with tree_int_cst_equal.
5247
5248 2004-05-19  Jeff Law <law@redhat.com>
5249
5250         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
5251         If the operand is for a use, then strip away the SSA_NAME, do not
5252         strip away the SSA_NAME for a set.  Never call release_ssa_name.
5253         (mark_def_sites): Appropriately pass additional argument to
5254         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
5255         then set the VDEF_RESULT to the VDEF_OP.
5256         (set_def_block): Strip away any SSA_NAME to get to the real
5257         underlying variable.
5258
5259         * tree-ssa-phiopt.c (value_replacement): Handle the case where
5260         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
5261         BB directly.
5262
5263 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5264
5265         PR c++/15463
5266         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
5267         result of inverse.
5268
5269         PR rtl-optimization/15274
5270         * loop-iv.c (determine_max_iter, shorten_into_mode,
5271         iv_number_of_iterations): Handle constants correctly.
5272         * rtl.h (get_mode_bounds): Declaration changed.
5273         * stor-layout.c (get_mode_bounds): Return a constant suitable for
5274         the target mode.
5275
5276         PR rtl-optimization/14692
5277         * loop-unswitch.c (may_unswitch_on): Try folding the result.
5278         (unswitch_single_loop): Work correctly when may_unswitch_on
5279         returns a folded constant.
5280
5281         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
5282         * simplify-rtx.c (simplify_const_relational_operation): Optimize
5283         comparisons with mode bounds.
5284
5285         * function.c (struct temp_slot): Add new field prev.
5286         (free_after_compilation, init_temp_slots): Free new fields.
5287         (cut_slot_from_list, insert_slot_to_list,
5288         temp_slots_at_level, max_slot_level, move_slot_to_level,
5289         make_slot_available): New functions.
5290         (assign_stack_temp_for_type, combine_temp_slots,
5291         find_temp_slot_from_address, preserve_temp_slots,
5292         preserve_rtl_expr_result, free_temp_slots,
5293         free_temps_for_rtl_expr, pop_temp_slots): Work with
5294         the new structure of lists.
5295         (mark_all_temps_used): Removed.
5296         * function.h (struct function): Field x_temp_slots
5297         replaced by x_used_temp_slots and x_avail_temp_slots.
5298         (temp_slots): Replaced by ...
5299         (used_temp_slots, avail_temp_slots): New.
5300         * tree.h (mark_all_temps_used): Declaration removed.
5301
5302         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
5303         simplify_using_assignment): Take the expression out of
5304         the expr_list wrapper.
5305
5306         * loop-iv.c (iv_number_of_iterations): Improve clasification of
5307         infinite loops.
5308
5309 2004-05-19  Roger Sayle  <roger@eyesopen.com>
5310
5311         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
5312         costs should be based on code size when optimizing for size.
5313
5314 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
5315
5316         * fold-const.c: Remove non-printable character 160.
5317
5318 2004-05-19  Nick Clifton  <nickc@redhat.com>
5319
5320         * doc/invoke.texi (ARM Options): Fix typo.
5321         Remove descrption of -mshort-load-bytes and
5322         -mno-short-load-bytes.
5323
5324         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
5325         missing parenthesis.
5326         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
5327         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
5328
5329 2004-05-19  Steven Bosscher  <stevenb@suse.de>
5330
5331         * expr.c (store_constructor): Build loop start and end by hand
5332         instead of via loop functions from stmt.c.
5333         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
5334         Remove the code to expand them.
5335
5336         * stmt.c (loop_stack): Remove this and everything related.
5337         (struct nesting, enum nesting_desc): Update.
5338         (expand_fixup): Likewise.
5339         (expand_loop_start, expand_start_loop_continue_elsewhere,
5340         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
5341         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
5342         expand_exit_loop_if_false, expand_exit_loop_top_cond,
5343         expand_exit_something): Remove.
5344         * tree.h: Remove prototypes.
5345
5346 2004-05-18  Mike Stump  <mrs@apple.com>
5347             Devang Patel  <dpatel@apple.com>
5348
5349         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
5350         if this label is for eh.
5351         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
5352         * config/darwin.c (darwin_emit_unwind_label): Likewise.
5353         * dwarf2out.c (output_call_frame_info): Likewise.
5354         * output.h (default_emit_unwind_label): Likewise.
5355         * target.h (unwind_label): Likewise.
5356         * varasm.c (default_emit_unwind_label): Likewise.
5357
5358         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
5359         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
5360         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
5361         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
5362         DEBUG_RANGES_SECTION): Define.
5363
5364 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
5365
5366         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
5367         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
5368         (cgraph_varpool_node):
5369         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
5370         (cgraph_function_possibly_inlined_p): Use the decl itself for
5371         the key, not DECL_ASSEMBLER_NAME.
5372         (change_decl_assembler_name): No need to muck with the hash tables.
5373         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
5374         Delete.
5375         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
5376         for the key, not DECL_ASSEMBLER_NAME.
5377         * cgraph.h: Remove prototypes of deleted functions.
5378         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
5379         (mark_decl_referenced): New function.
5380         * tree.h: Prototype mark_decl_referenced.
5381         * final.c (output_addr_const) <case SYMBOL_REF>: Call
5382         mark_decl_referenced before assemble_name.
5383         * c-decl.c (finish_decl): Use mark_decl_referenced.
5384
5385 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
5386             Jeff Law <law@redhat.com>
5387
5388         * tree-ssa-phiopt.c (abs_replacement): New function.
5389         (empty_block_p): New function extracted from...
5390         (candidate_bb_for_phi_optimization): Break out empty block test.
5391         (conditional_replacement): Use empty_block_p.
5392         (value_replacement): Similarly.
5393
5394         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
5395         * tree-ssa-phiopt.c: Include flags.h.
5396         (conditional_replacement): Remove argument names from prototype.
5397         Minor formatting and comment fixes.
5398         (tree_ssa_phiopt): If conditional_replacement returns false, then
5399         call value_replacement.
5400         (value_replacement): New function.
5401
5402 2004-05-18  Jeff Law  <law@redhat.com>
5403
5404         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
5405         from conditional_replacement.
5406         (candidate_bb_for_phi_optimization): Similarly.
5407         (conditional_replacement): Use replace_phi_with_stmt and
5408         candidate_bb_for_phi_optimization.
5409
5410         * tree-ssa-phiopt.c: Fix various formatting issues.
5411
5412 2004-05-18  Steven Bosscher  <stevenb@suse.de>
5413
5414         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
5415         s390_expand_cmpmem): Do not use expand_start_loop and
5416         expand_end_loop, instead build the loop manually.
5417
5418 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
5419
5420         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
5421         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
5422
5423 2004-05-17  Jeff Law  <law@redhat.com>
5424
5425         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
5426         * flags.h (flag_delete_null_pointer_checks): Here.
5427         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
5428         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
5429         (add_phi_arg, remove_phi_arg_num): Similarly.
5430         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
5431         property into PHI nodes.
5432         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
5433         (record_equivalences_from_phis): If all PHI arguments are known to be
5434         nonzero, then the result must be nonzero as well.
5435         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
5436         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
5437         appropriately.  Walk the USE-DEF chains and propagate nonzero property
5438         as appropriate.
5439         * tree.h (PHI_ARG_NONZERO): Define.
5440         (phi_arg_d): Add nonzero flag.
5441
5442 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
5443
5444         * f: Entire directory removed
5445
5446         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
5447         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
5448         (g77_integer_type_node, g77_uinteger_type_node)
5449         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
5450         * c-common.c (c_common_nodes_and_builtins): Do not initialize
5451         the above set of variables.
5452
5453         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
5454         * doc/invoke.texi, doc/standards.texi: Remove cross-references
5455         to g77 manual.
5456
5457 2004-05-17  Steven Bosscher  <stevenb@suse.de>
5458
5459         PR tree-optimization/15438
5460         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
5461         attributed functions as pure or const.
5462
5463 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
5464
5465         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
5466         from source code with errors.
5467
5468 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
5469
5470         Enable tree browser for all front ends.
5471         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
5472         (BACKEND): ...to here.
5473
5474 2004-05-17  Jan Hubicka  <jh@suse.cz>
5475
5476         * i386.c (construct_container): Do not produce BLKmode registers.
5477         (classify_argument): Properly compute alignment of complex types.
5478
5479 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
5480
5481         PR target/15084
5482         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
5483         and renamed to movdi_insv_1_rex64.
5484         (insv): Support SImode for 32bit and DImode for 64bit.
5485
5486 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
5487
5488         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
5489         (TARGET_SWITCHES): Remove debugg.
5490         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
5491         TARGET_64BIT.
5492         (subdi3): Replace the define_expand with a define_insn, the latter
5493         renamed from subdi3_internal_3.
5494         (negdi2): Likewise negdi2_internal_2.
5495         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
5496         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
5497         and associated define_splits.
5498         (adddi3_internal): Renamed from adddi3_internal_3.
5499         (ashldi3_internal): Likewise ashldi3_internal4.
5500         (ashrdi3_internal): Likewise ashrdi3_internal4.
5501         (lshrdi3_internal): Likewise lshrdi3_internal4.
5502
5503 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
5504
5505         * optabs.c (expand_unop): Try implementing negation using subtraction
5506         from zero.
5507
5508 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5509
5510         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
5511         SAR register.
5512
5513 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
5514
5515         PR target/10982
5516         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
5517         (ne_zeroextractsi_shifted): New pattern.
5518         (ite_ne_zeroextractsi): New pattern.
5519         (ite_ne_zeroextractsi_shifted): New pattern.
5520
5521 2004-05-15  Steven Bosscher  <stevenb@suse.de>
5522
5523         * c-gimplify.c (c_genericize):
5524         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
5525         * c-parse.in <expr_no_commas>: Likewise.
5526         <if_prefix>: Likewise.
5527         <select_or_iter_stmt>: Likewise.
5528         * expr.c (expand_var, expand_expr_real_1): Likewise.
5529         * expr.h (expand_expr): Make it a static inline function.
5530         Move prototype for expand_expr_real up before this.
5531         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
5532         Likewise.
5533         * gimplify.c (gimple_boolify, gimplify_addr_expr,
5534         gimplify_asm_expr, gimplify_expr): Likewise.
5535         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
5536         dump_function_to_file): Likewise.
5537         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
5538         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
5539         * tree-into-ssa.c (dump_tree_ssa): Likewise.
5540         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
5541         Likewise.
5542         * tree-optimize.c (execute_one_pass): Likewise.
5543         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
5544         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
5545
5546         * objc/objc-act.c (objc_build_try_enter_fragment,
5547         objc_build_try_epilogue, objc_build_catch_stmt,
5548         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
5549         with lang_hooks.foo ().
5550
5551 2004-05-15  Roger Sayle  <roger@eyesopen.com>
5552
5553         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
5554         that simplify_builtin doesn't destructively modify its argument.
5555
5556 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
5557
5558         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
5559         implementations for ARM and Thumb.
5560         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
5561
5562 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
5563
5564         * prefix.c (update_path): Replace PREFIX with KEY only
5565         when it matches a full directory name in PATH.
5566
5567 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
5568
5569         * arm.h (TARGET_APCS_32): Delete.
5570         (TARGET_MMU_TRAPS): Delete.
5571         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
5572         define __APCS_26__.
5573         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
5574         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
5575         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
5576         (prog_mode_type): Delete.
5577         (PROMOTE_MODE): Always promote unsigned for HImode.
5578         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
5579         (MASK_RETURN_ADDR): Simplify.
5580         * arm.c (arm_prgmode): Delete.
5581         (arm_override_options, arm_gen_rotated_half_load): Simplify.
5582         (print_multi_reg, output_return_instruction): Simplify.
5583         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
5584         (arm_return_addr): Simplify.
5585         * arm.md (prog_mode): Delete.
5586         (conds): Simplify.
5587         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
5588         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
5589         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
5590         (loadhi_shiftpredec): Delete.
5591         (peephole for post-increment on HImode load): Delete.
5592         * arm/crtn.asm: (FUNC_END): Simplify.
5593         * arm/lib1funcs.asm: Remove APCS-26 return macros.
5594         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
5595         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
5596         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
5597         MULTILIB_DEFAULTS as required.
5598         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
5599         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
5600         variables as required.
5601         * doc/invoke.texi (ARM Options): Remove obsolete flags.
5602
5603 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
5604
5605         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
5606         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
5607         count to 8 to handle n_reg > 2.
5608
5609 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
5610
5611         * doc/extend.texi: Update WG14 URL.
5612
5613 2004-05-15  Steven Bosscher  <stevenb@suse.de>
5614
5615         * basic-block.h (life_analysis, delete_noop_moves):
5616         Update prototypes.
5617         * bt-load.c (branch_target_load_optimize): Don't take the
5618         insns stream as an argument.  Update the life_analysis calls.
5619         * combine.c (combine_instructions): Update delete_noop_moves
5620         calls.
5621         * flow.c (notice_stack_pointer_modification): Don't take the
5622         insns stream as an argument.  Work on the flow graph.
5623         (life_analysis): Likewise.
5624         (delete_noop_moves): Likewise.
5625         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
5626         (rest_of_handle_life): Update life_analysis call.
5627         (rest_of_compilation): Likewise, and also update
5628         branch_target_load_optimize call.
5629         * ra.c (reg_alloc): Update life_analysis call.
5630         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
5631         the insns stream as an argument.
5632         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
5633         call.
5634         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
5635         prototypes.
5636         * value-profile.c (branch_prob): Update life_analysis call.
5637         * web.c (web_main): Work on the CFG, not on the insns stream.
5638
5639         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
5640         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
5641         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
5642
5643 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
5644
5645         PR c/15444
5646         * c-format.c (avoid_dollar_number): New function.
5647         (check_format_info_main): Call avoid_dollar_number when operand
5648         numbers might occur but has_operand_number == 0.
5649
5650 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
5651
5652         * arm.md (all peephole2 patterns): Use predicates that validate
5653         register classes as appropriate.
5654
5655 2004-05-14  Steven Bosscher  <stevenb@suse.de>
5656
5657         PR opt/14472
5658         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
5659         ignore type conversions that do not inhibit tail calling.
5660         (find_tail_calls): Likewise.
5661
5662 2004-05-14  Jeff Law  <law@redhat.com>
5663
5664         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
5665         bother marking bypassed virtuals for out-of-ssa.  Instead merge
5666         bypassed virtuals into vars_to_rename just before into-ssa pass.
5667
5668         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
5669         so that it picks up more opportunities to eliminate ABS expressions
5670         or turn them into negations.
5671
5672 2004-05-14  Steven Bosscher  <stevenb@suse.de>
5673
5674         * passes.c (rest_of_handle_null_pointer): Remove.
5675         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
5676         (rest_of_compilation): Likewise.
5677         * rtl.h (delete_null_pointer_checks): Remove prototype.
5678         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
5679         Remove declarations.
5680         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
5681         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
5682         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
5683         expr_reaches_here_p, computing_insn, def_reaches_here_p,
5684         can_disregard_other_sets, handle_avail_expr, classic_gcse,
5685         one_classic_gcse_pass, invalidate_nonnull_info,
5686         delete_null_pointer_checks_1, delete_null_pointer_checks,
5687         expr_reached_here_p_work): Remove.
5688         (gcse_main): Do not perform classic GCSE when optimizing for size.
5689         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
5690         are never used.
5691
5692 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
5693
5694         PR optimization/14466
5695         * tree-complex.c (make_temp): Remove.
5696         (gimplify_val): Replace make_temp with make_rename_temp
5697         and add NULL as the second argument.
5698         (expand_complex_div_wide): Likewise.
5699         * tree-dfa.c (make_rename_temp): New function.
5700         * tree-flow.h (make_rename_temp): Declare.
5701         * tree-sra.c (make_temp): Remove.
5702         (lookup_scalar): Replace make_temp with make_rename_temp.
5703         (create_scalar_copies): Likewise.
5704         * tree-ssa-phiopt.c (conditional_replacement): When we
5705         get non gimple create a temporary variable to hold the
5706         casted expression.
5707
5708 2004-05-14  Paul Brook  <paul@codesourcery.com>
5709
5710         * stor-layout.c (update_alignment_for_field): Use
5711         targetm.align_anon_bitfield.
5712         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
5713         (TARGET_INITIALIZER): Use it.
5714         * target.h (struct gcc_target): Add align_anon_bitfield.
5715         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
5716         (TARGET_ALIGN_ANON_BITFIELD): Define.
5717         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
5718
5719 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
5720
5721         * tree.def (documentation): Remove mention of class 'b'.
5722         (BLOCK): Now in class 'x'.
5723         * c-common.c (verify_tree): Remove case 'b'.
5724         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
5725         * calls.c (calls_function_1): Control cannot get past the switch
5726         when exp is a BLOCK.
5727         * print-tree.c (print_node): Move code for class 'b' to the class
5728         'c'/'x' switch, as case BLOCK.
5729         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
5730         (unsafe_for_reeval, substitute_placeholder_in_expr)
5731         (stabilize_reference_1): Remove case 'b'.
5732         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
5733         of something being 'b' to tests for TREE_CODE of something being
5734         BLOCK.
5735         * tree-ssa-operands.c (get_expr_operands): Likewise.
5736
5737 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
5738
5739         * tree-gimple.c: Rename from tree-simple.c.
5740         * tree-gimple.h: Rename from tree-simple.h.
5741         * c-gimplify.c: Rename from c-simplify.c
5742         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
5743         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
5744         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
5745         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
5746         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
5747         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
5748         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
5749         Update.
5750
5751 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
5752
5753         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
5754
5755 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
5756
5757         * tree-ssa.c (delete_tree_ssa): XFREE
5758         bitmaps allocated with BITMAP_XMALLOC.
5759
5760         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
5761         idfs_cache at the end of the function.
5762
5763         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
5764         at the end of the function.
5765
5766         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
5767         el at the end of the function.
5768
5769         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
5770         bitmaps allocated with BITMAP_XMALLOC.
5771
5772         * loop-unswitch.c (unswitch_single_loop): Free bbs at
5773         the end.
5774
5775         * final.c (shorten_branches): Free uid_shuid before
5776         reallocating it.
5777
5778         * bb-reoder.c (connect_traces): Free cold_traces at the end.
5779
5780 2004-05-13  Jeff Law  <law@redhat.com>
5781
5782         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
5783         variables.  Simplify slightly by using USE_OP/DEF_OP instead
5784         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
5785
5786         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
5787         rather than iterating through the blocks testing each bit in
5788         livein to initialize the worklist.
5789         (mark_def_sites): Remove useless checks of KILLS for virtual
5790         operands.
5791
5792         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
5793         new parameters for the statement and variable worklist as well
5794         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
5795         worklist recording interesting variables in the variable worklist
5796         and bitmap.  Handle casts between integral and boolean types.
5797         (substitute_single_use_vars): Accept new parameters for the statement
5798         and variable worklist.  When a substitution is made add a new
5799         entry to the statement worklist.  Handle casts between integral
5800         and boolean types.
5801         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
5802         worklists to children.  Iterate until the statement worklist
5803         is empty.
5804
5805 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
5806
5807         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
5808         the end of the block.
5809
5810         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
5811         with BITMAP_XMALLOC.
5812
5813         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
5814         with BITMAP_XMALLOC.
5815
5816         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
5817         Free nonzero_vars at the end of the function.
5818
5819         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
5820         need to generate code instead of a NOP_EXPR.
5821
5822 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
5823
5824         * gcc.c (default_compilers): Fill out initializers for new Fortran
5825         entries.
5826
5827 2004-05-13  Paul Brook  <paul@codesourcery.com>
5828
5829         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
5830
5831 2004-05-13  Paul Brook  <paul@codesourcery.com>
5832
5833         * config/arm/arm.c (arm_default_short_enums): New function.
5834         (TARGET_DEFAULT_SHORT_ENUMS): Define.
5835
5836 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
5837
5838         Merge from tree-ssa-20020619-branch.
5839
5840         * Makefile.in (reload1.o-warn): Add.
5841         (tree-alias-ander.o-warn): Add.
5842         (GMPLIBS): Define.
5843         (GMPINC): Define.
5844         (BANSHEELIB): Define.
5845         (BANSHEEINC): Define.
5846         (TREE_DUMP_H): Define.
5847         (TREE_SIMPLE_H): Define.
5848         (TREE_FLOW_H): Define.
5849         (LIBDEPS): Add BANSHEELIB.
5850         (INCLUDES): Add BANSHEEINC and GMPINC.
5851         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
5852         c-mudflap.o and c-pretty-print.o.
5853         (C_OBJS): Remove c-pretty-print.o.
5854         (OBJS-common): Remove sibcall.o.
5855         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
5856         tree-ssa.o, tree-optimize.o, tree-simple.o,
5857         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
5858         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
5859         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
5860         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
5861         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
5862         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
5863         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
5864         tree-tailcall.o, gimple-low.o, tree-iterator.o,
5865         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
5866         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
5867         tree-profile.o.
5868         (OBJC-archive): Add tree-nomudflap.o.
5869         (cc1): Add dependency on @TREEBROWSER@.
5870         (c-decl.o): Add dependency on TREE_DUMP_H.
5871         (c-dump.o): Likewise.
5872         (c-common.o): Add dependency on tree-iterator.h
5873         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
5874         (gtype-desc.o): Add dependency on TREE_FLOW_H.
5875         (tree.o): Add dependency on tree-iterator.h,
5876         BASIC_BLOCK_H and TREE_FLOW_H.
5877         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
5878         (langhooks.o): Add dependency on TREE_SIMPLE_H.
5879         (tree-alias-type.o, tree-alias-ander.o,
5880         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
5881         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
5882         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
5883         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
5884         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
5885         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
5886         tree-nested.o, tree-iterator.o, tree-dfa.o,
5887         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
5888         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
5889         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
5890         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
5891         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
5892         tree-sra.o, tree-complex.o, tree-profile.o,
5893         rtl-profile.o): New rules.
5894         (function.o): Add dependency on basic-block.h
5895         (expr.o): Add dependency on tree-iterator.h.
5896         (sibcall.o): Remove.
5897         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
5898         (cfg.o): Add dependency on TIMEVAR_H.
5899         (cfghooks.o): Add dependency on TREE_FLOW_H.
5900         (reg-stack.o): Add dependency on basic-block.h.
5901         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
5902         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
5903         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
5904         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
5905         tree-alias-type.h, tree-alias-common.h,
5906         tree-alias-type.c, tree-alias-common.c,
5907         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
5908         rtl-profile.c and tree-nested.c.
5909         (gt-tree-alias-common.h, gt-tree-mudflap.h,
5910         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
5911         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
5912         gt-tree-cfg.h, gt-tree-nested.h): New rules.
5913         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
5914         * basic-block.h: Include predict.h
5915         (struct edge_def): Add GTY marker.
5916         Change field 'insns' to be a union of tree and rtx.
5917         (EDGE_TRUE_VALUE): Define.
5918         (EDGE_FALSE_VALUE): Define.
5919         (EDGE_EXECUTABLE): Define.
5920         (struct bb_ann_d): Forward declare.
5921         (struct basic_block_def): Add GTY marker.
5922         Remove fields head_tree and end_tree.
5923         Add fields stmt_list, rbi and tree_annotations.
5924         (struct reorder_block_def): Define.
5925         (basic_block_info): Add GTY marker.
5926         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
5927         variables instead of macros.
5928         (flow_call_edges_add): Remove declaration.
5929         (make_eh_edge): Remove declaration.
5930         (brief_dump_cfg, find_edge, tree_predicted_by_p,
5931         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
5932         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
5933         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
5934         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
5935         (try_redirect_by_replacing_jump): Modfiy return type to
5936         edge instead of bool.
5937         * bb-reorder.c (copy_bb): Call duplicate_block
5938         instead of cfg_layout_duplicate_bb.
5939         (copy_bb_p): Call can_duplicate_block_p instead of
5940         cfg_layout_can_duplicate_bb_p.
5941         * bitmap.c (bitmap_first_set_bit): Abort if word
5942         wasn't found.
5943         (bitmap_last_set_bit): Likewise.
5944         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
5945         (DEF_FUNCTION_TYPE_3): Add.
5946         * builtins.c (c_strlen): Make extern.
5947         (builtin_save_expr): New.
5948         (expand_builtin_nonlocal_goto): New.
5949         (expand_builtin_constant_p): Remove.
5950         (expand_builtin_mathfn): Call builtin_save_expr instead
5951         of save_expr.
5952         (expand_builtin_mathfn_2): Likewise.
5953         (expand_builtin_strcmp): Likewise.
5954         (expand_builtin_strncmp): Likewise.
5955         (expand_builtin_strcat): Likewise.
5956         (fold_builtin_cabs): Likewise.
5957         (expand_builtin_alloca): Don't trigger if -fmudflap is
5958         given.
5959         (build_string_literal): Set TREE_INVARIANT on new node.
5960         (expand_builtin_profile_fun): New.
5961         (round_trampoline_addr): New.
5962         (expand_builtin_init_trampoline): New.
5963         (expand_builtin_adjust_trampoline): New.
5964         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
5965         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
5966         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
5967         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
5968         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
5969         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
5970         Handle.
5971         (fold_builtin_expect): New.
5972         (fold_builtin_isascii): Don't return non-constant results
5973         in GIMPLE form.
5974         (fold_builtin_isdigit): Likewise.
5975         (fold_builtin_1): New.
5976         (fold_builtin): Call it.
5977         (build_function_call_expr): Update call to build a new
5978         CALL_EXPR.
5979         (purge_builtin_constant_p): Remove.
5980         (simplify_builtin, simplify_builtin_memcmp,
5981         simplify_builtin_strcmp, simplify_builtin_strncmp,
5982         simplify_builtin_strpbrk, simplify_builtin_strstr,
5983         simplify_builtin_strchr, simplify_builtin_strrchr,
5984         simplify_builtin_strcat, simplify_builtin_strncat,
5985         simplify_builtin_strspn, simplify_builtin_strcspn,
5986         simplify_builtin_next_arg, simplify_builtin_va_start,
5987         simplify_builtin_sprintf): New.
5988         * builtins.def (BUILT_IN_STACK_ALLOC,
5989         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
5990         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
5991         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
5992         BUILT_IN_PROFILE_FUNC_EXIT): Define.
5993         * c-common.c: Include tree-iterator.h and hashtab.h.
5994         (lang_statement_code_p): Declare.
5995         (lang_gimplify_stmt): Declare.
5996         (fix_string_type): Set TREE_INVARIANT for value.
5997         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
5998         (c_type_hash): New.
5999         (c_common_get_alias_set): Handle multiple type nodes
6000         referring to "the same" type, currently for C90 only.
6001         (c_add_case_label): Use create_artificial_label.
6002         (finish_label_address_expr): Don't set TREE_CONSTANT on
6003         result.
6004         (c_expand_expr): Don't handle STMT_EXPR.
6005         (handle_alias_attribute): Marke aliased variables to be
6006         TREE_STATIC.
6007         (handle_nonnull_attribute): Initialize arg_num.
6008         (check_function_nonnull): Likewise.
6009         (c_walk_subtrees): New.
6010         (c_estimate_num_insns_1): Don't handle
6011         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
6012         (c_decl_uninit_1): Remove.
6013         (c_decl_uninit): Remove.
6014         (c_warn_unused_result): New.
6015         * c-common.def (ASM_STMT): Change number of operands
6016         to 4.
6017         (FILE_STMT): Remove.
6018         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
6019         Remove.
6020         (lang_gimplify_stmt): Add.
6021         (expand_stmt): Remove.
6022         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
6023         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
6024         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
6025         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
6026         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
6027         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
6028         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
6029         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
6030         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
6031         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
6032         genrtl_compound_stmt, genrtl_asm_stmt,
6033         genrtl_cleanup_stmt, c_decl_uninit): Remove.
6034         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
6035         c_tree_chain_matters_p, c_warn_unused_result,
6036         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
6037         Declare.
6038         * c-convert.c (convert): Make convert work when
6039         converting to compatible types across translation unit.
6040         * c-decl.c: Include langhooks.h, tree-mudflap.h,
6041         tree-simple.h, diagnostic.h and tree-dump.h
6042         (merge_decls): Initialize oldtype to NULL.
6043         (finish_decl): Use DECL_HARD_REGISTER instead of
6044         DECL_C_HARD_REGISTER.
6045         (check_bitfield_type_and_width): Check for null
6046         lang_type_specific when check the precision of an enum.
6047         (grokdeclarator): Immediately layout an ARRAY_TYPE used
6048         in a pointer-to-array declarator.
6049         (finish_struct): Clear allocated struct lang_type.
6050         (finish_enum): Set enum_min and enum_max.  Set
6051         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
6052         not to the enumerators.
6053         (set_decl_nonlocal): New.
6054         (store_parm_decls): Use it via walk_tree.
6055         (c_finalize): New.
6056         (finish_function): When !targetm.have_ctors_dtors,
6057         record static constructors and destructors here...
6058         (c_expand_body_1): ... not here.
6059         (c_expand_decl): Rename from c_expand_decl_stmt.
6060         Handle all C-specific expansion semantics.
6061         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
6062         STMT_LINENO.
6063         * c-format.c (handle_format_arg_attribute): Initialize
6064         format_num.
6065         * c-lang.c: Include tree-inline.h
6066         (LANG_HOOKS_EXPAND_DECL,
6067         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
6068         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
6069         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
6070         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
6071         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
6072         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
6073         (c_types_compatible_p): New.
6074         * c-mudflap.c: New file.
6075         * c-objc-common.c: Include tree-mudflap.h
6076         (start_cdtor, finish_cdtor): Collapse
6077         together into
6078         (build_cdtor): ...here.  Update to construct a complete tree
6079         for the function.  No need to call push_scope, pop_scope, or
6080         clear_last_expr, or set current_function_cannot_inline.
6081         (c_missing_noreturn_ok_p): Change prototype to return
6082         bool.
6083         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
6084         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
6085         opts.c.
6086         (c_common_post_options): Don't ever use rtl inlining.
6087         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
6088         * c-pragma.c (handle_pragma_redefine_extname): Define
6089         always.
6090         (init_pragma): Activate #pragma redefine_extname for mudflap.
6091         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
6092         (pp_c_initializer): Accept any type CONSTRUCTOR.
6093         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
6094         COMPLEX_TYPE.
6095         (decl_name_str): New local function.
6096         (pp_c_direct_declarator): Call it.
6097         (pp_c_primary_expression): Call it.
6098         (pp_c_id_expression): Call it.
6099         (pp_c_statement): Call it.
6100         (print_c_tree): Create new pp object.
6101         * c-pretty-print.h (pp_c_tree_decl_identifier,
6102         print_c_tree): Declare.
6103         * c-semantics.c: Include langhooks.h
6104         (lang_expand_stmt, lang_expand_decl_stmt,
6105         find_reachable_label_1, find_reachable_label,
6106         expand_unreachable_if_stmt, expand_unreachable_stmt,
6107         genrtl_do_stmt_1): Remove.
6108         (begin_stmt_tree): Don't check for changed filename.
6109         Call annotate_with_locus.
6110         (finish_stmt_tree): Don't set line for end of function.
6111         (build_stmt): Don't check type nodes for
6112         side effects.
6113         (build_stmt): Set TREE_SIDE_EFFECTS.
6114         Set EXPR_LOCUS instead of STMT_LINENO.
6115         (lang_expand_stmt, lang_expand_decl_stmt,
6116         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
6117         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
6118         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
6119         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
6120         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
6121         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
6122         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
6123         find_reachable_label_1, expand_unreachable_if_stmt,
6124         expand_unreachable_stmt): Remove.
6125         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
6126         * c-simplify.c: New file.
6127         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
6128         (struct lang_type): Add fields enum_min and enum_max.
6129         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
6130         (c_expand_decl, c_missing_noreturn_ok_p,
6131         c_types_compatible_p): Declare.
6132         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
6133         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
6134         (default_function_array_conversion): Rely on build to
6135         set TREE_CONSTANT.
6136         (parser_build_binary_op, pointer_diff): Likewise.
6137         (build_unary_op, build_binary_op): Likewise.
6138         (build_array_ref):
6139         (build_external_ref): Set TREE_INVARIANT.
6140         (build_c_cast, pop_init_level): Likewise.
6141         (process_init_element): Use ASM_VOLATILE_P.
6142         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
6143         (c_finish_case): Call c_do_switch_warnings.
6144         * c.opt (fdump-): Remove.
6145         * calls.c (try_to_integrate): Remove.
6146         (prepare_call_address): Replace fndecl arg with a
6147         precomputed static chain value.
6148         (emit_call_1): New argument for full call expr.
6149         (flags_from_decl_or_type): Call special_function_p.
6150         (initialize_argument_information): Add argument
6151         may_tailcall.
6152         (purge_reg_equiv_notes): New.
6153         (expand_call): Do not try to expand calls inline.
6154         (fixup_tail_calls): New.
6155         * cfg.c: Include timevar.h and ggc.h.
6156         (bb_pool, edge_pool): Remove.
6157         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
6158         (entry_exit_blocks): Remove.
6159         (rbi_pool): Declare.
6160         (init_flow): Do not create pools.
6161         Allocate entry/exit block.
6162         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
6163         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
6164         (unlink_block): Clear b->prev_bb and b->next_bb.
6165         (compact_blocks): Clear all slots of BASIC_BLOCK array.
6166         (dump_flow_info): Work on trees too.
6167         (dump_cfg_bb_info): New.
6168         (brief_dump_cfg): New.
6169         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
6170         (find_edge): New.
6171         * cfgbuild.c (rtl_make_eh_edge): Rename from
6172         make_eh_edge.  Update all users.
6173         (find_basic_blocks): Don't call VARRAY_FREE on
6174         basic_block_info.
6175         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
6176         and newpos2.
6177         (delete_unreachable_blocks): Return changed status.
6178         (merge_seq_blocks): New.
6179         * cfghooks.c: Include tree-flow.h
6180         (tree_register_cfg_hooks, ir_type): New.
6181         (redirect_edge_and_branch): Change return type to edge.
6182         (predict_edge, predicted_by_p, can_duplicate_block_p,
6183         duplicate_block, block_ends_with_call_p,
6184         block_ends_with_condjump_p, flow_call_edges_add): New.
6185         * cfghooks.h (redirect_edge_and_branch): Change return
6186         type to edge.
6187         (predict_edge, predicted_by_p, can_duplicate_block_p,
6188         duplicate_block, block_ends_with_call_p,
6189         block_ends_with_condjump_p, flow_call_edges_add): Declare.
6190         (redirect_edge_and_branch): Change return type to edge.
6191         (struct cfg_hooks): Add fields block_ends_with_call_p,
6192         block_ends_with_condjump_p, flow_call_edges_add,
6193         predict_edge, predicted_by_p, can_duplicate_block_p and
6194         duplicate_block.
6195         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
6196         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
6197         (fixup_reorder_chain): Use initialize_bb_rbi.
6198         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
6199         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
6200         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
6201         (insn_locators_initialize): Use new info about blocks.
6202         * cfglayout.h (typedef struct reorder_block_def): Moved to
6203         basic_block.h.
6204         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
6205         removed.
6206         * cfgloop.c: Include tree.h and tree-flow.h.
6207         * cfgloop.h (create_loop_notes): Declare.
6208         * cfgloopmanip.c (create_loop_notes): New.
6209         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
6210         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
6211         and duplicate_block fields.
6212         (create_basic_block_structure): Don't look at
6213         RTX_INTEGRATED_P.
6214         (rtl_block_ends_with_call_p): New.
6215         (rtl_block_ends_with_condjump_p): New.
6216         (need_fake_edge_p): Moved from cfganal.c.
6217         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
6218         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
6219         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
6220         (cfg_layout_rtl_cfg_hooks): Ditto.
6221         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
6222         functions to be reachable.
6223         * cgraphunit.c (decide_is_function_needed):
6224         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
6225         inline functions don't need to be output.
6226         (cgraph_assemble_pending_functions): Don't do anything
6227         special for nested functions.
6228         (cgraph_mark_functions_to_output): Likewise.
6229         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
6230         (cgraph_analyze_function): Use estimate_num_insns.
6231         (cgraph_mark_functions_to_output): Likewise.
6232         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
6233         (cgraph_expand_function): Allow functions to not be
6234         emitted.
6235         (cgraph_remove_unreachable_nodes):
6236         (cgraph_recursive_inlining_p): Simplify.
6237         (lookup_recursive_calls,
6238         cgraph_decide_recursive_inlining): New.
6239         (cgraph_decide_inlining_*): Update calls of
6240         cgraph_mark_inline.
6241         * combine.c (get_pos_from_mask): Always set *plen.
6242         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
6243         ftree-based-profiling, ftree-ccp, ftree-ch,
6244         ftree-combine-temps, ftree-copyrename, ftree-dce,
6245         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
6246         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
6247         ftree-lrs): Add.
6248         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
6249         Undefine.
6250         * configure.ac: Add --enable-tree-browser option.
6251         Add --with-libbanshee option.
6252         Add GMPLIBS and GMPINC.
6253         * configure: Regenerate.
6254         * coverage.c (tree_ctr_tables): New.
6255         (coverage_counter_alloc): Use it.
6256         (build_ctr_info_value): Ditto.
6257         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
6258         (tree_coverage_counter_ref): New.
6259         * coverage.h (coverage_counter_ref): Remove declaration.
6260         (rtl_coverage_counter_ref): Declare.
6261         (tree_coverage_counter_ref): Declare.
6262         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
6263         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
6264         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
6265         (struct cse_basic_block_data): Rename enum values to not
6266         conflict with profile.h; update all uses.
6267         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
6268         in comments.
6269         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
6270         * diagnostic.h (debug_output_buffer, dump_generic_node,
6271         print_generic_stmt, print_generic_stmt_indented,
6272         print_generic_expr, print_generic_decl,
6273         debug_generic_expr, debug_generic_stmt, debug_c_tree):
6274         Declare.
6275         * dominance.c: Cache immediate dominators.
6276         * domwalk.c: New file.
6277         * domwalk.h: New file.
6278         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
6279         (gen_subprogram_die): Generate a DIE for a named
6280         return value.
6281         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
6282         (add_location_or_const_value_attribute): Likewise.
6283         (add_bound_info): Likewise.
6284         (gen_decl_die): Likewise.
6285         * emit-rtl.c (maybe_set_first_label_num): New.
6286         (copy_most_rtx): Don't copy the integrated flag.
6287         Copy the new return_val flag.
6288         * et-forest.c (MAX_NODES): Define.
6289         (record_path_before_1): Abort if len is greater than
6290         MAX_NODES.
6291         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
6292         gen_eh_region_catch, gen_eh_region_allowed,
6293         gen_eh_region_must_not_throw, get_eh_region_number,
6294         get_eh_region_may_contain_throw, get_eh_region_tree_label,
6295         set_eh_region_tree_label, expand_resx_expr): New.
6296         (expand_eh_region_start, expand_start_catch): Use them.
6297         (expand_end_catch): Tidy.
6298         (note_eh_region_may_contain_throw): Take region argument.
6299         (note_current_region_may_contain_throw): New.
6300         (get_exception_filter): Export.
6301         (collect_eh_region_array): Export.
6302         (remove_unreachable_regions): Check ERT_TRY based on reachability
6303         of catches, not reachability of continue_label.  Never remove
6304         ERT_MUST_NOT_THROW regions.
6305         (collect_rtl_labels_from_trees): New.
6306         (convert_from_eh_region_ranges): Use it.
6307         (connect_post_landing_pads): Handle dying cleanups.
6308         (struct reachable_info): Add callback data.
6309         (add_reachable_handler): Invoke the callback.
6310         (foreach_reachable_handler): New.
6311         (reachable_handlers): Use it.
6312         (arh_to_landing_pad, arh_to_label): New.
6313         (can_throw_internal_1): Split out from can_throw_internal.
6314         (can_throw_external_1): Similarly.
6315         * except.h: Update.
6316         * explow.c (emit_stack_save): Remove savearea mode check.
6317         (update_nonlocal_goto_save_area): New.
6318         (allocate_dynamic_stack_space): Use it.
6319         (probe_stack_range): Never emit loop notes.
6320         * expmed.c (extract_fixed_bit_field): Always propagate the
6321         target for the shift if it is a REG.
6322         * expr.c: Include tree-iterator.h
6323         (is_zeros_p): Remove.
6324         (categorize_ctor_elements_1, categorize_ctor_elements): New.
6325         (count_type_elements): New.
6326         (mostly_zeros_p): Use them.
6327         (expr_wfl_stack): Remove.
6328         (convert_move): Do nothing if to and from are the same.
6329         (emit_block_move_via_loop): Don't emit LOOP notes.
6330         (emit_move_insn): Don't handle CONSTANT_P_RTX.
6331         (emit_move_insn_1): Don't generate inline warnings.
6332         (expand_vars, expand_var): Split from ...
6333         (expand_expr_1): ... here.
6334         (expand_expr_real, expand_expr_real_1):  Use new macros
6335         EXPR_LOCATION and EXPR_HAS_LOCATION.
6336         * expr.h (simplify_builtin_fputs,
6337         simplify_builtin_strcpy, simplify_builtin_strncpy,
6338         expand_var, fixup_tail_calls,
6339         update_nonlocal_goto_save_area): Declare.
6340         (lookup_static_chain, expand_inline_function,
6341         mark_seen_cases): Remove.
6342         (prepare_call_address): Change type of 2nd argument to
6343         rtx.
6344         * final.c (profile_function): Update static chain test.
6345         (final): Don't look at RTX_INTEGRATED_P.
6346         * flags.h (flag_mudflap, flag_mudflap_threads,
6347         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
6348         flag_tree_dce, flag_tree_combine_temps,
6349         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
6350         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
6351         flag_tree_points_to): Declare.
6352         (enum pta_type): Declare.
6353         * flow.c (lang_missing_noreturn_ok_p): Remove.
6354         (check_function_return_warnings): Remove.
6355         (update_life_info): Update comments.
6356         (free_basic_block_vars): Don't call VARRAY_FREE for
6357         basic_block_info.
6358         (regno_uninitialized): Remove.
6359         * fold-const.c (int_const_binop): Make extern.
6360         (non_lvalue): Rely on build to set TREE_CONSTANT.
6361         (operand_equal_p): Replace only_const argument with
6362         flags.  Allow pure functions if OEP_PURE_SAME.
6363         (fold): Use OEP_ONLY_CONST.
6364         (invert_truthvalue) <NOP_EXPR> Break if argument is of
6365         boolean type.
6366         (fold_relational_hi_lo,
6367         nondestructive_fold_binary_to_constant,
6368         nondestructive_fold_unary_to_constant,
6369         fold_read_from_constant_string): New.
6370         * function.c (struct function): Remove calls_constant_p.
6371         (current_function_calls_constant_p): Remove.
6372         (inline_function_decl): Remove.
6373         (put_var_into_stack): Don't use it.
6374         (fix_lexical_addr): Likewise.
6375         (inline_function_decl): Remove extern declaration.
6376         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
6377         (trampolines_created): Move to varasm.c.
6378         (free_after_compilation): Update for removed fields.
6379         (allocate_struct_function): Likewise.
6380         (delete_handlers, lookup_static_chain): Remove.
6381         (fix_lexical_addr): Don't consider non-local variable refs.
6382         (trampoline_address): Remove.
6383         (round_trampoline_addr): Move to builtins.c.
6384         (adjust_trampoline_addr): Remove.
6385         (expand_function_start): Update for changes to static chain
6386         and nonlocal goto handling.
6387         (initial_trampoline): Move to varasm.c.
6388         (expand_function_end): Don't build trampolines or kill
6389         unreferenced nonlocal goto labels.
6390         (free_after_compilation): Don't set it.
6391         (expand_function_end): Likewise.
6392         (setjmp_vars_warning): Rename from
6393         uninitialized_vars_warning, remove uninitialized vars warning.
6394         (uninitialized_vars_warning): Remove old comment
6395         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
6396         and do not call the langhook.
6397         (expand_function_start, expand_function_end): Don't do
6398         function instrumentation here.
6399         (clear_block_marks): Rename from reorder_blocks_0, export.
6400         (blocks_nreverse): Export.
6401         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
6402         of rtl.
6403         (reset_block_changes, record_block_change, finalize_block_changes,
6404         check_block_change, free_block_changes): New functions.
6405         (assign_parms): Setting of current_function_stdarg
6406         moved ...
6407         (allocate_struct_function): ... here.
6408         * function.h (struct function): Remove x_nonlocal_labels,
6409         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
6410         x_context_display, x_trampoline_list, needs_context.
6411         Add static_chain_decl, nonlocal_goto_save_area.
6412         (struct function): Remove x_clobber_return_insn.
6413         Add tail_call_emit field, last_label_uid,
6414         unexpanded_var_list, dont_emit_block_notes,
6415         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
6416         (clear_block_marks): Declare.
6417         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
6418         (mfwrap_spec, mflib_spec): Declare.
6419         (cpp_unique_options, cc1_options): Ditto.
6420         (default_compilers): Add .F and .f90.
6421         (static_specs): Add mfwrap and mflib.
6422         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
6423         CONSTANT_RTX_P.
6424         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
6425         Update to match insns field in struct edge_def.
6426         * gdbinit.in (pgs, pge): Define.
6427         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
6428         instead of the integrated flag.
6429         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
6430         * gengtype-yacc.y (bitfieldlen): Add empty action.
6431         (struct_fields): Accept unnamed bitfields.
6432         (bitfieldlen): Split from ...
6433         (bitfieldopt): ... here.
6434         * gengtype.c (ifiles): Add tree-alias-type.h and
6435         tree-flow.h.
6436         * genrecog.c (validate_pattern): Do not handle
6437         CONSTANT_P_RTX.
6438         * gimple-low.c: New file.
6439         * gimplify.c: New file.
6440         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
6441         (restore_line_notes): Do not set RTX_INTEGRATED_P.
6442         * ifcvt.c (dead_or_predicable): Initialize local variable
6443         'earliest'.
6444         * input.h (expr_wfl_stack): Remove.
6445         * integrate.c (INTEGRATE_THRESHOLD): Remove.
6446         (setup_initial_hard_reg_value_integration): Likewise.
6447         (initialize_for_inline): Likewise.
6448         (note_modified_parmregs): Likewise.
6449         (integrate_parm_decls): Likewise.
6450         (process_reg_param): Likewise.
6451         (save_parm_insns): Likewise.
6452         (copy_insn_list): Likewise.
6453         (copy_insn_notes): Likewise.
6454         (compare_blocks): Likewise.
6455         (find_block): Likewise.
6456         (inlining): Likewise.
6457         (function_cannot_inline_p): Likewise.
6458         (parmdecl_map): Likewise.
6459         (in_nonparam_insns): Likewise.
6460         (save_for_inline): Likewise.
6461         (FIXED_BASE_PLUS): Likewise.
6462         (expand_inline_function): Likewise.
6463         (copy_rtx_and_substitute): Don't look at map->integrating,
6464         map->inline_target, and inlining, since we are never copying
6465         for integrating.
6466         Don't abort on RTX_INTEGRATED_P.
6467         (old_fun): Remove.
6468         (output_inline_function): Remove.
6469         * integrate.h (struct inline_map): Remove fields integrating,
6470         block_map, leaf_reg_map, inline_target, and local_return_label.
6471         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
6472         copy_loop_headers, never_reached_warning): Removed.
6473         (any_uncondjump_p): Reject nonlocal goto.
6474         * langhooks-def.h (lhd_types_compatible_p,
6475         lhd_expand_decl, lhd_gimplify_expr): Declare.
6476         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
6477         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
6478         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
6479         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
6480         LANG_HOOKS_GIMPLIFY_EXPR,
6481         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
6482         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
6483         LANG_HOOKS_GIMPLIFY_EXPR,
6484         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
6485         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
6486         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
6487         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
6488         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
6489         LANG_HOOKS_DECL_UNINIT,
6490         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
6491         * langhooks.c: Include tree-simple.h.
6492         (lhd_expand_decl): New.
6493         (lhd_types_compatible_p): New.
6494         (lhd_decl_uninit): Remove.
6495         (lhd_gimplify_expr): New.
6496         * langhooks.h (struct lang_hooks_for_rtl_expansion):
6497         Remove.
6498         (struct lang_hooks_for_functions): Add field
6499         missing_noreturn_ok_p.
6500         (struct lang_hooks): Add field expand_decl,
6501         types_compatible_p, gimplify_expr and
6502         gimple_before_inlining.
6503         Remove fields decl_uninit and rtl_expand
6504         * opts.c (decode_options): Set flag_tree_ccp,
6505         flag_tree_dce, flag_tree_dom, flag_tree_dse,
6506         flag_tree_pre, flag_tree_ter,
6507         flag_tree_live_range_split, flag_tree_sra,
6508         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
6509         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
6510         OPT_fmudflapth, OPT_fmudflapir,
6511         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
6512         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
6513         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
6514         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
6515         OPT_ftree_points_to_ and OPT_ftree_pre.
6516         * output.h (regno_uninitialized, find_basic_blocks,
6517         cleanup_cfg, delete_unreachable_blocks,
6518         check_function_return_warnings): Remove.
6519         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
6520         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
6521         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
6522         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
6523         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
6524         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
6525         Define.
6526         * passes.c (rest_of_decl_compilation):
6527         (rest_of_handle_sibling_calls): Remove.
6528         (rest_of_handle_inlining): Remove.
6529         (rest_of_handle_gcse): Do not run
6530         purge_builtin_constant_p.
6531         (rest_of_compilation): Update.
6532         Do not call copy_loop_headers.
6533         Do rtl-based profiling only when
6534         !flag_tree_based_profiling.  Register rtl-based profiling
6535         hooks.
6536         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
6537         (predicted_by_p): Rename to ...
6538         (rtl_predicted_by_p): .. this one; make global
6539         (tree_predicted_by_p): New.
6540         (dump_prediction): Add FILE argument.
6541         (predict_edge): Rename to ...
6542         (rtl_predict_edge): .. this one.
6543         (tree_predict_edge): New.
6544         (combine_predictions_for_insn): Update calls of predict_edge.
6545         (predict_loops): Break out from ...
6546         (estimate_probability): ... here; update comments; move updating
6547         of unknown probabilities from ...
6548         (estimate_bb_frequencies): ... here.
6549         (combine_predictions_for_bb): New.
6550         (tree_predict_by_opcode): New.
6551         (tree_estimate_probability): New.
6552         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
6553         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
6554         * predict.h: Add include guard.
6555         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
6556         * pretty-print.c (pp_write_text_to_stream): Make extern.
6557         * pretty-print.h (pp_write_text_to_stream): Declare.
6558         * print-rtl.c (print_rtx): Don't print the integrated flag.
6559         Print the return_val flag.
6560         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
6561         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
6562         Remove support for EXPR_WITH_FILE_LOCATION nodes.
6563         (print_node): Print TREE_INVARIANT and TREE_VISITED.
6564         * profile.c: Include cfghooks.h, tree-flow.h.
6565         (profile_hooks): New.
6566         (profile_dump_file): New.
6567         (instrument_edges): Use hooks instead of RTL-specific code.
6568         (instrument_values): Ditto.
6569         (get_exec_counts): Ditto.
6570         (compute_branch_probabilities): Ditto.
6571         (compute_value_histograms): Ditto.
6572         (branch_prob): Ditto.
6573         (find_spanning_tree): Ditto.
6574         (end_branch_prob): Ditto.
6575         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
6576         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
6577         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
6578         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
6579         (tree_register_profile_hooks): New.
6580         (rtl_register_profile_hooks): New.
6581         * ra-rewrite.c (rewrite_program): Clear variable info.
6582         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
6583         * regs.h: Add include guards.
6584         * reload.c (decompose): Clear val using memset.
6585         * rtl.def (CONSTANT_P_RTX): Remove.
6586         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
6587         (copy_loop_headers): Remove.
6588         (struct rtx_def): Replace the integrated flag with the
6589         return_val flag.
6590         (maybe_set_first_label_num): Declare.
6591         (init_branch_prob): Move declaration to value-prof.h.
6592         (end_branch_prob): Ditto.
6593         (branch_prob): Ditto.
6594         (never_reached_warning): Don't declare it.
6595         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
6596         (hoist_insn_to_edge): Update to match field insns in
6597         struct edge_def.
6598         * sbitmap.c (sbitmap_realloc): New.
6599         * sbitmap.h (sbitmap_realloc): Declare.
6600         * sibcall.c: Remove file.
6601         * simplify-rtx.c (simplify_rtx): Do not handle
6602         CONSTANT_P_RTX.
6603         * stmt.c (parse_output_constraint): Don't warn for read-write
6604         memory operand.
6605         (tail_recursion_args): Use types_compatible_p langhook.
6606         (force_label_rtx): Don't look at inline_function_decl.
6607         (label_rtx): Set LABEL_PRESERVE_P appropriately.
6608         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
6609         (declare_nonlocal_label): Remove.
6610         (expand_goto): Don't handle nonlocal gotos.
6611         (expand_nl_handler_label): Remove.
6612         (expand_nl_goto_receivers): Remove.
6613         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
6614         update_nonlocal_goto_save_area.
6615         (expand_expr_stmt_value): Check TREE_NO_WARNING.
6616         (warn_if_unused_value): Likewise.
6617         (expand_start_loop, expand_loop_continue_here,
6618         expand_end_loop): Don't create loop notes.
6619         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
6620         mark_seen_cases, check_for_full_enumeration_handling): Remove.
6621         (expand_end_case_type): Don't do warn_switch handling.
6622         (pushcase, pushcase_range) Update add_case_node calls.
6623         (add_case_node): Add dont_expand_label argument.
6624         (same_case_target_p): Don't search rtl.
6625         (expand_start_bindings_and_block, expand_end_bindings):
6626         Don't emit block notes when dont_emit_block_notes.
6627         (using_eh_for_cleanups_p): Export.
6628         (expand_return): Allow any typed rhs.
6629         (expand_stack_alloc): New.
6630         (expand_stack_save, expand_stack_restore): New.
6631         (containing_blocks_have_cleanups_or_stack_level): New
6632         function.
6633         (asm_op_is_mem_input): New fn.
6634         (expand_asm_expr): New fn.
6635         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
6636         nodes.
6637         * stor-layout.c (layout_type): Just return if type is
6638         error_mark_node.
6639         (update_alignment_for_field): Export.
6640         (variable_size): We don't care about global_bindings_p if
6641         the frontend doesn't want a list of the expressions.
6642         * system.h: Poison INTEGRATE_THRESHOLD.
6643         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
6644         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
6645         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
6646         TV_TREE_SSA_OTHER, TV_TREE_OPS,
6647         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
6648         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
6649         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
6650         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
6651         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
6652         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
6653         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
6654         TV_CONTROL_DEPENDENCES): Define.
6655         * toplev.c: Include tree-alias-common.h
6656         (current_file_decl, flag_mudflap, flag_mudflap_threads,
6657         flag_mudflap_ignore_reads, flag_tree_based_profiling,
6658         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
6659         flag_tree_dce, flag_tree_ch, flag_tree_sra,
6660         flag_tree_combine_temps, flag_tree_ter,
6661         flag_tree_live_range_split, flag_tree_dom,
6662         flag_tree_copyrename, flag_tree_dse): Declare.
6663         (f_options): Add tree-based-profiling, tree-gvn,
6664         tree-pre, tree-ccp, tree-dce,
6665         tree-dominator-opts, tree-copyrename, tree-dse,
6666         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
6667         (wrapup_global_declarations): Don't output nested inlined functions.
6668         (general_init): Call init_tree_optimization_passes.
6669         (process_options): Sorry for -ftree-based-profiling plus
6670         -ftest-coverage or -fprofile-values.
6671         * toplev.h (init_tree_optimization_passes,
6672         flag_tree_based_profiling): Declare.
6673         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
6674         * tree-alias-ander.c: New file.
6675         * tree-alias-ander.h: New file.
6676         * tree-alias-common.c: New file.
6677         * tree-alias-common.h: New file.
6678         * tree-alias-type.c: New file.
6679         * tree-alias-type.h: New file.
6680         * tree-browser.c: New file.
6681         * tree-browser.def: New file.
6682         * tree-cfg.c: New file.
6683         * tree-complex.c: New file.
6684         * tree-dfa.c: New file.
6685         * tree-dump.c (dump_enable_all): New.
6686         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
6687         (dump_node): Remove const from field suffix and swtch.
6688         (dump_files): Add null entry, .generic, .nested, .vcg,
6689         .xml and a match-all entry.
6690         (extra_dump_files, extra_dump_files_in_use,
6691         extra_dump_files_alloced): Declare
6692         (dump_option_value_info): Add raw, details, stats,
6693         blocks, vops, lineno, uid and all.
6694         (dump_register): New.
6695         (get_dump_file_info): New.
6696         (dump_begin): Call it.
6697         Do nothing for TDI_none.
6698         (dump_begin): Include phase number in dump filename.
6699         (dump_enable_all): New.
6700         (dump_switch_p_1): Split out from dump_switch_p.
6701         (dump_switch_p): Handle extra_dump_files.
6702         Start our scan at TDI_none + 1.
6703         If -fdump-tree-all was given, call dump_enable_all.
6704         * tree-dump.h: Include splay-tree.h.
6705         (dump_function, dump_function_to_file, dump_register):
6706         Declare.
6707         * tree-eh.c: New file.
6708         * tree-flow-inline.h: New file.
6709         * tree-flow.h: New file.
6710         * tree-inline.c: Re-write to handle inlining on GIMPLE.
6711         * tree-inline.h (walk_tree,
6712         walk_tree_without_duplicates): Move to tree.h.
6713         (estimate_num_insns): Declare.
6714         * tree-into-ssa.c: New file.
6715         * tree-iterator.c: New file.
6716         * tree-iterator.h: New file.
6717         * tree-mudflap.c: New file.
6718         * tree-mudflap.h: New file.
6719         * tree-nested.c: New file.
6720         * tree-nomudflap.c: New file.
6721         * tree-nrv.c: New file.
6722         * tree-optimize.c (dump_flags, vars_to_rename,
6723         in_gimple_form, all_passes, pass_gimple,
6724         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
6725         (execute_gimple, execute_rebuild_bind,
6726         gate_all_optimizations, execute_del_cfg,
6727         register_one_dump_file, register_dump_files, dup_pass_1,
6728         init_tree_optimization_passes, execute_todo,
6729         execute_one_pass, execute_pass_list): New.
6730         (clear_decl_rtl): Remove.
6731         (tree_rest_of_compilation): Update to use tree
6732         optimizers.
6733         * tree-outof-ssa.c: New file.
6734         * tree-pass.h: New file.
6735         * tree-phinodes.c: New file.
6736         * tree-pretty-print.c: New file.
6737         * tree-profile.c: New file.
6738         * tree-simple.c: New file.
6739         * tree-simple.h: New file.
6740         * tree-sra.c: New file.
6741         * tree-ssa-alias.c: New file.
6742         * tree-ssa-ccp.c: New file.
6743         * tree-ssa-copy.c: New file.
6744         * tree-ssa-copyrename.c: New file.
6745         * tree-ssa-dce.c: New file.
6746         * tree-ssa-dom.c: New file.
6747         * tree-ssa-dse.c: New file.
6748         * tree-ssa-forwprop.c: New file.
6749         * tree-ssa-live.c: New file.
6750         * tree-ssa-live.h: New file.
6751         * tree-ssa-loop.c: New file.
6752         * tree-ssa-operands.c: New file.
6753         * tree-ssa-operands.h: New file.
6754         * tree-ssa-phiopt.c: New file.
6755         * tree-ssa-pre.c: New file.
6756         * tree-ssa.c: New file.
6757         * tree-ssanames.c: New file.
6758         * tree-tailcall.c: New file.
6759         * tree.c: Include tree-iterator.h, basic-block.h and
6760         tree-flow.h.
6761         (tree_node_kind): Add phi_nodes and ssa names.
6762         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
6763         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
6764         (make_node_stat): Handle PHI_NODE and SSA_NAME.
6765         <'c'> Set TREE_INVARIANT.
6766         (copy_node_stat): Abort if trying to copy a
6767         STATEMENT_LIST.
6768         Clear TREE_VISITED.
6769         Clear annotation field.
6770         (build_constructor): Copy TREE_INVARIANT from vals.
6771         Don't clear TREE_CONSTANT.
6772         (expr_first, expr_last, expr_length): Remove.
6773         (staticp): Pass unknown component references to the language.
6774         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
6775         (skip_simple_arithmetic): Likewise.
6776         (stabilize_reference_1): Likewise.
6777         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
6778         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
6779         STATEMENT_LIST.
6780         (lhd_unsave_expr_now): Remove.
6781         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
6782         (recompute_tree_invarant_for_addr_expr): New.
6783         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
6784         Call recompute_tree_invarant_for_addr_expr.
6785         Set TREE_INVARIANT accordingly.
6786         (build2_stat): Don't handle CALL_EXPR.
6787         (build3_stat): Don't call build2_stat for CALL_EXPRs.
6788         (build_expr_wfl): Remove.
6789         (annotate_with_file_line, annotate_with_locus): New.
6790         (simple_cst_equal): Call simple_cst_list_equal to compare
6791         CONSTRUCTOR_ELTS pointers.
6792         (iterative_hash_expr): Don't hash types associated
6793         with conversions.  Instead hash on the signedness of the
6794         toplevel object and the operand of the conversion.
6795         (dump_tree_statistics): Call ssanames_print_statistics
6796         and phinodes_print_statistics.
6797         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
6798         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
6799         needs_to_live_in_memory): New.
6800         (initializer_zerop): Handle VECTOR_CST.  Don't check
6801         AGGREGATE_TYPE_P for CONSTRUCTOR.
6802         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
6803         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
6804         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
6805         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
6806         (CALL_EXPR): Add another operand.
6807         (EXPR_WITH_FILE_LOCATION): Remove.
6808         (SWITCH_EXPR): Add another operand.
6809         * tree.h: Update various comments.
6810         (union tree_ann_d): Forward declare.
6811         (struct tree_common): Add fields nowarning_flag,
6812         invariant_flag and visited.
6813         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
6814         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
6815         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
6816         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
6817         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
6818         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
6819         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
6820         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
6821         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
6822         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
6823         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
6824         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
6825         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
6826         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
6827         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
6828         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
6829         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
6830         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
6831         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
6832         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
6833         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
6834         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
6835         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
6836         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
6837         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
6838         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
6839         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
6840         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
6841         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
6842         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
6843         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
6844         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
6845         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
6846         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
6847         TDF_UID,): Define.
6848         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
6849         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
6850         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
6851         EXPR_WFL_SET_LINECOL): Remove.
6852         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
6853         make_phi_node, init_phinodes, fini_phinodes,
6854         release_phi_node, phinodes_print_statistics,
6855         init_ssanames, fini_ssanames, make_ssa_name,
6856         release_ssa_name, ssanames_print_statistics,
6857         annotate_with_file_line, build_empty_stmt,
6858         annotate_with_locus, expr_only, categorize_ctor_elements,
6859         count_type_elements, add_var_to_bind_expr, is_essa_node,
6860         expand_stack_alloc, expand_stack_save,
6861         expand_stack_restore, add_case_node, operand_equal_p,
6862         nondestructive_fold_unary_to_constant,
6863         nondestructive_fold_binary_to_constant,
6864         fold_read_from_constant_string, int_const_binop,
6865         strip_float_extensions, simplify_builtin, c_strlen,
6866         recompute_tree_invarant_for_addr_expr,
6867         needs_to_live_in_memory, make_vector,
6868         setjmp_vars_warning, update_alignment_for_field,
6869         expand_asm_expr, asm_op_is_mem_input,
6870         containing_blocks_have_cleanups_or_stack_level,
6871         create_artificial_label, gimplify_function_tree,
6872         get_name, unshare_expr, walk_tree,
6873         walk_tree_without_duplicates, in_gimple_form): Declare.
6874         (struct tree_exp): Add fields locus and block.
6875         (struct tree_ssa_name, struct edge_def, struct
6876         tree_phi_node, struct tree_eref_common, struct
6877         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
6878         union alias_var_def, struct tree_statement_list_node,
6879         struct tree_statement_list, enum operand_equal_flag): Declare.
6880         (enum tree_node_structure_enum): Add TS_SSA_NAME,
6881         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
6882         TS_STATEMENT_LIST.
6883         (union tree_node): Add fields ssa_name, phi, eref, ephi,
6884         euse and stmt_list.
6885         (function_cannot_inline_p, uninitialized_vars_warning,
6886         save_for_inline, output_inline_function, all_cases_count,
6887         check_for_full_enumeration_handling,
6888         declare_nonlocal_label): Remove.
6889         (enum tree_dump_index): Add TDI_none, TDI_tu,
6890         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
6891         * unroll.c (unroll_loop): Don't clear map->inline_target.
6892         * unwind-sjlj.c (uw_install_context): Make a proper static inline
6893         function.
6894         * value-prof.c (value_prof_hooks): New.
6895         (find_values_to_profile): Rename to rtl_find_values_to_profile.
6896         Move rtl-specific bits in from branch_prob.
6897         (value_profile_transformations): Rename to
6898         rtl_value_profile_transformations.
6899         (struct value_prof_hooks): New.
6900         (rtl_value_prof_hooks): New.
6901         (rtl_register_value_prof_hooks): New.
6902         (tree_find_values_to_profile): New stub.
6903         (tree_value_profile_transformations): New stub.
6904         (tree_value_prof_hooks): New stub.
6905         (tree_register_value_prof_hooks): New stub.
6906         (find_values_to_profile): New.
6907         (value_profile_transformations): New.
6908         * value-prof.h: Add multiple inclusion guard.
6909         (struct histogram_value): Change rtx fields to void *.
6910         (rtl_register_value_prof_hooks): New declaration.
6911         (tree_register_value_prof_hooks): New declaration.
6912         (find_values_to_profile): New declaration.
6913         (free_profiled_values): New declaration.
6914         (value_profile_transformations): New declaration.
6915         (struct profile_hooks): New declaration.
6916         (init_branch_prob): Declaration moved from rtl.h.
6917         (branch_prob): Declaration moved from rtl.h.
6918         (end_branch_prob): Declaration mooved from rtl.h.
6919         (tree_register_profile_hooks): New declaration.
6920         (rtl_register_profile_hooks): New declaration.
6921         (tree_profile_hooks): New declaration.
6922         (rtl_profile_hooks): New declaration.
6923         * varasm.c: Include tree-mudflap.h.
6924         (TRAMPOLINE_ALIGNMENT): Remove.
6925         (make_decl_rtl): Call mudflap_enqueue_decl.
6926         (assemble_static_space):
6927         (assemble_trampoline_template): Set and return
6928         TRAMPOLINE_ALIGNMENT.
6929         * varray.c (element): Add GENERIC_PTR_NOGC entry.
6930         Add entry for 'tree *'.
6931         Add entry for struct edge_def *.
6932         (varray_copy): New.
6933         * varray.h (enum varray_data_enum): Add
6934         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
6935         VARRAY_DATA_TREE_PTR.
6936         (union varray_data_tag): Corresponding changes.
6937         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
6938         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
6939         VARRAY_EDGE, VARRAY_TREE_PTR,
6940         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
6941         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
6942         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
6943
6944         * config/*/*: Various updates for changed macros, tree
6945         codes, etc.  Check ChangeLog.tree-ssa.
6946
6947         * doc/cfg.texi: New file.
6948         * doc/tree-ssa.texi: New file.
6949         * doc/c-tree.texi: Document new codes.
6950         * doc/gccint.texi: Include new files.
6951         * doc/install.texi: Document new features.
6952         * doc/invoke.texi: Document new switches.
6953         * doc/passes.texi: Document new passes.
6954         * doc/rtl.texi: Update changed RTL codes.
6955         * doc/sourcebuild.texi: Update build instructions.
6956         * doc/standards.texi: Document Fortran changes.
6957         * doc/tm.texi: Update.
6958
6959 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
6960
6961         Replace several arrays with a struct of arrays.
6962         * combine.c (struct reg_stat): New.
6963         (init_reg_last_arrays): Renamed to...
6964         (init_reg_last): ...this.  Callers adjusted.
6965         (reg_stat): New.
6966         (combine_instructions): Allocate it and use it.
6967         (reg_last_death, reg_last_set, reg_last_set_value,
6968         reg_last_set_label, reg_last_set_table_tick,
6969         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
6970         reg_last_set_mode, reg_last_set_nonzero_bits,
6971         reg_last_set_sign_bit_copies): Replace throughout
6972         with items of reg_stat.
6973
6974 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
6975
6976         PR optimization/15100
6977         * combine.c (distribute_notes): Don't create a dangling
6978         REG_LIBCALL/REG_RETVAL note.
6979
6980 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
6981
6982         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
6983
6984         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
6985         negv2si2.
6986
6987 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
6988
6989         * doc/md.texi (Standard Names): Fix typo in vec_init description.
6990
6991 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
6992
6993         * doc/gty.texi (GTY Options): Clarify example.
6994
6995 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
6996
6997         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
6998         Add const qualifier to altivec vector type if one is needed.
6999
7000 2004-05-11  Paul Brook  <paul@codesourcery.com>
7001
7002         * flags.h (flag_short_enums): Update comment.
7003         * opts.c (decode_options): Set flag_short_enums to 2.
7004         * toplev.c (flag_short_enums): Update comment.
7005         (process_options): Call default_short_enums target hook.
7006
7007 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
7008
7009         PR target/14063
7010         * config/rs6000/altivec.md (altivec_dssall):
7011         Change to unspec_volatile.
7012         (altivec_dss): Likewise.
7013
7014 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
7015
7016         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
7017         vnor.
7018         ("one_cmplv8hi2"): Same.
7019         ("one_cmplv4si2"): Same.
7020
7021 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
7022
7023         PR target/15130
7024         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
7025         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
7026         into account.  Compute the correct number of general registers
7027         for the return value.  Generate a special push/pop sequence when
7028         failing to get a temporary register for non SHmedia epilogue.
7029         (sh_expand_epilogue): Add an argument to show whether it's for
7030         sibcall or not.  Set the 3rd argument of output_stack_adjust to
7031         -1 if needed.
7032         (sh_need_epilogue): Call sh_expand_epilogue with 0.
7033         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
7034         with 1.
7035         (epilogue): Call sh_expand_epilogue with 0.
7036
7037 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
7038
7039         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
7040         goto a cleanup label.  After the cleanup, free the allocated memory.
7041
7042 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
7043
7044         * config/rs6000/altivec.h (vec_sld): Add overloads for
7045         argument/return types of 'vector bool int', 'vector bool short'
7046         and 'vector bool char'.
7047
7048 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
7049
7050         * c-decl.c (store_parm_decls_newstyle): Correct test for a
7051         nested function.
7052
7053 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
7054
7055         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
7056         treating missing ones as "".
7057         * config/mips/mips.md: Remove constraints from match_operands and
7058         match_scratches if they appear in define_expands (except reload*),
7059         define_peephole2s, define_splits or attribute specifications.
7060         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
7061         constraint strings.
7062
7063 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
7064
7065         * config/rs6000/rs6000.c (function_arg_boundary): Always align
7066         AltiVec vectors.
7067         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
7068         vectors by refererence.  Align the same for TARGET_64BIT to a 16
7069         byte boundary.  Remove useless code.  Add function comment.
7070         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
7071         call to where it belongs.
7072         (function_arg_partial_nregs): Return true for all TARGET_32BIT
7073         -mabi=no-altivec AltiVec vectors.  Fix debug output.
7074         (rs6000_va_arg): Adjust for AltiVec change.
7075
7076 2004-05-10  Paul Brook  <paul@codesourcery.com>
7077
7078         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
7079         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
7080         (TARGET_DOUBLEWORD_ALIGN): Use it.
7081         (WCHAR_TYPE): Define.
7082         (WCHAR_SIZE_TYPE): Define.
7083         (SIZE_TYPE): Define.
7084
7085 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
7086
7087         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
7088         when size is 8 bytes.
7089         (function_arg_advance): Account for stack space used by AltiVec
7090         args when -mabi=altivec.  Simplify alignment calculations.  For
7091         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
7092         (function_arg): Similarly.
7093         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
7094         not AltiVec ABI.
7095         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
7096         Correct alignment, and align before testing reg count.  Remove
7097         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
7098         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
7099         TARGET_FPRS here..
7100         (rs6000_function_value): .. not here before call.
7101
7102 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
7103
7104         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
7105
7106 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
7107
7108         PR 15007
7109         * c-decl.c (current_file_decl): Rename to all_translation_units,
7110         adjust comment.
7111         (pop_scope): If popping file_scope, construct a
7112         TRANSLATION_UNIT_DECL and make it the context of all the
7113         symbols in the scope.
7114         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
7115         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
7116         anything to current_file_decl.
7117         (pushdecl_top_level): Likewise.
7118         (store_parm_decls_newstyle): Adjust check for nested function.
7119         (c_write_global_declarations): Update for renamed variable.
7120
7121 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
7122
7123         * config/rs6000/rs6000-protos.h
7124         (rs6000_conditional_register_usage): Protoize.
7125
7126         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
7127
7128         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
7129         function.
7130
7131 2004-05-08  Roger Sayle  <roger@eyesopen.com>
7132
7133         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
7134         where op is a comparison operator and C1 and C2 are integer constants
7135         into a range check.
7136         (fold): Call fold_div_compare.
7137
7138 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
7139
7140         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
7141         problems with earlier versions of the GNU compiler.
7142
7143 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
7144
7145         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
7146         Declare.
7147
7148         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
7149         (rs6000_hard_regno_mode_ok): New.
7150         (rs6000_init_hard_regno_mode_ok): New.
7151         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
7152
7153         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
7154         result.
7155
7156 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
7157
7158         * config/rs6000/altivec.h (vector, pixel, bool): Do not
7159         define as macros #ifdef __APPLE_ALTIVEC__.
7160
7161 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
7162
7163         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
7164         Generate appropriate parallels for vector arguments
7165         passed to vararg functions. (function_arg): make the call
7166         to rs6000_mixed_function_arg for vector args as needed.
7167
7168 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
7169
7170         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
7171         EABI_FLOAT_VARARGS_P.
7172
7173 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
7174
7175         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
7176         * config/mips/mips.c (override_options): Disable branch likely
7177         instructions if TUNE_MIPS5500.
7178
7179 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
7180
7181         * config/mips/mips.c (override_options): Allow the hi and lo registers
7182         to store any integral mode, not just MODE_INTs.
7183
7184 2004-05-07  Paul Brook  <paul@codesourcery.com>
7185
7186         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
7187         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
7188         (TARGET_DOUBLEWORD_ALIGN): Use it.
7189         (WCHAR_TYPE): Define.
7190         (WCHAR_SIZE_TYPE): Define.
7191         (SIZE_TYPE): Define.
7192
7193 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
7194
7195         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
7196         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
7197
7198 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
7199
7200         * loop-doloop.c (doloop_valid_p): Make sure that body
7201         gets freed.
7202
7203 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
7204
7205         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
7206         declaration.
7207         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
7208         (sparc_skip_caller_unimp): New global variable.
7209         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
7210         Use it instead of SKIP_CALLERS_UNIMP_P.
7211         * config/sparc/sparc.md (call expander): Add sanity check.
7212         (call_address_struct_value_sp32): Re-sync with expander.
7213         (call_symbolic_struct_value_sp32): Likewise.
7214         (return peepholes): Use 'sparc_skip_caller_unimp' instead
7215         of custom predicate.
7216
7217 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
7218
7219         PR c++/14962
7220         * c-pragma.c (handle_pragma_redefine_extname): Only change
7221         the assembler name of FUNCTION_DECLs and VAR_DECLs.
7222
7223 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
7224
7225         * optabs.h (enum optab_index): Add new OTI_log1p.
7226         (log1p_optab): Define corresponding macro.
7227         * optabs.c (init_optabs): Initialize log1p_optab.
7228         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
7229         patterns.
7230         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
7231         using log1p_optab.
7232         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
7233         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7234
7235         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
7236
7237         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
7238         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
7239         Prototype here.
7240         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
7241         x87's fyl2xp1 instruction.
7242         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
7243         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
7244         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
7245         log1p  and log1pl built-ins as inline x87 intrinsics.
7246
7247 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
7248
7249         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
7250         * config/arm/freebsd.h: Likewise.
7251         * config/ia64/freebsd.h: Likewise.
7252         * config/sparc/freebsd.h: Likewise.
7253
7254 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
7255
7256         PR optimization/15296
7257         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
7258         getting last consecutive label at a branch.
7259         (relax_delay_slots): Similar, near top of loop.
7260
7261 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7262
7263         PR target/15202
7264         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
7265         register to general register.
7266
7267 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
7268
7269         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
7270         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
7271         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
7272         (STACK_BOUNDARY): Delete.
7273
7274 2004-05-06  Stuart Hastings  <stuart@apple.com>
7275
7276         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
7277         mistakenly clobbered by 1.423.
7278
7279 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
7280
7281         * doc/invoke.texi: Document -mvr4130-align.
7282         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
7283         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
7284         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
7285         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
7286         * config/mips/mips.md: Include sched-int.h.
7287         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
7288         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
7289         (override_options): Enable -mvr4130-align at -O3 and above.
7290         (mips_sim_insn): New variable.
7291         (mips_sim): New structure.
7292         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
7293         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
7294         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
7295         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
7296         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
7297         (mips_reorg): Call vr4130_align_insns.
7298         (vr4130_last_insn): New variable.
7299         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
7300         (vr4130_swap_insns_p, vr4130_reorder): New functions.
7301         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
7302         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
7303         (mips_use_dfa_pipeline_interface): Return true for the same.
7304         * config/mips/4130.md: New file.
7305         * config/mips/mips.md: Include it.  Add a peephole2 to convert
7306         "mult;mflo" into "mtlo;macc".
7307         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
7308         target of maccs.
7309         (*msac_using_macc): New pattern.
7310
7311 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
7312
7313         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
7314         (ir_vr55_hilo): Split into...
7315         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
7316         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
7317         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
7318         Add various multiplication bypasses.
7319         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
7320         multiplication.
7321
7322 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
7323
7324         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
7325         attribute to "XF".
7326
7327 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
7328
7329         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
7330         (fmod_optab, drem_optab): Define corresponding macros.
7331         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
7332         * genopinit.c (optabs): Implement fmod_optab and drem_optab
7333         using fmod?f3 and drem?f3 patterns.
7334         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
7335         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
7336         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
7337         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
7338         flag_unsafe_math_optimizations is set.
7339
7340         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
7341         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
7342
7343         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
7344         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
7345         Prototype here.
7346         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
7347         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
7348         fprem and fprem1 instructions.
7349         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
7350         Rename insn definition to x86_fnstsw_1.
7351         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
7352         x87 instructions.
7353         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
7354         and fmodl built-ins as inline x87 intrinsics.
7355         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
7356         and dreml built-ins as inline x87 intrinsics.
7357
7358 2004-05-05  Roger Sayle  <roger@eyesopen.com>
7359
7360         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
7361
7362 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
7363
7364         PR driver/9822
7365         * doc/invoke.texi (Spec Files): Remove documentation of %c.
7366
7367 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
7368
7369         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
7370         representation.
7371
7372 2004-05-06  Paul Brook  <paul@codesourcery.com>
7373
7374         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
7375         (arm_coproc_mem_operand): ... To this.
7376         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
7377         (arm_legitimate_index_p): Ditto.
7378         (vfp_mem_operand): Rename ...
7379         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
7380         (vfp_secondary_reload_class): Use it.
7381         (output_move_double): Use doubleword load/store instructions.
7382         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
7383         * config/arm/arm.h (TARGET_LDRD): Define.
7384         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
7385         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
7386         New splitter for invalid doubleword loads.
7387         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
7388         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
7389         * doc/md.texi: Document Uy constraint.
7390
7391 2004-05-05  Jan Hubicka  <jh@suse.cz>
7392
7393         PR opt/14980
7394         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
7395         inline clones.
7396
7397 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
7398
7399         PR target/15290
7400         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
7401         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
7402
7403 2004-05-05  Mike Stump  <mrs@apple.com>
7404
7405         * config/darwin-c.c (add_framework): Copy the directory name as it
7406         can be freed later.  Also, ensure we always allocate enough room
7407         for the cached framework information.
7408         (find_subframework_header): Keep track of the directory where the
7409         subframework header was found.
7410         (framework_construct_pathname): Speed up by not trying to re-add a
7411         framework.
7412         * cppfiles.c (search_path_exhausted): Arrange for the missing
7413         header callback to be able to set the directory where the header
7414         was found.
7415         (cpp_get_dir): Add.
7416         * cpplib.h (missing_header_cb): Add a parameter.
7417         (cpp_get_dir): Add.
7418
7419 2004-05-03  Mike Stump  <mrs@apple.com>
7420
7421         * doc/invoke.texi (Directory Options): Document -iquote.
7422         * doc/cpp.texi: Likewise.
7423         * doc/cppopts.texi: Likewise.
7424         * c-opts.c (c_common_missing_argument): Add -iquote processing.
7425         (c_common_handle_option): Likewise.
7426         * c.opt (iquote): Add.
7427         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
7428         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
7429
7430         * c-opts.c (case OPT_I): Deprecate -I- support.
7431         * doc/invoke.texi: Likewise.
7432         * doc/cpp.texi: Likewise.
7433         * doc/cppopts.texi: Likewise.
7434
7435 2004-05-05  Steven Bosscher  <stevenb@suse.de>
7436
7437         * basic-block.h (free_basic_block_vars): Update prototype.
7438         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
7439         argument.
7440         (life_analysis): Update call.
7441         * ifcvt.c (if_convert): Likewise.
7442         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
7443         * passes.c (rest_of_handle_final): Likewise.
7444         (rest_of_compilation): Likewise.
7445         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
7446
7447         * emit-rtl.c (next_real_insn): Use INSN_P.
7448         (prev_real_insn): Likewise.
7449
7450 2004-05-05  Eric Christopher  <echristo@redhat.com>
7451
7452         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
7453         representation.
7454
7455 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
7456
7457         * config/rs6000/rs6000.c (build_opaque_vector_type):
7458         New function.
7459         (rs6000_init_builtins): Use it.
7460
7461 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
7462
7463         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
7464         (func_table): Change type from char ** to vms_func_ref.
7465         (write_rtnbeg):  Update to reflect func_table change.  Use
7466         fde->funcdef_number instead of rtnnum in output.
7467         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
7468
7469 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
7470             Richard Henderson  <rth@redhat.com>
7471
7472         PR target/14899
7473
7474         * c-common.c (vector_types_convertible_p): New function.
7475         * c-typeck.c (comptypes): Recurse on vector types.
7476         (convert_for_assignment): Use vector_types_convertible_p.
7477         (digest_init): Use vector_types_convertible_p to check
7478         validness of constant vector initializers; otherwise treat
7479         them as scalars.
7480         * tree.c (make_or_reuse_type): New.
7481         (build_common_tree_nodes): Use it.
7482         * cp/call.c (standard_conversion): Likewise.
7483         * cp/typeck.c (comptypes): Recurse on vector types.
7484         (convert_for_assignment): Use vector_types_convertible_p.
7485
7486 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
7487
7488         * config/mips/mips.c (override_options): Default to no
7489         generation of branch-likely operations when tuning for
7490         CPUs where they tend to have a negative performance impact
7491         (e.g., SB-1).
7492
7493 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7494
7495         * expr.c (store_constructor_field): Don't call store_constructor
7496         if bitsize is not a multiple of a byte.
7497
7498 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
7499
7500         * reload1.c (inherit_piecemeal_p): New function.
7501         (emit_reload_insns): When reloading a group of hard registers, use
7502         inherit_piecemeal_p to decide whether the values of individual hard
7503         registers can be inherited.
7504
7505 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
7506
7507         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
7508         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
7509         * config/t-linux (LIB2ADDEHDEP): Likewise.
7510
7511 2004-05-04  Paul Brook  <paul@codesourcery.com>
7512
7513         * config/arm/crti.asm: Push an even number of registers.
7514         * config/arm/crtn.asm: And restore them.  Load via sp.
7515
7516 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
7517
7518         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
7519         Collect overhead information.
7520         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
7521         parameter and pass it through.
7522         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
7523         MEM_STAT_DECL parameter and pass it through.
7524         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
7525         MEM_STAT_DECL parameter and pass it through.
7526
7527 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
7528
7529         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
7530
7531         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
7532
7533         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
7534         rs6000_hard_regno_nregs.
7535
7536 2004-05-03  Eric Christopher  <echristo@redhat.com>
7537
7538         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
7539         prologue insn instead of setting up call.
7540         (s390_emit_epilogue): Ditto.
7541         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
7542         (define_constants): Add numbers for above patterns.
7543
7544 2004-05-03  Eric Christopher  <echristo@redhat.com>
7545
7546         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
7547         * config/s390/s390.c (s390_conditional_register_usage): ...here.
7548         * config/s390/s390-protos.h: Prototype.
7549
7550 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
7551
7552         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
7553         assignment.
7554
7555 2004-05-03  Eric Christopher  <echristo@redhat.com>
7556
7557         * config/mips/mips.md: Fix branch length attribute definition.
7558
7559 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
7560
7561         * config.gcc: Remove --enable-altivec support.
7562
7563         * config/rs6000/altivec-defs.h: Remove.
7564
7565 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7566
7567         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
7568         * fixinc/fixincl.x: Regenerate.
7569
7570 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
7571
7572         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
7573         definition.
7574         (log?f2, log10?f2, log2?f2): Reimplement expanders with
7575         float_truncate insn.
7576         (*fxtractsf3, *fxtractdf3): Remove insn definition.
7577         (logb?f2): Reimplement expanders with float_truncate insn.
7578
7579 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
7580
7581         PR 14718
7582         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
7583         force_type_die for CONST_DECL.
7584
7585 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
7586             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7587
7588         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
7589         tm-dwarf2.h to tm_file.
7590         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
7591         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
7592         (ASM_DEBUG_SPEC): Delete.
7593
7594 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
7595
7596         * optabs.h (enum optab_index): Add new OTI_expm1.
7597         (expm1_optab): Define corresponding macro.
7598         * optabs.c (init_optabs): Initialize expm1_optab.
7599         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
7600         patterns.
7601         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
7602         using expm1_optab.
7603         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
7604         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7605
7606         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
7607         to implement expm1, expm1f and expm1l built-ins as inline x87
7608         intrinsics.
7609
7610 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
7611
7612         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
7613         * config/frv/frv.md (*return_true, *return_false): New patterns.
7614
7615 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
7616
7617         * rtl.h (PHI_NODE_P): Remove.
7618
7619 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
7620
7621         PR middle-end/14988
7622         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
7623         when passed -2 as 'align'.
7624         (put_var_into_stack): Use 'bool' as the type for the three local
7625         predicates.  Adjust calls to put_reg_into_stack.
7626         When passed a CONCAT, instruct put_reg_into_stack to use
7627         a consecutive stack slot for the second part.
7628         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
7629         'consecutive_p' parameter.  Turn the three predicates into 'bool'
7630         parameters.  Retrieve the register mode from 'reg'.
7631         When consecutive_p is true, instruct assign_stack_local_1 to use
7632         BITS_PER_UNIT alignment.
7633         (put_addressof_into_stack): Use 'bool' as the type for the two
7634         local predicates. Adjust call to put_reg_into_stack.
7635
7636 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7637
7638         * fold-const.c (fold_convert_const, fold): Add missing
7639         FIX_ROUND_EXPR case.
7640
7641 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
7642
7643         * configure.ac (FLEX, BISON): Only use tools from the build tree
7644         if build equals host.
7645         * configure: Rebuilt.
7646
7647         * config/frv/frv-protos.h (frv_expand_epilogue,
7648         frv_expand_fdpic_call): Add bool argument.
7649         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
7650         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
7651         (frv_expand_epilogue): Use new argument to decide whether to emit
7652         return instruction or copy the return address to LR.
7653         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
7654         sibcalls.
7655         (sibcall_operand): New.
7656         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
7657         PLUS nor LABEL_REF.  Add sibcall_operand.
7658         * config/frv/frv.md (call, call_value): Pass false to
7659         frv_expand_fdpic_call.
7660         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
7661         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
7662         sibcall_value_internal, sibcall_value_fdpicdi): New.
7663         (return_unsigned_true, return_unsigned_false): New.
7664         (epilogue): Adjust call to frv_expand_epilogue.
7665         (sibcall_epilogue): New.
7666
7667         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
7668         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
7669         before redefining them.
7670
7671 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7672
7673         * builtins.c (fold_fixed_mathfn): New function.
7674         (fold_builtin_lround, fold_builtin): Use it.
7675
7676 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
7677
7678         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
7679         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
7680
7681 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
7682
7683         * config/cris/cris.h: Revert my "fix comment typos" patch.
7684
7685 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
7686
7687         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
7688
7689 2004-05-01  Falk Hueffner  <falk@debian.org>
7690
7691         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
7692         builtin_insll): Disallow 0 as first input operand.
7693
7694 2004-05-01  Falk Hueffner  <falk@debian.org>
7695
7696         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
7697
7698 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
7699
7700         PR middle-end/15054
7701         * expr.c (expand_expr_real): Do not call preserve_temp_slots
7702         on a TARGET_EXPR temp.
7703         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
7704         TARGET_EXPR temp slots.
7705
7706 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
7707
7708         * simplify-rtx.c (simplify_ternary_operation): When
7709         converting an IF_THEN_ELSE to a relational op, return
7710         correct mode.
7711
7712 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7713
7714         * builtins.c (fold_builtin_round): Fix comment typo.
7715         (fold_builtin_lround): New function.
7716         (fold_builtin): Use it.
7717
7718 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
7719
7720         PR target/11608
7721         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
7722         more like the one in config/dbxelf.h.
7723
7724 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
7725
7726         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
7727         and adjust definition accordingly.
7728         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
7729         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
7730         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
7731         VECTOR_TYPE.
7732
7733 2004-04-30  Jason Merrill  <jason@redhat.com>
7734
7735         PR c++/14587
7736         * config/i386/winnt.c (associated_type): Look for attributes on
7737         the TYPE_MAIN_VARIANT of *this.
7738         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
7739         apply the attributes to the variants.
7740
7741 2004-04-30  Paul Brook  <paul@codesourcery.com>
7742
7743         * config.gcc: Simplify arm --with-{cpu,tune} test.
7744         * config/arm/arm-cores.def: Document whitespace restrictions.
7745
7746 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7747
7748         PR other/1963
7749         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
7750
7751 2004-04-30  Brian Ford  <ford@vss.fsi.com>
7752             DJ Delorie  <dj@redhat.com>
7753
7754         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
7755         (DWARF2_DEBUGGING_INFO): Define to enable.
7756         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
7757         DWARF2.
7758         * configure.ac (Target-specific assembler checks)
7759         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
7760         relocs.
7761         * configure: Regenerate.
7762         * config.in: Likewise.
7763
7764         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
7765         (ASM_OUPUT_DWARF_OFFSET): Define.
7766
7767 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
7768
7769         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
7770         (s390_emit_call): New function prototype added.
7771         (s390_tls_get_offset): Function removed.
7772         * config/s390/s390.c (s390_function_ok_for_sibcall,
7773         s390_call_saved_register_used_p): New functions.
7774         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
7775         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
7776         (s390_emit_tls_call_insn): New function.
7777         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
7778         emit_call_insn.
7779         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
7780         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
7781         added.
7782         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
7783         register number used to hold the target address for sibcalls.
7784         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
7785         New expanders.
7786         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
7787         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
7788         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
7789         Expanders removed.
7790         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
7791         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
7792         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
7793         ("epilogue"): Changed the call to s390_emit_epilogue to use the
7794         new parameter.
7795
7796 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
7797
7798         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
7799         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
7800         reg-stack.c, varasm.c, config/alpha/ev4.md,
7801         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
7802         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
7803         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
7804         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
7805         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
7806         config/ia64/itanium2.md, config/ip2k/ip2k.c,
7807         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
7808         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
7809         comment typos.
7810
7811 2004-04-30  Paul Brook  <paul@codesourcery.com>
7812
7813         * config.gcc: Default ep9312 to hard-float.
7814         * config/arm/arm-cores.def: Add ARCH field.
7815         * config/arm/arm.c (FL_FOR_ARCH*): Define.
7816         (arm_arch_cirrus): New variable.
7817         (all_cores): Set and use arch.
7818         (all_architectures): Ditto.
7819         (arm_arch_name): New variable.
7820         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
7821         Set and use arm_arch_cirrus.
7822         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
7823         (enum processor_type): Update ARM_CORE define.
7824         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
7825         (CPP_SPEC): Remove %(cpp_cpu_arch).
7826         (CPP_ARCH_DEFAULT_SPEC): Remove.
7827         (CPP_CPU_ARCH_SPEC): Remove.
7828         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
7829         (FPUTYPE_DEFAULT): Don't define here.
7830
7831 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
7832
7833         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
7834         updates too.
7835
7836 2004-04-30  Paul Brook  <paul@codesourcery.com>
7837
7838         * arm.c (arm_needs_doubleword_align): Use mode alignment.
7839
7840 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
7841
7842         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
7843         vec_sububs.
7844         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
7845         duplicates.
7846
7847 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
7848
7849         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
7850         atan2?f3 expanders.
7851
7852 2004-04-29  Nick Clifton  <nickc@redhat.com>
7853
7854         Bug 14093
7855         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
7856         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
7857         Delete static from definition.
7858         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
7859
7860 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
7861
7862         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
7863         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
7864         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
7865         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
7866
7867 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
7868
7869         * commom.opt (Wfatal-errors): Add it.
7870         * diagnostic.c (flag_fatal_errors): Define it.
7871         (diagnostic_action_after_output): Check for flag_fatal_errors.
7872         * flags.h (flag_fatal_errors): Declare it.
7873         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
7874         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
7875
7876 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
7877
7878         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
7879         blocks which have kill flag set.
7880
7881 2004-04-29  Ben Elliston  <bje@au.ibm.com>
7882
7883         * configure.ac (--with-as): Abort if user-supplied assembler
7884         cannot be executed.
7885         (--with-ld): Likewise for the linker.
7886         * configure: Regenerate.
7887
7888 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7889
7890         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
7891         isn't NULL before using it.
7892
7893 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
7894
7895         PR target/15189
7896         * config/mips/mips.md (load_df_low): Use default length.
7897         (load_df_high, store_df_high): Likewise.
7898
7899 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
7900
7901         * config/mips/mips.md, config/mips/sb1.md,
7902         config/rs6000/rs6000.c: Fix comment typos.
7903
7904 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
7905
7906         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
7907         Fix comment typos.
7908
7909 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
7910
7911         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
7912         (delete_if_ordinary): Use above macro.
7913         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
7914         Update copyright.
7915         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
7916
7917 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
7918
7919         * c-decl.c (get_parm_info): Use the correct tag keywords when
7920         warning about type declarations in prototypes.
7921
7922 2004-04-29  Paul Brook  <paul@codesourcery.com>
7923
7924         * config.gcc: Pull list of cores from arm-cores.def.
7925
7926 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
7927
7928         * combine.c (combine_simplify_rtx): Adjust call to use
7929         simplify_relational_operation.  Do not use SELECT_CC_MODE
7930         when a comparison already has a MODE_CC mode.
7931
7932 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
7933
7934         (simplify_set): simplify_relational_operation may now
7935         return another relational expression.
7936         * cse.c (fold_rtx): simplify_relational_operation now
7937         takes of computing the comparison mode.
7938         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
7939         remove dead code.
7940         (do_compare_rtx_and_jump): Likewise.
7941         * integrate.c (subst_constants): simplify_relational_operation
7942         may now return another relational expression.
7943         * simplify-rtx.c (simplify_gen_relational): Move most code to
7944         the new simplify_relational_operation and
7945         simplify_relational_operation_1 functions.
7946         (simplify_relational_operation): Rewritten.
7947         (simplify_relational_operation_1): New function.
7948         (simplify_ternary_operation): simplify_relational_operation
7949         may now return another relational expression.
7950         (simplify_rtx): Remove unnecessary temp variable.
7951
7952 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
7953
7954         * reg-stack.c (swap_to_top): New function.
7955         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
7956         swap_to_top().
7957         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
7958         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
7959         UNSPEC_FSCALE_EXP.
7960
7961         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
7962         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
7963         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
7964         x87's fscale insn.
7965         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
7966         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
7967         patterns.
7968
7969 2004-04-28  Serge Belyshev  <1319@bot.ru>
7970
7971         PR 14944
7972         * coverage.c (read_counts_file): Fix usage of warning () call.
7973         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
7974
7975 2004-04-28  Ben Elliston  <bje@au.ibm.com>
7976
7977         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
7978         options with "-" in the option index.
7979         (SPARC Options): Likewise.
7980         (M32R/D Options): Likewise.
7981
7982 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7983
7984         * convert.c (convert_to_integer): Convert (long)round -> lround,
7985         etc.
7986
7987 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
7988
7989         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
7990         Return false if we do not have fp register.
7991         (addrs_ok_for_quad_peep): Rename to ...
7992         (mems_ok_for_quad_peep): this.
7993         Add check for volatile memory.
7994         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
7995         Rename to ...
7996         (mems_ok_for_quad_peep): this.
7997         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
7998         to peephole2's.
7999         (lfq_power2): New instruction.
8000         (stfq_power2): Likewise.
8001
8002 2004-04-28  Jan Hubicka  <jh@suse.cz>
8003
8004         PR c/15004
8005         * function.c (do_warn_unused_parameter): Break out form ...
8006         (expand_function_end): ... here; warn only when not using cgraphunit.
8007         * function.h (do_warn_unused_parameter): Declare.
8008         * cgraphunit.c: Include function.h.
8009         (cgraph_finalize_function): Do unused parameter warning.
8010         * Makefile.in (cgraphunit.o): Depend on function.h
8011
8012 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
8013
8014         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
8015         calling install-info on $(DESTDIR)$(infodir)/dir already being
8016         present.
8017
8018 2004-04-28  Paul Brook  <paul@codesourcery.com>
8019
8020         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
8021
8022 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
8023
8024         * gcse.c (find_moveable_store): Do not accept store insns with
8025         REG_EH_REGION note.
8026
8027 2004-04-28  Paul Brook  <paul@codesourcery.com>
8028
8029         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
8030         * function.c (assign_temp): Ditto.
8031         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
8032
8033 2004-04-28  Paul Brook  <paul@codesourcery.com>
8034
8035         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
8036
8037 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
8038
8039         * var-tracking.c (variable_different_p): Add a parameter
8040         compare_current_location, compare current location of variable parts
8041         if it is true.
8042         (dataflow_set_different_1): Pass compare_current_location == false.
8043         (dataflow_set_different_2): Pass compare_current_location == false.
8044         (emit_notes_for_differences_1): Pass compare_current_location == true.
8045
8046 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
8047
8048         * config/s390/s390.md ("casesi"): Mark jump table access as
8049         non-trapping and unchanging.
8050
8051 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8052
8053         PR debug/14829
8054         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
8055         callers.
8056         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
8057         number for indexing hard_regno_nregs array.
8058
8059 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
8060
8061         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
8062         * config/darwin-crt2.c: Only have contents on __ppc__.
8063
8064 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
8065
8066         * config/xtensa/xtensa.c (call_insn_operand): Check
8067         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
8068         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
8069         * config/xtensa/xtensa.md (call, call_value): Likewise.
8070
8071 2004-04-27  Wu Yongwei  <adah@sh163.net>
8072
8073         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
8074         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
8075         (__gthread_mutex_init_function): Replace CreateMutex with
8076         initialization of custom mutex using CreateSemaphore.
8077         (__gthread_mutex_lock): Use InterlockedIncrement.
8078         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
8079         (__gthread_mutex_unlock): Use InterlockedDecrement and
8080         ReleaseSemaphore to unlock
8081         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
8082         __gthread_mutex_lock, __gthread_mutex_trylock,
8083         __gthread_mutex_unlock): Adjust to match inline versions in
8084         gthr-win32.h.
8085
8086 2004-04-27  Paul Brook  <paul@codesourcery.com>
8087
8088         * config/arm/arm.c (arm_promote_prototypes): New function.
8089         (TARGET_PROMOTE_PROTOTYPES): Use it.
8090
8091 2004-04-27  Paul Brook  <paul@codesourcery.com>
8092
8093         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
8094
8095 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
8096
8097         * config/alpha.c (alpha_end_function): For OpenVMS gas,
8098         correctly output .pdesc directive before .end.
8099
8100 2004-04-26  James E Wilson  <wilson@specifixinc.com>
8101
8102         Bug 14927
8103         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
8104         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
8105
8106 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
8107
8108         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
8109         * config/pa/pa-hpux10.h: Likewise.
8110         * config/pa/pa-hpux11.h: Likewise.
8111
8112 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
8113
8114         * doc/invoke.texi (Overall Options): Document default for -o
8115         for PCH files.
8116
8117 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8118
8119         * builtins.c (expand_builtin_update_setjmp_buf): New function.
8120         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
8121         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
8122
8123 2004-04-26  Paul Brook  <paul@codesourcery.com>
8124
8125         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
8126
8127 2004-04-26  Paul Brook  <paul@codesourcery.com>
8128
8129         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
8130
8131 2004-04-25  Roger Sayle  <roger@eyesopen.com>
8132
8133         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
8134         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
8135         X % -1 as 0.
8136
8137 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
8138
8139         PR bootstrap/15141
8140         * except.c (connect_post_landing_pads): Delete insns after the
8141         barrier when generating a unwind_resume_libfunc call.
8142
8143 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8144
8145         PR/c++ 15119
8146         * tree.c (substitute_placeholder_in_expr, case 4): New case,
8147         for TARGET_EXPR.
8148
8149 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8150
8151         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
8152         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
8153         inhibit_libc is defined.
8154
8155 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
8156
8157         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
8158         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
8159         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
8160         (TARGET_SCHED_VARIABLE_ISSUE): Define.
8161         (mips_adjust_cost): Move later in file, next to other sched hooks.
8162         (mips_macc_chains_last_hilo): New variable.
8163         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
8164         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
8165         * config/mips/mips.md (may_clobber_hilo): New attribute.
8166
8167 2004-04-24  Roger Sayle  <roger@eyesopen.com>
8168             Bruce Korb  <bkorb@gnu.org>
8169
8170         * fixinc/inclhack.def (aix_syswait_2): New fix.
8171         * fixinc/fixincl.x: Regenerate.
8172         * fixinc/tests/base/sys/wait.h: Update for new test.
8173
8174 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
8175
8176         PR target/14960
8177         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
8178         to non_fixed_size, and leave out fixed_size from the sum.
8179         (generate_set_vrsave): Correct clobbers.
8180         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
8181         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
8182         (rs6000_libcall_value): Likewise.
8183         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
8184         (FUNCTION_ARG_REGNO_P): Likewise.
8185
8186 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
8187
8188         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
8189         is a CONST_INT.
8190         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
8191         with NARROW_OP1 instead of OP1.
8192
8193 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
8194
8195         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
8196         and __s390x__ hosts.
8197
8198 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8199
8200         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
8201         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
8202         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
8203         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
8204         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
8205         * builtins.c (expand_builtin_fork_or_exec): New.
8206         (expand_builtin): Call it.
8207         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
8208         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
8209         * c-common.c (PID_TYPE): New macro.
8210         (c_common_nodes_and_builtins): Initialize pid_type_node.
8211         * calls.c (special_function_p): Do not handle fork and exec.
8212         (expand_call): Do not handle ECF_FORK_OR_EXEC.
8213         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
8214         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
8215         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
8216         __gcov_execv, __gcov_execvp, __gcov_execve): New.
8217         * tree.h (enum tree_index): Add TI_PID_TYPE.
8218         (pid_type_node): New macro.
8219         (ECF_FORK_OR_EXEC): Removed.
8220
8221 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
8222
8223         PR optimization/13985
8224         * cfgloopmanip.c (fix_loop_placements): New prototype.
8225         Call fix_bb_placements on the preheader of loops that have
8226         been reparented.
8227         (remove_path): Adjust call to fix_loop_placements.
8228
8229 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
8230
8231         * config/darwin7.h: New file.
8232         * config.gcc (*-*-darwin*): Add darwin7.h if the
8233         version is greater than 6.
8234         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
8235         (MATH_LIBRARY): Wrap in ifdefs.
8236
8237 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
8238
8239         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
8240         loading iWMMXt registers with a frame pointer.  Use post-increment
8241         without a frame pointer.
8242         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
8243
8244 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
8245
8246         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
8247         mode" rather than "-funit-at-a-time" since -O2 enables it
8248         without requiring -f* options.  Refer to -fprofile-generate and
8249         -fprofile-use correctly.  Move -funit-at-a-time among options
8250         enabled by -O.  Add information about unit-at-a-time caveats.
8251
8252 2004-04-22  Per Bothner  <per@bothner.com>
8253
8254         * line-map.h (struct line_maps):  New field highest_line.
8255         (linemap_position_for_column):  Make non-inline function.
8256         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
8257         * line-map.c (linemap_init):  Clear highest_line field.
8258         (linemap_add):  Set highest_line field.
8259         (linemap_line_start):  Minor optimization - use highest_line field.
8260         Reduce maximum column hint to 10000.  Update highest_line field.
8261         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
8262         * cpphash.h (struct cpp_reader):  Remove line field - instead use
8263         line_table->highest_line.
8264         (saved_line):  Remove unused field.
8265         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
8266         Use  line_table's highest_line field instead of cpp_reader's line.
8267         * cpplib.c (start_directive):  Likewise use highest_line field.
8268         (do_line, do_linemarker):  Likewise just use newest map.
8269         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
8270         * cpperror.c (cpp_error):  Likewise use highest_line field.
8271         * cppfiles.c (open_file_failed:  Likewise.
8272         (cpp_make_system_header):  Likewise use newest map and highest_line.
8273         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
8274         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
8275         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
8276         _cpp_lex_direct):  Likewise use highest_line.
8277         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
8278         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
8279         and use newest map.
8280         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
8281         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
8282         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
8283
8284 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
8285
8286         PR bootstrap/14992
8287         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
8288         * config/linux.h (USE_LD_AS_NEEDED): Define.
8289         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
8290         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
8291         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
8292         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
8293         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
8294         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
8295         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
8296
8297 2004-04-22  Per Bothner  <per@bothner.com>
8298
8299         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
8300         Fixes PR preprocessor/15067.
8301
8302 2004-04-23  Andreas Schwab  <schwab@suse.de>
8303
8304         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
8305         avoid aliasing warning.
8306
8307 2004-04-22  Jan Hubicka  <jh@suse.cz>
8308             Mostafa Hagog <mustafa@il.ibm.com>
8309
8310       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
8311       * cfgloopanal.c (expected_loop_iterations): Change the return value
8312
8313 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
8314
8315         * cselib.h (struct elt_loc_list): Remove canon_loc field.
8316         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
8317         (cselib_invalidate_mem): Remove all canon_loc and canon_x
8318         traces.
8319
8320 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
8321
8322         Revert
8323         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
8324
8325                 * var-tracking.c (variable_part_different_p): Variable parts
8326                 differ when the most recent locations differ.
8327
8328 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
8329
8330         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
8331         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
8332         (embedded_pic_offset): Delete.
8333         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
8334         MASK_* constants.
8335         (TARGET_EMBEDDED_PIC): Delete.
8336         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
8337         (ASM_SPEC): Remove -membedded-pic.
8338         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
8339         (ASM_OUTPUT_CASE_LABEL): Likewise.
8340         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
8341         * config/mips/windiss.h (ASM_SPEC): Likewise.
8342         * config/mips/mips.c (struct machine_function): Remove
8343         embedded_pic_fnaddr_rtx.
8344         (TARGET_ENCODE_SECTION_INFO): Remove override.
8345         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
8346         (override_options): Remove -membedded-pic handling.
8347         (print_operand): Remove handling of '%S'.
8348         (mips_select_section: Remove -membedded-pic handling.
8349         (mips_encode_section_info): Delete.
8350         (mips_output_conditional_branch): Remove mention of -membedded-pic.
8351         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
8352         -membedded-pic handling.
8353         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
8354
8355 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
8356
8357         * var-tracking.c (frame_base_decl): Remove useless GTY.
8358
8359 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
8360
8361         * config/rs6000/rs6000.c (rs6000_override_options): Error when
8362         user wants altivec and e500 instructions.
8363
8364 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
8365
8366         PR target/14813
8367         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
8368         in .init_array section to ...
8369         * config/ia64/crtbegin.asm: Here.
8370
8371         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
8372         and hidden if HAVE_INITFINI_ARRAY is defined.
8373
8374 2004-04-21  James E Wilson  <wilson@specifixinc.com>
8375
8376         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
8377         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
8378         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
8379         (fp_register_operand, lo_operand): New.
8380         (mips_rtx_costs): Add TUNE_SB1 support.
8381         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
8382         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
8383         (mips_multipass_dfa_lookahead): New.
8384         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
8385         TUNE_SB1): New.
8386         (TARGET_SWITCHES): Add -mfp-exceptions support.
8387         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
8388         (BRANCH_COST): Fix whitespace.
8389         * config/mips/mips.md: Include sb1.md.
8390         * config/mips/sb1.md: New file.
8391         * doc/invoke.texi: Document -mfp-exceptions.
8392
8393         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
8394         comment.
8395         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
8396         (fixincl.o-warn): Delete.
8397
8398 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
8399
8400         * config/rs6000/rs6000 (print_operand) ['z']:
8401         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
8402
8403 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
8404
8405         * config.gcc: Support --with-arch=iwmmxt for ARM.
8406
8407 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8408
8409         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
8410         in two more places; remove unneeded force_reg
8411
8412 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
8413
8414         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
8415         for TARGET_MACHO.
8416         (print_operand): For TARGET_MACHO check to see if we need a stub
8417         and output one if we need it.
8418
8419         PR debug/15033
8420         * dwarf2out.c (rtl_for_decl_location): Check for NULL
8421         rtl.
8422
8423 2004-04-20  James E Wilson  <wilson@specifixinc.com>
8424
8425         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
8426         (vall_value_gp): Likewise.
8427
8428 2004-04-20  DJ Delorie  <dj@redhat.com>
8429
8430         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
8431         variables stored in word registers, then in memory.
8432
8433 2004-04-20  Eric Christopher  <echristo@redhat.com>
8434
8435         * cp/parser.c (cp_parser_declaration): Move translate
8436         up before tokens are lexed.
8437
8438 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
8439
8440         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
8441         (asin_optab, acos_optab): Define corresponding macros.
8442         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
8443         * genopinit.c (optabs): Implement asin_optab and acos_optab
8444         using asin?f2 and acos?f2 patterns.
8445         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
8446         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
8447         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
8448         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
8449
8450         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
8451         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
8452         acos, acosf and acosl built-ins as inline x87 intrinsics.
8453
8454 2004-04-20  Paul Brook  <paul@codesourcery.com>
8455
8456         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
8457
8458 2004-04-20  Paul Brook  <paul@codesourcery.com>
8459
8460         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
8461
8462 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
8463
8464         Revert part of 2004-04-17 change that moved -frename-registers
8465         to -O1.  -frename-registers is buggy.
8466
8467         * toplev.c (flag_rename_registers): Initialize to 0.
8468         * doc/invoke.texi (Optimize options): Move -frename-registers
8469         to "Not triggered by any -O level" section.  Adjust commentary
8470         accordingly.
8471
8472 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
8473
8474         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
8475
8476 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
8477
8478         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
8479         for mflo and mfhi instructions.
8480         (mips_output_move): Remove mflo and mfhi handling.
8481         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
8482         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
8483         Likewise various define_peephole2s.
8484         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
8485         alternatives.
8486         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
8487         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
8488         (mfhilo_di, mfhilo_si): New patterns.
8489
8490 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
8491
8492         * function.c (assign_parms): Force
8493         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
8494
8495 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
8496
8497         * var-tracking.c (variable_part_different_p): Variable parts differ
8498         when the most recent locations differ.
8499
8500 2004-04-19  James E Wilson  <wilson@specifixinc.com>
8501
8502         * rtl.h (reg_set_last): Delete declaration.
8503         * rtlanal.c (reg_set_last): Delete.
8504
8505 2004-04-19  Roger Sayle  <roger@eyesopen.com>
8506
8507         * fold-const.c (fold_convert): Make function extern/public.
8508         * tree.h (fold_convert): Prototype here.
8509         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
8510         expand_builtin_strrchr, expand_builtin_strpbrk,
8511         expand_builtin_mempcpy, expand_builtin_bcopy,
8512         expand_builtin_bzero, expand_builtin_memcmp,
8513         expand_builtin_strcmp, expand_builtin_strncmp,
8514         stabilize_va_list, expand_builtin_sprintf,
8515         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
8516         fold_builtin_exponent, fold_builtin_mempcpy,
8517         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
8518         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
8519         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
8520
8521 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
8522
8523         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
8524         (move_from_CR_gt_bit): New.
8525         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
8526         E500.
8527         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
8528         E500.
8529
8530         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
8531         (tstsfeq_gpr): Same.
8532         (cmpsfgt_gpr): Same.
8533         (tstsfgt_gpr): Same.
8534         (cmpsflt_gpr): Same.
8535         (tstsflt_gpr): Same.
8536         (e500_cceq_ior_compare): New.
8537         (e500_flip_gt_bit): New.
8538
8539         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
8540         (print_operand): Add 'c' and 'D'.
8541         (rs6000_generate_compare): Rewrite to generate correct rtl.
8542         (rs6000_emit_sCOND): Handle E500.
8543         (output_cbranch): Adjust for changes in rs6000_generate_compare.
8544         (output_e500_flip_gt_bit): New.
8545
8546         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
8547         Protoize.
8548
8549 2004-04-19  Eric Christopher  <echristo@redhat.com>
8550
8551         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
8552
8553 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
8554
8555         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
8556         fix information.
8557
8558 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8559
8560         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
8561         download URL.
8562
8563 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
8564
8565         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
8566         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
8567
8568 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
8569
8570         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
8571         (fold_builtin): Update caller to match.
8572
8573         PR bootstrap/15009
8574         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
8575
8576         PR bootstrap/14999
8577         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
8578
8579 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8580
8581         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
8582
8583         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
8584         (expand_mult_highpart_optab): Likewise.
8585         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
8586
8587 2004-04-19  Paul Brook  <paul@codesourcery.com>
8588
8589         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
8590         floatunssisf2, floatunssidf2): New patterns.
8591
8592 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
8593
8594         PR other/14918
8595         * doc/invoke.texi (-fprofile-generate): Document requirement to
8596         use -fprofile-generate when linking.
8597
8598         * doc/extend.texi (Strong Using): Warn users against using this
8599         feature.
8600
8601 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
8602
8603         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
8604         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
8605         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
8606         * config/mips/mips.c (struct mips16_constant): Renamed from struct
8607         constant.  Propogate change throughout file.
8608         (struct machine_function): Remove insns_len.
8609         (mips_string_length, mips16_strings, string_constants): Delete.
8610         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
8611         when generating mips16 code.  Remove special mips16 treatment of
8612         string constants.
8613         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
8614         to have the form LABEL+CONSTANT.
8615         (mips_symbolic_address_p): Fix comment.
8616         (m16_usym8_4, m16_usym5_4): Delete.
8617         (mips_output_function_epilogue): Remove mips16 string handling.
8618         (mips_output_mi_thunk): Call mips16_lay_out_constants.
8619         (mips_select_section, mips_encode_section_info): Remove mips16
8620         string handling.
8621         (struct mips16_constant_pool): New.
8622         (add_constant): Take a mips16_constant_pool structure.  Keep pool
8623         sorted into order of ascending mode size.  Keep track of the highest
8624         possible start address, taking padding and the masking of the base PC
8625         value into account.
8626         (dump_constants_1): New function, split out from dump_constants.
8627         Handle vector constants.  Use gen_consttable_{int,float} rather than
8628         separate functions for each mode.
8629         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
8630         rather than separate functions for each alignment.
8631         (mips_find_symbol): Delete.
8632         (mips16_insn_length): New function, split out from
8633         mips16_lay_out_constants.
8634         (mips16_rewrite_pool_refs): New function.
8635         (mips16_lay_out_constants): Rework. Remove string handling.
8636         Always create an inline constant pool.
8637         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
8638         (UNSPEC_ALIGN): New constants.
8639         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
8640         (UNSPEC_ALIGN_[248]): Delete.
8641         (consttable_int, consttable_float, align): New patterns.
8642         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
8643
8644 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
8645
8646         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
8647         __unn_args_eq.
8648
8649 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
8650
8651         PR target/14715
8652         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
8653         with STARTING_FRAME_OFFSET.
8654
8655 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
8656
8657         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
8658         * config/mips/mips.c (macc_msac_operand): New function.
8659         * config/mips/mips.md (*msac): Move after *macc.
8660         (*msac2): New.  Generalize macc-related peepholes so that they apply
8661         to msac too.
8662
8663 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
8664
8665         * opts.c (decode_options): Do not enable flag_rename_registers
8666         and flag_web at -O3.
8667         * toplev.c (flag_rename_registers): Initialize
8668         flag_rename_registers and flag_web to
8669         AUTODETECT_FLAG_VAR_TRACKING.
8670         (default_debug_hooks): New global.
8671         (process_options): Initialize default_debug_hooks.  Warn if
8672         -fvar-tracking specified but not supported by the current
8673         debug format.  Do not run var tracking at -O0 or if not
8674         supported by the current debug format, even if
8675         -fvar-tracking was given.  If -fno-rename-registers
8676         is not specified, always run register renaming if var
8677         tracking is supported by the default debugging information
8678         format for the target, and we are at -O1 or higher; similarly
8679         for -fweb, but only at -O2 or higher.
8680         * doc/invoke.texi (Optimize Options): Document this.
8681
8682 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
8683
8684         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
8685         * configure: Regenerate.
8686
8687 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
8688
8689         * gcc.c (used_arg): Check whether an option has been removed.
8690
8691 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8692
8693         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
8694         debugging on Solaris 7 and up.
8695
8696 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8697
8698         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
8699         IRIX 5 port.
8700         Remove -save-temps workaround, handled automatically.
8701         Require GNU binutils 2.15 for debugging.
8702         Remove SGI make warnings since GNU make is now required.
8703         (Specific, mips-sgi-irix6): Some markup fixes.
8704         Describe MIPSpro C problems and workarounds.
8705         Mention working O32 ABI support.
8706         Recommend GNU as 2.15 for O32 with debugging.
8707         Remove description of fixed structure pass/return bug.
8708
8709 2004-04-16  DJ Delorie  <dj@redhat.com>
8710
8711         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
8712         TYPE_FIELDS.
8713         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
8714
8715 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8716
8717         * pa.md: Remove unnecessary declarations for asm_out_file.
8718
8719         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
8720         SAR register.  Fix comment.
8721         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
8722         (%cr11).
8723
8724         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
8725
8726 2004-04-16  Nick Clifton  <nickc@redhat.com>
8727
8728         * config/arm/arm.c (arm_override_options): Revert previous patch.
8729         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
8730         be safely built.
8731
8732 2004-04-16  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
8733
8734         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
8735         bug.
8736         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
8737         TARGET_DEFAULT): Changed. Ditto.
8738         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
8739         TARGET_ENDIAN_DEFAULT): Added. Ditto.
8740         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
8741         (TARGET_ENDIAN_DEFAULT): Added.
8742
8743 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8744
8745         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
8746         ATTR_CONST_NOTHROW_LIST.
8747
8748 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8749
8750         PR/middle-end 14915
8751         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
8752         BITS_BIG_ENDIAN.
8753
8754 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
8755
8756         * ra-debug.c (ra_print_rtx): Add break's to case legs.
8757
8758 2004-04-14  James E Wilson  <wilson@specifixinc.com>
8759
8760         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
8761
8762 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
8763
8764         * libada-mk.in: New file.
8765         * configure.ac: Create libada-mk from libada-mk.in.
8766         * configure: Regenerate.
8767
8768 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
8769
8770         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
8771         (logb_optab, ilogb_optab): Define corresponding macros.
8772         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
8773         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
8774         using logb?f2 and ilogb?i2 patterns.
8775         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
8776         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
8777         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
8778         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
8779
8780         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
8781         and UNSPEC_XTRACT_EXP.
8782
8783         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
8784         patterns to implement fxtract x87 instruction.
8785         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
8786         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
8787         intrinsics.
8788         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
8789         x87's fxtract insn.
8790
8791 2004-04-14  Eric Christopher  <echristo@redhat.com>
8792
8793         * config/mips/t-elf: Enable multilibs by default.
8794
8795 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
8796
8797         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
8798         previous fix to check HAVE_return at runtime too.
8799
8800 2004-04-14  Nick Clifton  <nickc@redhat.com>
8801
8802         * config/arm/arm.c (arm_override_options): If the user has not
8803         specified an ABI, then default to AAPCS for the iWMMXt processor.
8804         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
8805         * config/arm/t-xscale-coff: Likewise.
8806
8807 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8808
8809         * builtins.c (fold_builtin_isdigit): New.
8810         (fold_builtin): Handle BUILT_IN_ISDIGIT.
8811         * defaults.h: Add TARGET_DIGIT0 and sort.
8812         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
8813
8814 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8815
8816         * builtins.c (fold_builtin_cabs, fold_builtin): Use
8817         `mathfn_built_in' to determine the new builtin.
8818         * fold-const.c (fold): Likewise.
8819
8820 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
8821
8822         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
8823         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
8824         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
8825         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
8826         (ASM_SPEC): Update accordingly.
8827         * config/mips/mips.c: Update after above renaming.
8828         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
8829         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
8830
8831 2004-04-13  James E Wilson  <wilson@specifixinc.com>
8832
8833         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
8834         increment errorcount and return false instead of true.
8835
8836 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
8837
8838         * optabs.c (expand_twoval_unop): Reorder function arguments.
8839         * builtins.c (expand_builtin_mathfn_3): Update calls to
8840         expand_twoval_unop.
8841
8842         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
8843         and UNSPEC_TAN_TAN. Add missing comment.
8844
8845         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
8846         patterns to implement fptan x87 instruction.
8847         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
8848         and tanl built-ins as inline x87 intrinsics. Define corresponding
8849         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
8850         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
8851         x87's fptan insn.
8852
8853 2004-03-13  Richard Henderson  <rth@redhat.com>
8854
8855         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
8856         for LABEL_REFs.
8857
8858         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
8859         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
8860         * doc/invoke.texi: Update to match.
8861
8862         * varasm.c (unlikely_text_section): Use assemble_align instead of
8863         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
8864         correct alignment argument.
8865
8866 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
8867
8868         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
8869         after setting reg_last_reload_reg for optional output reloads.
8870
8871 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
8872
8873         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
8874         Definition of these two macros are corrected by adding
8875         matchine right paren.
8876
8877 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
8878
8879         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
8880
8881 2004-04-12  Roger Sayle  <roger@eyesopen.com>
8882
8883         * config/i386/i386.c (output_387_reg_move): New function.
8884         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
8885         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
8886         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
8887         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
8888         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
8889
8890 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8891
8892         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
8893         TYPE_DECL.
8894         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
8895         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
8896         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
8897         Use skip_simple_arithmetic to find SAVE_EXPR.
8898         (force_type_save_exprs, force_type_save_exprs_1): New functions.
8899         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
8900         Properly chain multiple pointers.
8901         (copy_tree_r): Copy a TYPE_DECL.
8902         * tree.c (variably_modified_type_p): Add some missing tests and
8903         make some other minor changes.
8904         * tree.h (force_type_save_exprs): New declaration.
8905
8906 2004-04-12  Roger Sayle  <roger@eyesopen.com>
8907
8908         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
8909         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
8910         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
8911         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
8912         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
8913         x%-1 into 0 (or x&0 if x has side-effects).
8914
8915 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
8916
8917         * config/rs6000/rs6000.md: Document why a pattern is not
8918         available.
8919
8920         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
8921         of floats on the E500.
8922         (branch_positive_comparison_operator): Do not allow NE even on the
8923         E500.
8924
8925 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
8926
8927         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
8928         in_text_unlikely_section to in_unlikely_text_section.
8929
8930 2004-04-11  Roger Sayle  <roger@eyesopen.com>
8931
8932         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
8933         calling convention to allow a NULL_TREE to be returned.  Factor
8934         sanity checks from callers, return NULL_TREE when appropriate.
8935         (fold): Handle COMPOUND_EXPR operands of binary expressions
8936         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
8937         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
8938         calls to fold_binary_op_with_conditional_arg.
8939
8940 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8941
8942         * config/mips/iris5.h (current_section_flags):  Add
8943         in_unlikely_executed_text and default case.
8944
8945 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
8946
8947         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
8948         failure on solaris. Place ifdef HAVE_return around gen_ret call.
8949         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
8950         HAVE_return and place it around the place where it is needed.
8951
8952 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
8953
8954         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
8955         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
8956         and NORMAL_TEXT_SECTION_NAME.
8957         (unlikely_text_section): Check targetm.have_named_sections
8958         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
8959         instead of SECTION_FORMAT_STRING.
8960         * config/mips/iris5.h (current_section_name): Add
8961         in_unlikely_executed_text case and move the abort into the switch.
8962         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
8963         (NORMAL_TEXT_SECTION_NAME): Remove.
8964         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
8965         (SECTION_FORMAT_STRING): Remove.
8966         * defaults.h (SECTION_FORMAT_STRING): Remove.
8967         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
8968         (SECTION_FORMAT_STRING): Remove.
8969
8970 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
8971
8972         * c-typeck.c (common_type): Prefer long long to long when same
8973         precision.
8974
8975 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
8976
8977         PR 14887
8978         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
8979         mode argument.
8980         * config/ia64/ia64.c (ia64_hpux_file_end): Check
8981         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
8982
8983 2004-04-09  Roger Sayle  <roger@eyesopen.com>
8984
8985         * simplify-rtx.c (mode_signbit_p): New function to check whether
8986         an RTX is an immediate constant that represents the most significant
8987         bit of a given machine mode.
8988         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
8989         C is the sign bit.
8990         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
8991         when C2 is the sign bit.
8992         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
8993         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
8994         sign bit.
8995
8996 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8997
8998         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
8999         TYPE_MODE.
9000
9001 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
9002
9003         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
9004         of TREE_READONLY for types.
9005
9006 2004-04-09  Caroline Tice  <ctice@apple.com>
9007
9008         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
9009         (struct basic_block_def):  Add new field, partition.
9010         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
9011         definitions.
9012         (partition_hot_cold_basic_blocks): Add extern function
9013         declaration.
9014         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
9015         include statements.
9016         (N_ROUNDS): Increase the maximum number of rounds by 1.
9017         (branch_threshold): Add array value for new round.
9018         (exec_threshold): Add array value for new round.
9019         (push_to_next_round_p): New function.
9020         (add_unlikely_executed_notes): New function.
9021         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
9022         (mark_bb_for_unlikely_executed_section): New function.
9023         (add_labels_and_missing_jumps): New function.
9024         (add_reg_crossing_jump_notes): New function.
9025         (fix_up_fall_thru_edges): New function.
9026         (find_jump_block): New function.
9027         (fix_crossing_conditional_branches): New function.
9028         (fix_crossing_unconditional_branches): New function.
9029         (fix_edges_for_rarely_executed_code): New function.
9030         (partition_hot_cold_basic_blocks): New function.
9031         (find_traces):  Add an extra round for partitioning hot/cold
9032         basic blocks.
9033         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
9034         and only cold blocks, into the last (extra) round of collecting traces.
9035         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
9036         over crossing edges.
9037         (bb_to_key):  Add code to correctly identify cold blocks when
9038         doing partitioning.
9039         (connect_traces): Modify to connect all the non-cold traces first, then
9040         go back and connect up all the cold traces.
9041         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
9042         * cfg.c (entry_exit_blocks): Add initialization for partition field in
9043         entry and exit blocks.
9044         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
9045         if we are doing hot/cold partitioning.
9046         * cfgcleanup.c (cfglayout.h): Add new include statement.
9047         (try_simplify_condjump): Modify to not attempt on blocks with jumps
9048         that cross section boundaries.
9049         (try_forward_edges): Likewise.
9050         (merge_blocks_move_predecessor_nojumps): Likewise.
9051         (merge_blocks_move_successor_nojumps): Likewise.
9052         (merge_blocks_move): Likewise.
9053         (try_crossjump_to_edge): Modify to not attempt after we have done
9054         the block partitioning.
9055         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
9056         cross section boundaries.
9057         (try_optimize_cfg): Likewise.
9058         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
9059         jumps that cross section boundaries.
9060         * cfglayout.c (flags.h): Add new include statement.
9061         (update_unlikely_executed_notes):  New function.
9062         (fixup_reorder_chain):  Add code so when a new jumping basic block is
9063         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
9064         updated appropriately.
9065         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
9066         introduced by this optimization.
9067         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
9068         extern function declaration.
9069         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
9070         list of notes that can be deleted.
9071         (create_basic_block_structure):  Add initialization for partition field.
9072         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
9073         section boundaries.
9074         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
9075         cross section boundaries.
9076         (commit_one_edge_insertion): Add code so newly created basic block
9077         ends up in correct (hot or cold) section.  Modify to disallow
9078         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
9079         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
9080         crosses section boundaries.
9081         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
9082         cross section boundaries.
9083         (force_nonfallthru_and_redirect): Modify to make sure new basic block
9084         ends up in correct section, with correct notes attached.
9085         * common.opt (freorder-blocks-and-partition):  Add new flag for this
9086         optimization.
9087         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
9088         the end of functions are written into the correct (hot or cold)
9089         section.
9090         (dbx_source_file): Add code so writing debug file information
9091         doesn't incorrectly change sections.
9092         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
9093         in partitioning hot/cold basic blocks into separate sections.
9094         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
9095         section partitioning.
9096         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
9097         conditional branches can span all of memory.
9098         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
9099         unconditional branches can span all of memory.
9100         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
9101         (final_scan_insn):  Add code to check for NOTE instruction indicating
9102         whether basic block belongs in hot or cold section, and to make sure
9103         the current basic block is being written to the appropriate section.
9104         Also added code to ensure that jump table basic blocks end up in the
9105         correct section.
9106         * flags.h (flag_reorder_blocks_and_partition):  New flag.
9107         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
9108         one of the branches has a jump that crosses between sections.
9109         (find_if_case_2): Likewise.
9110         (ifcvt): Modify to not attempt to mark loop exit edges after
9111         hot/cold partitioning has occurred.
9112         * opts.c (decode_options): Code to handle new flag,
9113         flag_reorder_blocks_and_partition; also to turn it off if
9114         flag_exceptions is on.
9115         (common_handle_option): Code to handle new flag,
9116         flag_reorder_blocks_and_partition.
9117         * output.h (unlikely_text_section): New extern function declaration.
9118         (in_unlikely_text_section): New extern function declaration.
9119         * passes.c (rest_of_handle_stack_regs):  Add
9120         flag_reorder_blocks_and_partition as an 'or' condition for calling
9121         reorder_basic_blocks.
9122         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
9123         as an 'or' condition for calling reorder_basic_blocks.
9124         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
9125         * print-rtl.c (print_rtx): Add code for handling new note,
9126         NOTE_INSN_UNLIKELY_EXECUTED_CODE
9127         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
9128         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
9129         cross between section boundaries.
9130         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
9131         indicating the basic block containing it belongs in the cold section.
9132         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
9133         between hot and cold sections.
9134         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
9135         initialize this flag, and to tie it to the command-line option
9136         freorder-blocks-and-partition.
9137         * varasm.c (cfglayout.h):  Add new include statement.
9138         (unlikely_section_label_printed):  New global variable, used for
9139         determining when to output section name labels for cold sections.
9140         (in_section):  Add in_unlikely_executed_text to enum data structure.
9141         (text_section):  Modify code to use SECTION_FORMAT_STRING and
9142         NORMAL_TEXT_SECTION_NAME macros.
9143         (unlikely_text_section):  New function.
9144         (in_unlikely_text_section):  New function.
9145         (function_section):  Add code to make sure beginning of function is
9146         written into correct section (hot or cold).
9147         (assemble_start_function):  Add code to make sure stuff is written to
9148         the correct section.
9149         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
9150         to an if statement that was checking 'in_text_section'.
9151         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
9152         condition to an if statement that was checking 'in_text_section'.
9153         (default_section_type_flags_1):  Add check: if in cold section
9154         flags = SECTION_CODE.
9155         * config/darwin.c (darwin_asm_named_section):  Modify to use
9156         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
9157         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
9158         specifically for the i386.
9159         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
9160         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
9161         text string to something more informative.
9162         (NORMAL_TEXT_SECTION_NAME): Add new definition.
9163         (SECTION_FORMAT_STRING):  Add new definition.
9164         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
9165         '!in_unlikely_text_section' as an 'and' condition to an if statement
9166         that was already checking '!in_text_section'.
9167         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
9168         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
9169         sure these are properly defined for linux on ppc.
9170         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
9171         for this new flag.
9172         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
9173         reg_note.
9174         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
9175         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
9176         these new macros.
9177
9178 2004-04-08  Roger Sayle  <roger@eyesopen.com>
9179
9180         * function.c (gen_mem_addressof): When changing the RTX from a REG
9181         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
9182
9183 2004-04-08  Roger Sayle  <roger@eyesopen.com>
9184
9185         PR target/14888
9186         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
9187         truncxfdf2_noop): Provide dummy "fmov" implementations.
9188
9189 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
9190
9191         * gcc.c (default_compilers): Add missing initializers.
9192
9193         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
9194         Return 1 if file was successfully mapped.
9195
9196 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
9197
9198         PR pch/13419
9199         PR pch/14137
9200         Radar #: 3315288
9201         * doc/invoke.texi (Precompiled Headers): Suggest -o
9202         to put an output file in a particular place.  Be more detailed
9203         about which options affect PCH validity and which options
9204         might not work.
9205         * c-pch.c (pch_matching): New.
9206         (MATCH_SIZE): New.
9207         (struct c_pch_validity): New field 'match'.
9208         (pch_init): Handle pch_matching.
9209         (c_common_valid_pch): Check pch_matching.
9210
9211         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
9212
9213 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
9214
9215         * doc/invoke.texi (Precompiled Headers): Warn about known
9216         problems.
9217
9218 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
9219
9220         PR c++/14808
9221         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
9222         to 1 if ASM_OUTPUT_DEF is defined.
9223         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
9224         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
9225         Set to non-zero iff not a one_only decl.
9226
9227 2004-04-08  Paul Brook  <paul@codesourcery.com>
9228
9229         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
9230
9231 2004-04-08  Paul Brook  <paul@codesourcery.com>
9232
9233         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
9234         PROMOTE_FOR_CALL_ONLY.
9235         * config/arm/arm-protos.h (arm_function_value): Declare.
9236         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
9237         (TARGET_PROMOTE_PROTOTYPES): Return false.
9238         (arm_function_value): New function.
9239         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
9240         (FUNCTION_VALUE): Call arm_function_value.
9241         * config/cris/cris.h (PROMOTE_MODE): Rename ...
9242         (PROMOTE_FUNCTION_MODE): ... to this.
9243         (PROMOTE_FOR_CALL_ONLY): Remove.
9244         * config/mmix/mmix.h: Likewise.
9245         * config/s390/s390.h: Likewise.
9246         * config/sparc/sparc.h: Likewise.
9247         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
9248         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
9249         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
9250         (PROMOTE_FOR_CALL_ONLY): Remove.
9251
9252 2004-04-08  Joel Sherrill <joel@oarcorp.com>
9253
9254         PR ada/14538
9255         * ada/5rosinte.adb: Remove fake mprotect() body.
9256         * ada/5rosinte.ads: Add SA_SIGINFO.
9257         * ada/5rtpopsp.adb: Rewrite to use new interface.
9258         * ada/init.c: Reorder so the simple single OS conditional __rtems__
9259         is tested before more complex ones which mix UNIX and embedded
9260         systems in the conditional.
9261
9262 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
9263
9264         PR ada/14665
9265         * ada/osint.adb (Find_Program_Name): Rework to properly handle
9266         filenames which end in .exe or have versioning suffixes like VMS.
9267
9268 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
9269
9270         PR target/10129
9271         * config/darwin.c (darwin_encode_section_info): When the decl has
9272         a DECL_INITIAL, it is only defined also when it is not a common.
9273
9274 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9275
9276         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
9277         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
9278
9279 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
9280
9281         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
9282         global register variables.
9283
9284 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
9285
9286         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
9287         rpc_xdr_lvalue_cast_b): New fixes.
9288         * fixinc/fixincl.x: Regenerate.
9289         * fixinc/tests/base/rpc/xdr.h: Add new tests.
9290
9291 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
9292
9293         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
9294         to power4 and power5 entries.
9295
9296 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
9297
9298         * c-common.h (pending_lang_change): Mark for PCH.
9299
9300 2004-04-07  Caroline Tice  <ctice@apple.com>
9301
9302         * gcc.c (main): Move 'break' in main loops (on an error)
9303         to wait until error processing has occurred.
9304
9305 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
9306
9307         * config.gcc: Stop changing enable_threads midstream.
9308         Replace uses of enable_threads_flag with enable_threads.
9309         * configure.ac: Replace uses of enable_threads_flag with
9310         enable_threads.  Improve autoconf quotation in one place.
9311         * configure: Regenerate.
9312
9313 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
9314
9315         * builtins.c: Implement support for sincos function.
9316         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
9317         BUILT_IN_COS{,F,L}.
9318         (expand_builtin_mathfn_3): New function.
9319         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
9320         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
9321         flag_unsafe_math_optimization is set.
9322
9323         * optabs.h (enum optab_index): Add new OTI_sincos.
9324         (sincos_optab): Define corresponding macro.
9325
9326         * optabs.c (init_optabs): Initialize sincos_optab.
9327         (expand_twoval_unop): New function.
9328
9329         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
9330         patterns.
9331
9332         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
9333         and UNSPEC_SINCOS_SIN.
9334
9335         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
9336         sincosxf3): New patterns to implement sincos, sincosf and sincosl
9337         built-ins as inline x87 intrinsics. Define splits for
9338         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
9339         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
9340         sincos patterns.
9341         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
9342         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
9343
9344         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
9345         x87's fsincos insn.
9346
9347 2004-04-06  Devang Patel  <dpatel@apple.com>
9348
9349         PR 14467
9350         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
9351
9352 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9353
9354         * doc/install.texi: Update HP-UX 11 installation procedure.
9355
9356 2004-04-06  Paul Brook  <paul@codesourcery.com>
9357
9358         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
9359
9360 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
9361
9362         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
9363         when the TLS address is generated by a function call.
9364         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
9365         (tls_local_dynamic): Likewise.
9366
9367 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
9368
9369         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
9370         and TYPE_VOLATILE.
9371
9372 2004-04-05  Caroline Tice  <ctice@apple.com>
9373
9374         * gcc.c (combine_flag): New global variable, for new driver option.
9375         (struct compiler): Add two new fields, to be used when
9376         combining multiple input files in a single pass (IMA).
9377         (default_compilers):  Add values for the new fields to all
9378         compiler entries. Modify the "@c" compiler entry for doing IMA
9379         properly with "-save-temps" and the "combine" flag.
9380         (option_map):  Add new driver option, "--combine", to tell driver
9381         to pass multiple input files to compiler at one time.
9382         (have_o_argbuf_index): New global variable.
9383         (store_arg): Modify to assign value to have_o_argbuf_index.
9384         (struct infile):  Add three new fields, to help with IMA.
9385         (display_help): Add help for new "combine" option.
9386         (process_command): Remove local variable have_o; add code to check
9387         for new "combine" option; remove assignment to combine_inputs.
9388         (do_spec_1):  Modify to deal with IMA better.
9389         (main): Make variable 'lang_n_infiles' local to entire function
9390         rather than to a single block.  Use flag combine_flag to
9391         determine whether to do IMA or not; Modify loop initializing
9392         infiles to deal properly with linker files.
9393         Add code for doing preprocessing in presence of
9394         IMA with "-save-temps" flag.  Modify "main" loop to handle
9395         multiple input files, in multiple languages, with or without
9396         preprocessing,  gracefully.
9397         * toplev.c (set_src_pwd): Modify to not complain if attempting to
9398         re-set it to same directory it's previously been set to (avoid
9399         irritating, meaningless warning messages when doing IMA with
9400         save-temps).
9401         * doc/invoke.texi: Add "-combine" to list of Overall Options;
9402         remove documentation about IMA that is no longer accurate; Add
9403         documentation explaining what "-combine" does.
9404         * ada/lang-specs.h: Add initialization values for new fields in
9405         "struct compiler".
9406         * cp/lang-specs.h: Likewise.
9407         * f/lang-specs.h: Likewise.
9408         * java/lang-specs.h: Likewise.
9409         * objc/lang-specs.h: Likewise.
9410         * treelang/lang-specs.h: Likewise.
9411
9412 2004-04-05  David Edelsohn
9413
9414         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
9415         symbol handling.
9416
9417 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
9418             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9419
9420         PR optimization/13424 (hppa), bootstrap/14462, c/14828
9421         * pa.md: Use replace_equiv_address to retain the attributes of the
9422         memory operands used in the split and peephole2 patterns for optimizing
9423         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
9424
9425 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9426
9427         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
9428         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
9429         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
9430         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
9431         PARM_DECL.
9432         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
9433         for a type.
9434         * print-tree.c (print_node): Properly handle side-effects, readonly,
9435         and constant flags.
9436         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
9437         and TREE_CONSTANT if not a type.
9438         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
9439         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
9440         (NON_TYPE_CHECK): New macro.
9441         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
9442
9443 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
9444
9445         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
9446         to DWARF2_DEBUG unconditionally.
9447         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
9448
9449 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
9450             Nathanael Nerode  <neroden@gcc.gnu.org>
9451
9452         PR target/14548
9453         * config.host: Set the shell variable host_can_use_collect2.
9454         Set it to yes by default, and to no for alpha*-dec-*vms*,
9455         i[34567]86-*-mingw32*, and powerpc-*-beos*.
9456         * configure.ac: Set and substitute the shell variable collect2.
9457         Give an error if use_collect2 is yes and host_can_use_collect2 is
9458         no.
9459         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
9460         uses.  Initialize to @collect2@.
9461         (STAGESTUFF): Remove $(USE_COLLECT2).
9462         * config/alpha/x-vms (USE_COLLECT2): Don't set.
9463         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
9464         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
9465         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
9466         * configure: Regenerate.
9467
9468 2004-04-04  Roger Sayle  <roger@eyesopen.com>
9469
9470         * simplify-rtx.c (simplify_binary_operation): Constant fold
9471         DIV, MOD, UDIV and UMOD using div_and_round_double.
9472
9473 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
9474
9475         PR c++/14804
9476         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
9477         RECORD_TYPEs.
9478
9479 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
9480
9481         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
9482         documentation.
9483
9484 2004-04-04  Roger Sayle  <roger@eyesopen.com>
9485
9486         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
9487         updating the REG_EQUAL note on an insn's libcall_insn.
9488
9489 2004-04-04  Roger Sayle  <roger@eyesopen.com>
9490
9491         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
9492
9493 2004-04-03  Roger Sayle  <roger@eyesopen.com>
9494
9495         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
9496         with reorder_operands_p.
9497
9498 2004-04-03  Jan Hubicka  <jh@suse.cz>
9499
9500         * md.texi (vec_set, vec_extract, vec_init): Document.
9501
9502 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
9503
9504        * opts.c (decode_options): Do function inlining with very small
9505        max-inline-insns-* parameters when optimizing for size.
9506
9507 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
9508
9509         * config/i386/i386.h (TARGET_NOCONA): New macro.
9510         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
9511         (processor_type): Add PROCESSOR_NOCONA.
9512
9513         * config/i386/i386.md (cpu): Add nocona to the attribute values.
9514
9515         * config/i386/i386.c (nocona_cost): New variable.
9516         (m_NOCONA): New macro.
9517         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
9518         x86_branch_hints, x86_use_sahf, x86_single_stringop,
9519         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
9520         x86_integer_DFmode_moves, x86_partial_reg_dependency,
9521         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
9522         x86_decompose_lea, x86_arch_always_fancy_math_387,
9523         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
9524         x86_ext_80387_constants, x86_four_jump_limit):
9525         (override_options): Add nocona_cost to processor_target_table.
9526         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
9527         (incdec_operand): Prevent inc/dec generation for Nocona too.
9528         (ix86_issue_rate): Add PROCESSOR_NOCONA.
9529
9530 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
9531
9532         * rtlanal.c (find_reg_note): Manually
9533         unswitch the loop.
9534
9535 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
9536
9537         * genemit.c (gen_split): Change prototype of generated code.
9538         * genrecog.c (write_action): Adjust prototype for and calls to
9539         gen_split_*.
9540         * gensupport.c (struct queue_elem): Add split field.
9541         (queue_pattern): Return a value.  Clear the split field.
9542         (process_rtx): Maintain an association between an insn and the
9543         split generated from it for a define_insn_and_split.
9544         (process_one_cond_exec): Generate a new split for a
9545         define_insn_and_split.
9546         * config/arm/arm-protos.h (arm_split_constant): Add insn
9547         parameter.
9548         (emit_constant_insn): New function.
9549         (arm_gen_constant): Use it.
9550         * config/arm/arm.md: Adjust calls to arm_split_constant.
9551
9552 2004-04-02  Jan Hubicka  <jh@suse.cz>
9553
9554         * cgraph.c: Add overall comment.
9555         (cgraph_inline_hash): New global variable.
9556         (cgraph_create_node): Break out from ...
9557         (cgraph_node): ... here.
9558         (cgraph_edge): New function.
9559         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
9560         (cgraph_remove_edge): Accept edge, intead of source and destination.
9561         (cgraph_redirect_edge_callee): New.
9562         (cgraph_remove_node): Update all new datastructures.
9563         (cgraph_record_call, cgraph_remove_call): Kill.
9564         (dump_cgraph_node): Break out from ... ; dump new datastructures.
9565         (dump_cgraph): ... here.
9566         (cgraph_function_possibly_inlined_p): Use new hashtable.
9567         (cgraph_clone_edge, cgraph_clone_node): New.
9568         * cgraph.h: Include hashtab.h
9569         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
9570         fields, add inlined_to pointer.
9571         (cgraph_node): Add pointer to next_clone.
9572         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
9573         (cgraph_remove_call, cgraph_record_call): Kill.
9574         (cgraph_inline_hash): Declare.
9575         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
9576         cgraph_redirect_edge_callee): Declare.
9577         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
9578         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
9579         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
9580         * cgraphunit.c: Add overall comment.
9581         (cgraph_optimize_function): Kill.
9582         (cgraph_assemble_pending_functions): Do not assemble inline clones.
9583         (cgraph_finalize_function): Update call of cgraph_remove_node
9584         (record_call_1): Record call sites.
9585         (cgraph_create_edges): Accept node instead of decl argument.
9586         (error_found): New static variable.
9587         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
9588         (cgraph_analyze_function): Update for new datastructures.
9589         (cgraph_finalize_compilation_unit): Plug memory leak.
9590         (cgraph_optimize_function): Kill.
9591         (cgraph_expand_function): Do not use cgraph_optimize_function.
9592         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
9593         cgraph_inlined_callees): Kill.
9594         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
9595         clones.
9596         (estimate_growth): Simplify.
9597         (cgraph_clone_inlined_nodes): New function.
9598         (cgraph_mark_inline_edge): Re-implement.
9599         (cgraph_mark_inline): Likewise.
9600         (cgraph_check_inline_limits): Simplify.
9601         (cgraph_recursive_inlining_p): New.
9602         (update_callee_keys): Break out from ...
9603         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
9604         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
9605         Likewise.
9606         (cgraph_expand_all_functions):  Remove inline clones from the ordered
9607         list.
9608         (cgraph_preserve_function_body_p): New predicate.
9609         (cgraph_optimize): Verify cgraph.
9610         * function.h (struct function): Add fields saved_tree/saved_args.
9611         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
9612         * toplev.c (rest_of_compilation): Do not free cfun.
9613         * tree-inline.c: Include function.h
9614         (struct inline_data): Add saving_p field; replace decl/current_decl by
9615         node/current_node.
9616         (insert_decl_map): New function.
9617         (copy_body_r): Handle saving; update cgraph datastructure.
9618         (copy_body): Handle recursive inlining.
9619         (initialize_inlined_parameters): Likewise.
9620         (expand_call_inline): Propagate node attributes; update cgraph.
9621         (optimize_inline_calls): Verify that datastructure still match.
9622         (save_body): New function.
9623         * tree-inline.h (save_body): New.
9624         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
9625         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
9626         * langhooks.c (lang_hooks): Add update_decl_after_saving.
9627
9628 2004-04-01  Serge Belyshev  <1319@bot.ru>
9629
9630         PR target/14702
9631         * config/i386/i386.md: fix source operand constraints in
9632         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
9633
9634 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
9635
9636         * fold-const.c (folda): Preserve types of comparisons.
9637
9638 2004-04-01  Richard Henderson  <rth@redhat.com>
9639
9640         * toplev.c (backend_init): Move init_optimization_passes call ...
9641         (lang_dependent_init): ... here.
9642
9643 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
9644             Jakub Jelinek  <jakub@redhat.com>
9645
9646         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
9647         -lgcc --as-needed -lgcc_s --no-as-needed by default.
9648         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
9649         * configure: Rebuilt.
9650         * config.in: Rebuilt.
9651         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
9652         (stage2-start, stage3-start, stage4-start): Likewise.
9653         (stageprofile-start, stagefeedback-start): Likewise.
9654
9655 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
9656
9657         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
9658         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
9659         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
9660         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
9661         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
9662         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
9663         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
9664         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
9665         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
9666         * config/sparc/t-linux: Removed.
9667
9668 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
9669
9670         PR c++/14755
9671         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
9672         "bitfld++ == const" to "++bitfld == const + incr" transformations.
9673
9674 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9675
9676         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
9677         * stor-layout.c (layout_decl): Likewise.
9678         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
9679         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
9680         * print-tree.c (print_node): Handle various used of unsigned_flag.
9681         * tree.def (BIT_FIELD_REF): Update comment.
9682         * tree.h (TREE_UNSIGNED): Deleted.
9683         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
9684
9685 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9686
9687         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
9688         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
9689         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
9690         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
9691         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
9692         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
9693         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
9694         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
9695         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
9696         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
9697         REAL_TYPE, not INTEGER_TYPE.
9698         (layout_type, case VECTOR_TYPE): Simplify code.
9699         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
9700         * tree.h: Update comments.
9701         (STRIP_NOPS): Use TYPE_UNSIGNED.
9702         (TYPE_UNSIGNED): New macro.
9703         (TYPE_TRAP_SIGNED): Remove now redundant check.
9704         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
9705
9706 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9707
9708         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
9709
9710 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
9711
9712         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
9713         Add darwin-fpsave.asm, darwin-vecsave.asm,
9714         and darwin-world.asm.
9715         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
9716         as the asm files contain altivec instructions.
9717         * config/rs6000/darwin-fpsave.asm: New file.
9718         * config/rs6000/darwin-vecsave.asm: New file.
9719         * config/rs6000/darwin-world.asm: New file.
9720
9721 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
9722
9723         * gengtype-yacc.y (option, stringseq): Add missing
9724         terminating semicolon.
9725
9726 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
9727
9728         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
9729         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
9730         tls_dtprel_ha_32, tls_dtprel_ha_64,
9731         tls_dtprel_lo_32, tls_dtprel_lo_64,
9732         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
9733         tls_tprel_ha_32, tls_tprel_ha_64,
9734         tls_tprel_lo_32, tls_tprel_lo_64,
9735         tls_got_tprel_32, tls_got_tprel_64,
9736         tls_tls_32, tls_tls_64): Replace register_operand with
9737         gpc_reg_operand.
9738
9739 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
9740
9741         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
9742         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
9743         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
9744         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
9745         *ctrdi_internal6): Replace register_operand with
9746         nonimmediate_operand.
9747
9748 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
9749
9750         * fold-const.c (fold): Reassociate multiply expression
9751         with an adjacent non-multiply expression to use
9752         architecture's multiply-add instruction.
9753
9754 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
9755
9756         * gengtype.c (create_option): New function.
9757         * gengtype.h: Prototype it.
9758         * gengtype-yacc.y (stringseq): New rule.
9759         (option): Use create_option.  Add new bare ID production.  Use
9760         stringseq, not STRING directly.
9761
9762         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
9763         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
9764         * varray.h, config/alpha/alpha.c:
9765         Use new shorter form of GTY markers.
9766
9767         * doc/gty.texi: Rewrite.
9768
9769 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
9770
9771         * config/darwin.c (machopic_function_base_name):
9772         Remove current_name and getting the name of the
9773         current function.
9774
9775 2004-03-30  Nick Clifton  <nickc@redhat.com>
9776
9777         * config/arm/arm.md (thumb_jump): Reduce the backward branch
9778         range, and increase the forward branch range, to allow for
9779         the fact that the PC will be off by 4.
9780
9781 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
9782
9783         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
9784
9785 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
9786
9787         * config/rs6000/rs6000.c (output_vec_const_move):
9788         Find all cases of EASY_VECTOR_15_ADD_SELF.
9789         (easy_vector_constant_add_self): Accept
9790         all vector constant loadable by vsplt* and vadd*.
9791         (easy_vector_same): Use easy_vector_splat_const.
9792         (easy_vector_const): Use easy_vector_splat_const.
9793         (easy_vector_splat_const): New function.
9794         (gen_easy_vector_constant_add_self): New function.
9795
9796         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
9797         New prototype.
9798
9799         * config/rs6000/altivec.md (movv4si splitter): Change to
9800         emit move insn with halfed vector constant.
9801         (*movv8hi splitter): Likewise.
9802         (*movv16qi splitter): Likewise.
9803
9804 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
9805
9806         PR 11591
9807         * config/rs6000/rs6000.c (rs6000_legitimate_address):
9808         Allow any offset to argument pointer in no-strict case.
9809
9810 2004-03-30  Jan Hubicka  <jh@suse.cz>
9811
9812         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
9813         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
9814         dump file in non-unit-at-a-time mode.
9815
9816 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
9817
9818         * config/cris/cris.h: Correct #ifdef to test for
9819         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
9820         HAVE_AS_MUL_BUG_ABORT_OPTION.
9821
9822 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9823
9824         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
9825         the address inside the old RTL.
9826
9827 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
9828
9829         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
9830         (struct c_binding, struct c_scope): Add chain_next
9831         attributes to GTY markers.
9832         (struct lang_identifier, struct lang_tree_node): Define
9833         here...
9834         * c-tree.h: ... not here.  No longer need to declare struct
9835         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
9836         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
9837         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
9838
9839         PR 14734, 11944
9840         * c-decl.c (get_parm_info): If error_mark_node is encountered
9841         in the bindings chain, unbind and discard it; don't abort.
9842
9843 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
9844             Dorit Naishlos <dorit@il.ibm.com>
9845
9846         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
9847         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
9848
9849 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
9850
9851         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
9852
9853         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
9854         (m68hc11_attribute_table): New attribute "page0" to mark a global
9855         variable as being allocated from within page0 section.
9856         (m68hc11_encode_label): New function.
9857         (m68hc11_strip_name_encoding): New function.
9858         (m68hc11_page0_symbol_p): New function.
9859         (m68hc11_indirect_p): Accept global variables marked in page0.
9860         (m68hc11_encode_section_info): Lookup "page0" attribute.
9861
9862         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
9863         represents access to page0 variables.
9864
9865         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
9866         ("*logicalsi3_silshl16_zext"): Likewise.
9867         ("*ashldi3_const32"): Likewise.
9868         (peephole2 ashift): Likewise.
9869
9870 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
9871
9872         * c-tree.h (C_DECL_REGISTER): New.
9873         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
9874         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
9875         (build_array_ref, c_mark_addressable): Set and use it.
9876         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
9877         Allow structures with volatile fields to be declared register.
9878         Don't check TREE_ADDRESSABLE before warning about taking address
9879         of register.
9880         * c-decl.c (finish_decl): Don't allow structures with volatile
9881         fields to be placed in named register.
9882         * doc/trouble.texi: Remove reference to structures with volatile
9883         fields in registers.
9884
9885 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
9886
9887         * function.c (thread_prologue_and_epilogue): Move
9888         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
9889         before the epilogue.
9890
9891 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
9892
9893         * expr.c (store_constructor): Use gen_int_mode to correctly
9894         sign-extend CONST_INT value.
9895
9896 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9897
9898         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
9899         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
9900         * doc/extend.texi: Likewise.
9901
9902 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
9903
9904         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
9905           with TYPE_ORIG_SIZE_TYPE.
9906
9907 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
9908
9909         PR 14219
9910         * c-typeck.c (build_binary_op): Do not allow comparisons of
9911         vectors.
9912
9913 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
9914
9915         * config.gcc: Remove sparc-tti-*.
9916         * config/sparc/pbd.h: Delete.
9917
9918         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
9919         * config/sparc/aout.h: Likewise.
9920
9921         * config/sparc/sparc.h: Remove if 0'd code.
9922         * config/sparc/sparc.md (call): Remove if 0'd code.
9923         (call_value): Likewise.
9924         (nonlocal_goto): Likewise.
9925         (unimp_insn): Delete.
9926
9927 2004-03-25  Roger Sayle  <roger@eyesopen.com>
9928
9929         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
9930         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
9931
9932 2004-03-25  Richard Henderson  <rth@redhat.com>
9933
9934         PR 11527
9935         * c-typeck.c (pop_init_level): Emit pending init elements earlier
9936         rather than later.
9937
9938 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9939
9940         * builtins.c (fold_builtin): Fix error in last change.
9941
9942 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
9943
9944         * config/mips/mips.h: Formatting fix.
9945
9946 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9947
9948         * builtins.def: Add ctype builtins.
9949         * doc/extend.texi: Likewise.
9950
9951 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9952
9953         * builtins.c (fold_builtin): Add new builtin optimizations for
9954         sqrt and/or cbrt.
9955         * fold-const.c (fold): Likewise.
9956
9957 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
9958
9959         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
9960         (rs6000_sched_groups): New variable.
9961         (processor_target_table): Add power5.
9962         (rs6000_override_options): Set rs6000_sched_insert_nops,
9963         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
9964         from rs6000_sched_groups.
9965         (output_cbranch): Use rs6000_always_hint.
9966         (rs6000_variable_issue): Use rs6000_sched_groups.
9967         (rs6000_adjust_cost): Add CPU_POWER5.
9968         (is_microcoded_insn): Use rs6000_sched_groups.
9969         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
9970         Return 2 for POWER5 cracked instructions.
9971         (is_cracked_insn): Use rs6000_sched_groups.
9972         (is_branch_slot_insn): Use rs6000_sched_groups.
9973         (rs6000_issue_rate): Add CPU_POWER5.
9974         (rs6000_sched_finish): Use rs6000_sched_groups.
9975         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
9976         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
9977         (DEFAULT_SCHED_COSTLY_DEP): Delete.
9978         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
9979         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
9980         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
9981         * config/rs6000/power5.md: New file.
9982         * doc/invoke.texi: Add power5 option.
9983
9984 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
9985
9986         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
9987         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
9988         * doc/invoke.texi: Fix a typo.
9989
9990 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
9991
9992         PR optimization/9707.
9993         * stmt.c (emit_case_nodes): Emit equality comparisons instead
9994         of recursing if both children are single-valued cases with no
9995         children.
9996
9997 2004-03-25  Paul Brook  <paul@codesourcery.com>
9998
9999         * config/arm/arm.c (vfp_print_multi): Remove.
10000         (arm_output_fldmx): New function.
10001         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
10002         (arm_expand_prologue): Update to match.
10003         (arm_get_vfp_saved_size): New Function.
10004         (arm_get_frame_offsets): Use it.
10005         (arm_output_epilogue): Use new functions.
10006
10007 2004-03-24  Richard Henderson  <rth@redhat.com>
10008
10009         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
10010         (reg_known_value, reg_known_value_size): Likewise; make static.
10011         (reg_known_equiv_p): Make static.
10012         (clear_reg_alias_info): Update for new indexing.
10013         (get_reg_known_value, set_reg_known_value): New.
10014         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
10015         (canon_rtx): Use them.
10016         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
10017         Don't play queer offsetting games with reg_known_value and
10018         reg_known_equiv_p.
10019         (end_alias_analysis): Free reg_known_value with gc.
10020         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
10021         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
10022         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
10023         functions instead.
10024
10025 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
10026
10027         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
10028         config/i386/mmintrin.h: Update copyright.
10029
10030 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
10031
10032         * configure.ac: Add --enable-werror-always (for top level bootstrap
10033         support).
10034         * configure: Regenerate.
10035
10036 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
10037
10038         * objc/objc-act.c (objc_comptypes): Treat comparisons
10039         between 'Class' and '<class> *' as explicitly invalid.
10040
10041 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
10042
10043         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
10044         (-fprofile-values): Add enabled with profile-{generate,use}.
10045         (-fvpt): Same.
10046         (-ftracer): Add enabled with profile-use.
10047         (-funit-at-a-time): Add enabled at -O2,-O3.
10048         (-funroll-loops): Add enabled with profile-use.
10049         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
10050         (max-gcse-passes): Mention default.
10051         (max-cse-path-length): Mention default.
10052
10053 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
10054
10055         * Makefile.in (STRICT2_WARN): Reorder.
10056         * configure.ac: Check for -Wold-style-definition, and use it
10057         in strict1_warn if it's available.
10058         * configure: Regnerate.
10059
10060 2004-03-24  Paul Brook  <paul@nowt.org>
10061
10062         * config.gcc <arm>: Add --with-abi=
10063         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
10064         thumb_far_jump_used): Remove prototypes.
10065         (arm_needs_doubleword_align): Add prototype.
10066         (thumb_compute_initial_elimination_offset): Ditto.
10067         * config/arm/arm.c (arm_get_frame_offsets): New function.
10068         (use_return_insn, output_return_instruction, arm_output_epilogue,
10069         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
10070         arm_expand_prologue, thumb_expand_epilogue): Use it.
10071         (arm_abi, target_abi_name, all_arm_abis): New variables.
10072         (arm_override_options): Set them.  Set structure padding for AAPCS.
10073         (arm_return_in_memory): Update ABI check.
10074         (arm_init_cumulative_args): Initialize can_split.
10075         (arm_needs_doubleword_align): New function.
10076         (arm_function_arg): Don't split args after pushing to stack. Handle
10077         doubleword/even reg alignment.
10078         (arm_va_arg): Handle all doubleword aligned args.
10079         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
10080         on ABI, not CPU.
10081         (arm_compute_save_reg0_reg12_mask): Fix comment.
10082         (thumb_get_frame_size, thumb_get_frame_size): Remove.
10083         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
10084         value for alignment.
10085         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
10086         to match.
10087         (thumb_compute_initial_elimination_offset): New function.
10088         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
10089         unneccessary rounding.
10090         * config/arm/arm.h (target_abi_name): Declare.
10091         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
10092         arm_abi_type, ARM_DEFAULT_ABI): Define.
10093         (ARM_FLAG_ATPCS): Remove.
10094         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
10095         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
10096         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
10097         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
10098         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
10099         Contitionalize on ABI, not CPU.
10100         (struct arm_stack_offsets): Define.
10101         (struct machine_function): Add stack_offsets.  Remove frame_size.
10102         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
10103         pushed.
10104         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
10105         doubleword alignment.
10106         (THUMB_INITIAL_ELIMINATION_OFFSET,
10107         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
10108         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
10109         * config/arm/arm.md (align_8): Enable for all targets.
10110         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
10111         (ARM_DEFAULT_ABI): Define.
10112         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
10113         -mstructure-size-boundary.
10114
10115 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
10116
10117         * configure.ac: Check for -Wno-variadic-macros; don't use
10118         -pedantic (in stage 1 or a simple 'make all') unless it's available,
10119         and if it's available, use it.  Also, clean up check for
10120         -Wno-long-long.
10121         * configure: Regenerate.
10122
10123 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
10124
10125         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
10126         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
10127         (MULTILIB_DEFAULTS): Use it.
10128         (MIPS_CPU_STRING_DEFAULT): Remove.
10129         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
10130         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
10131         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
10132         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
10133         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
10134         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
10135         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
10136         accordingly.
10137
10138 2004-03-24  DJ Delorie  <dj@redhat.com>
10139             Richard Sandiford  <rsandifo@redhat.com>
10140
10141         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
10142         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
10143         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
10144         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
10145         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
10146         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
10147         if TARGET_FIX_VR4122.
10148         * config/mips/mips.md (define_attr length): Account for nops inserted
10149         after macc and dmult when using -mfix-vr4122-bugs.
10150         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
10151         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
10152         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
10153         * config/mips/vr4122-div.S: New file.
10154         * doc/invoke.texi: Document -mfix-vr4122-bugs.
10155
10156 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
10157
10158         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
10159         (TARGET_MIPS4130): New macro.
10160         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
10161         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
10162         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
10163         with PROCESSOR_R4130.
10164         * config/mips/mips.md (define_attr cpu): Add r4130.
10165         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
10166
10167 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10168             Richard Sandiford  <rsandifo@redhat.com>
10169
10170         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
10171
10172 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
10173
10174         PR preprocessor/14438
10175         * cpplib.c (do_pragma): Remove line_change call after pragma
10176         handler.
10177
10178 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
10179
10180         * doc/extend.texi (ARM Built-in Functions): Replace with correct
10181         declarations.
10182
10183 2004-03-23  Roger Sayle  <roger@eyesopen.com>
10184
10185         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
10186         if flag_unsafe_math_optimizations.
10187         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
10188         and TARGET_80387 expand using truncdfsf2_noop pattern.
10189         (truncxfsf2): Likewise using truncxfsf2_noop.
10190         (truncxfdf2): Likewise using truncxfdf2_noop.
10191         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
10192
10193 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
10194
10195         * hooks.c (hook_constcharptr_tree_null): New hook.
10196         * hooks.h (hook_constcharptr_tree_null): New prototype.
10197         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
10198         * target.h (mangle_fundamental_type): New target hook.
10199         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
10200         target hook at rs6000_mangle_fundamental_type.
10201         (rs6000_mangle_fundamental_type): New function.
10202         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
10203
10204 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
10205
10206         PR 12267, 12391, 12560, 13129, 14114, 14133
10207         * c-tree.h: Forward declare struct c_binding.  Declare
10208         c_override_bindings_to_false.  Update prototypes.
10209         (struct lang_identifier): Update comments.  Change fields to be
10210         struct c_binding *.
10211         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
10212         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
10213         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
10214         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
10215         * c-common.h: Update prototypes.
10216         * c-decl.c (struct c_scope): Update commentary.  Remove names,
10217         names_last, parms, parms_last, tags, and shadowed fields.  Add
10218         bindings and depth fields.
10219         (scope_freelist): Move to more appropriate location.
10220         (c_print_identifier): Update for changes to struct lang_identifier.
10221         (objc_mark_locals_volatile): Update for new bindings structures.
10222         (global_bindings_p): Honor c_override_global_bindings_to_false.
10223         (pushlevel): Rename to push_scope; take no arguments; use the
10224         scope_freelist; initialize scope->depth and check for overflow.
10225         (poplevel): Rename to pop_scope; totally rewritten for new bindings
10226         structures.
10227         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
10228         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
10229         Improve some commentary.  Adjust handling of forward parm decls.
10230         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
10231         Preserve C_DECL_IN_EXTERNAL_SCOPE.
10232         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
10233         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
10234         decls.  Rewrite for new bindings structures.  Improve commentary.
10235         Eliminate the copy_node call.
10236         (implicit_decl_warning): Use the "diag" idiom (as seen in
10237         locate_old_decl) to reduce code duplication; call locate_old_decl
10238         if appropriate.  Relocate to remove need for forward declaration.
10239         (implicitly_declare): Adjust for new bindings structures.  Kludge
10240         around Objective-C not-really-builtin functions.
10241         (undeclared_variable): Improve diagnostics.  If current_function_decl
10242         is nonnull but current_function_scope is null, use current_scope.
10243         Use bind.
10244         (lookup_tag): Adjust for new bindings structures.  Kludge around
10245         Objective-C's tag declarations that wind up in the external scope.
10246         (lookup_name): Adjust for new bindings structures.  Kludge around
10247         c-common.c's pseudo-typedefs that wind up in the external scope.
10248         (lookup_name_current_level): Rename lookup_name_in_scope; take a
10249         second argument indicating the scope to examine; rewrite for
10250         new bindings structures.
10251         (c_init_decl_processing): Adjust for renamed functions.  Do not
10252         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
10253         First scope pushed is the external scope, not the global scope.
10254         (builtin_function): Use bind, not pushdecl.  Adjust other bits
10255         for new data structures.  Keep track of builtins that should be
10256         made visible automatically.
10257         (start_decl): Adjust diagnostics.  Remove unnecessary call to
10258         expand_decl.
10259         (grokparms): Return 0 if arg_types is error_mark_node.
10260         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
10261         reversed sense.  Rewrite for new bindings structures.  Do not
10262         leave any decls in the scope, to prevent pop_scope from doing
10263         contradictory things with them.
10264         (finish_struct, finish_enum): Remove redundant diagnostics.
10265         (build_enumerator): Don't cascade diagnostics for error_mark_node.
10266         Mark location where -pedantic changes the meaning of the program.
10267         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
10268         parameter decls into the function's scope structure using bind.
10269         Warn here about function definitions in the wrong style.
10270         Adjust diagnostics.
10271         (store_parm_decls): Correct the determination of whether a
10272         function was defined with a prototype.
10273         (c_write_global_declarations): Operate on all file decls and on
10274         the external scope.  Split body of the loop to...
10275         (c_write_global_declarations_1): ... this new function, to avoid
10276         code duplication.
10277         (truly_local_externals, first_builtin_decl, last_builtin_decl)
10278         (make_scope, pop_scope, in_parm_level_p, set_block)
10279         (any_external_decl, record_external_decl, bind_label, getdecls)
10280         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
10281         (c_reset_state): Delete.
10282         (visible_builtins, c_override_global_bindings_to_false)
10283         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
10284         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
10285         (external_scope, binding_freelist, bind, free_binding_and_advance)
10286         (push_file_scope, pop_file_scope): New.
10287         (pushtag, pushdecl_top_level, lookup_label, declare_label)
10288         (define_label, c_make_fname_decl, finish_decl)
10289         (mark_forward_parm_decls, build_compound_literal)
10290         (grokdeclarator, start_function, check_for_loop_decls)
10291         (identifier_global_value, record_builtin_type): Minor adjustments
10292         for new bindings structures.  Improve diagnostics and commentary.
10293         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
10294         pushlevel/poplevel respectively.
10295         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
10296         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
10297         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
10298         correct loop over multiple translation units; call fatal_error if
10299         requested to compile more than one file at once.  (This disables
10300         IMA temporarily - an up-front error being preferable to a crash.)
10301         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
10302         (all actions): Adjust calls to pushlevel/poplevel.
10303         (parsing_iso_function_signature): Delete.
10304         (extdef_1): Fold into extdef.
10305         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
10306         warn here about function definitions in the wrong style.
10307         (after_tyle_declarator, parm_declarator_starttypename)
10308         (parm_declarator_nostarttypename, notype_declarator): Remove
10309         commented-out productions.
10310         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
10311         an empty TREE_LIST node.  Adjust calls to get_parm_info.
10312         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
10313         to suppress -Wold-style-definition after this error.
10314         (c_parse_file): Don't clear the binding stack or call
10315         finish_fname_decls here.  Correct comment.
10316         * c-typeck.c (same_translation_unit_p): Export.
10317         (common_type): Use c_override_global_bindings_to_false, not
10318         pushlevel/poplevel/declare_parm_level.
10319         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
10320         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
10321         and LANG_HOOKS_GETDECLS with do-nothing stubs.
10322         * objc/objc-lang.c: Likewise.
10323         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
10324         get_parm_info.
10325         (OBJC_VOID_AT_END): Delete; replace all uses
10326         with void_list_node.
10327         (generate_forward_declaration_to_string_table): Delete.
10328         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
10329
10330         * coverage.c (create_coverage): Don't pushdecl anything.
10331         * langhooks.c (lhd_clear_binding_stack): Call
10332         lang_hooks.decls.poplevel, not poplevel.
10333         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
10334         circular list rather than going into an infinite loop.
10335
10336 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
10337
10338         * optabs.c (expand_binop): When synthesizing double word rotates
10339         from single word shifts, use a new register target if the provided
10340         target is not a REG already.
10341
10342 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10343
10344         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
10345         * c-common.c (handle_mode_attribute): Add extra arg to
10346         build_pointer_type_for_mode and build_reference_type_for_mode.
10347         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
10348         for INTEGER_CST.
10349         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
10350         Chain pointers via TYPE_NEXT_PTR_TO.
10351         (build_reference_type_for_mode): Similarly.
10352         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
10353         and build_reference_type_for_mode.
10354         (tree_check4_failed): New function.
10355         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
10356         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
10357         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
10358         Add check.
10359
10360 2004-03-23  Roger Sayle  <roger@eyesopen.com>
10361
10362         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
10363         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
10364         when both A and B are nonnegative.
10365         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
10366         nonzero.
10367
10368 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
10369
10370         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
10371         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
10372
10373 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
10374
10375         PR optimization/14669
10376         * fold-const.c (fold): Only unwiden integer comparisons for equality
10377         and inequality operators, or when the signedness doesn't change.
10378
10379 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
10380
10381         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
10382         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
10383         * config/sparc/t-linux: New file.
10384
10385 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
10386
10387         * gcse.c (can_assign_to_reg_p): New function, split out from...
10388         (want_to_gcse_p): ...here.
10389         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
10390         the rhs of a store.
10391
10392 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
10393
10394         * c-typeck.c (same_translation_unit_p): Fix pasto.
10395
10396 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
10397
10398         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
10399         (PARAM_MAX_SCHED_REGION_INSNS): New.
10400         * sched-rgn.c: Include params.h
10401         (MAX_RGN_BLOCKS): Delete.
10402         (MAX_RGN_INSNS): Delete.
10403         (too_large): Return bool.  Convert to PARAM_VALUE.
10404         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
10405         * doc/invoke.texi (param): Document max-sched-region-blocks and
10406         max-sched-region-insns.
10407
10408 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
10409
10410         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
10411         for base types.
10412
10413 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
10414
10415         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
10416         change.
10417
10418 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
10419
10420         PR c/14069
10421         * c-decl.c (finish_struct): Change type of incorrect flexible array
10422         field into error_mark_node.
10423
10424 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
10425
10426         PR target/14580
10427         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
10428         who are not local for Darwin PIC.
10429
10430 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
10431
10432         * regrename.c (regrename_optimize): Set regs_ever_live for all
10433         registers introduced as replacement.
10434
10435 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
10436
10437         PR middle-end/14470
10438         * expr.c (mark_queue): New function.
10439         (emit_insns_enqueued_after_mark): New function replacing
10440         emit_queue.  Clear the body of emitted queued insns.
10441         (emit_queue): Call emit_insns_enqueued_after_mark.
10442         (store_expr): Mark the increment queue on entry.  Emit
10443         only the incrementations queued when expanding the source.
10444
10445 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
10446
10447         * configure.ac: Allow --disable-coverage-flags (for the future benefit
10448         of top level bootstrap, and consistency).  Reindent.
10449         * configure: Regenerate.
10450
10451 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
10452
10453         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
10454         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
10455         unnecessary casts.
10456
10457 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
10458
10459         PR target/14291
10460         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
10461         __MINGW32__.
10462
10463 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
10464
10465         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
10466         to nonimmediate_operand.
10467         ("*doloop_di"): Likewise.
10468
10469 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
10470
10471         * real.h (struct real_value): Use the same type for all
10472         bitfields.  Rename exp to uexp.
10473         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
10474         Adjust all uses of exp...
10475         * builtins.c: ... here, ...
10476         * emit-rtl.c: ... here, and ...
10477         * real.c: ... and here.
10478
10479 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10480
10481         * pretty-print.c (pp_base_maybe_space): New function.
10482         * pretty-print.h (pp_base_maybe_space): Declare.
10483         (pp_maybe_space): New macro.
10484
10485 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
10486
10487         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
10488
10489 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
10490
10491         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
10492         of using register multiplication cost.
10493         (expand_mult): Adapt choose_mult_variant call.
10494         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
10495         of MODE; pass appropriate cost bound.  Adjust result when
10496         performing signed multiplication by a negative constant.
10497         Don't use intermediate modes larger than word_mode.
10498
10499 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10500
10501         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
10502         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
10503         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
10504         * explow.c (expr_size): Likewise.
10505         * expr.h (placeholder_list, find_placeholder): Deleted.
10506         * expr.c (store_constructor): Likewise.
10507         (get_inner_reference): Likewise.  Also don't call find_placeholder.
10508         (placeholder_list, find_placeholder): Deleted.
10509         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
10510         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
10511         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
10512         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
10513         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
10514         Likewise.
10515         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
10516         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
10517         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
10518         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
10519         Clean up by using first_rtl_op.
10520         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
10521         (substitute_placeholder_in_expr): New function.
10522         * tree.def (WITH_RECORD_EXPR): Deleted.
10523         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
10524         (substitute_placeholder_in_expr): New.
10525
10526 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
10527
10528         * dojump.c (prefer_and_bit_test): Fix which part of
10529         the and_test is replaced.
10530
10531 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
10532
10533         * frontends.texi: Add missing line.
10534
10535 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
10536             Chris Devers  <cdevers@pobox.com>
10537             Joseph S. Myers  <jsm@polyomino.org.uk>
10538
10539         * doc/frontends.texi: Rewrite.
10540         * doc/gcc.texi: Update last modification date.
10541
10542 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
10543
10544         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
10545         message before redirecting the edge.
10546
10547 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10548
10549         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
10550         flag.
10551         * explow.c (force_not_mem): Set REG_POINTER flag according to
10552         MEM_POINTER one.
10553         * rtl.h (MEM_POINTER): New macro.
10554         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
10555         for MEM_POINTER.
10556
10557 2004-03-20  Roger Sayle  <roger@eyesopen.com>
10558
10559         PR target/13889
10560         * cse.c (fold_rtx): Avoid substituting constants into unary
10561         conversion operations.
10562
10563 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10564
10565         * fold-const.c (fold): Replace "expr" with "t".
10566
10567 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
10568
10569         PR c/12373
10570         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
10571         DECL_ORIGINAL_TYPE if there isn't one.
10572
10573 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10574
10575         * fold-const.c (fold): Replace "final_type" with "type".
10576         Remove variable "final_type".
10577
10578 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10579
10580         * fold-const.c (fold): Constify "type".
10581         Replace "TREE_TYPE (t)" with "type".
10582
10583 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10584
10585         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
10586         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
10587         via (*targetm.foo) () with targetm.foo ().
10588
10589 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
10590
10591         PR other/14630
10592         * doc/install.texi: Add info directory category and entry.
10593
10594 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10595
10596         * fold-const.c (fold): Replace "t" with "tem" where it is used
10597         as a temporary variable.  Remove "orig_t" and all of its uses.
10598
10599 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10600
10601         * fold-const.c (fold): Remove variable "invert".
10602         Move the handling of relational expressions that can be folded
10603         to a constant ...
10604         (fold_relational_const): ... here.
10605         (tree_expr_nonzero_p): New.
10606
10607 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
10608
10609         PR c/14635
10610         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
10611         DEF_GCC_BUILTIN.
10612
10613 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
10614
10615         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
10616         (GTFILES): Add $(srcdir)/dojump.h.
10617         (gt-dojump.h): New dependency.
10618         * dojump.c (and_reg, and_test, shift_test): New static variables.
10619         (prefer_and_bit_test): New function.
10620         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
10621
10622 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
10623
10624         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
10625         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
10626         reorg.c, tree.h: Fix comment typos.
10627
10628 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
10629
10630         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
10631         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
10632         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
10633         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
10634         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
10635         vmsdbgout.c: Replace calls via (*targetm.foo) () with
10636         targetm.foo ().
10637
10638 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
10639
10640         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
10641         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
10642         always_inline attribute.
10643         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
10644         Treat expansion as completed even if literal argument is
10645         invalid (so that other expansions are not tried in vain).
10646
10647 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
10648
10649         * loop-doloop.c (add_test): Replace GEN_INT (0) with
10650         const0_rtx.
10651
10652 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
10653
10654         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
10655         ...
10656         (fold_abs_const): ... here.
10657
10658 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10659
10660         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
10661
10662 2004-03-19  Denis Chertykov  <denisc@overta.ru>
10663
10664         PR target/11520
10665         * config/avr/avr.md ("call_insn"): Handle explicit integer
10666         specially.
10667         (call_value_insn): Likewise.
10668
10669 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10670
10671         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
10672
10673 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
10674
10675         * fold-const.c (negate_expr): Move the handling of constants
10676         ...
10677         (fold_negate_const): ... here.
10678
10679 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10680
10681         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
10682         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
10683         * tree.c (debug_no_type_hash): Deleted.
10684         (type_hash_canon): Abort if passed a variant.
10685         Check lang_hooks.types.hash_types.
10686         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
10687         (build_array_type): Remove unnecessary allocation of pointer type.
10688         (build_complex_type): Properly qualify resulting type.
10689
10690 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
10691
10692         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
10693
10694 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
10695
10696         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
10697         (expand_mult): ...here.
10698         (extract_high_half): New, split out from expand_mult_highpart.
10699         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
10700         (expand_highpart): Evaluate the cost of a shift/add sequence,
10701         then see if any of the specialized optabs are cheaper.
10702
10703 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
10704
10705         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
10706
10707 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10708
10709         * convert.c (convert_to_real): Add more math builtins.
10710
10711 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10712
10713         * convert.c (convert_to_real): Reformat using switch stmt.
10714
10715 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
10716
10717         * c-common.c (pointer_int_sum): Do not complain about using
10718         pointers to pointers-to-members.
10719
10720 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
10721
10722         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
10723         have moved to the target hooks structure".
10724
10725 2004-03-18  James E Wilson  <wilson@specifixinc.com>
10726
10727         * config/mips/mips.md (type): Split move into arith and fmove.  Split
10728         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
10729         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
10730         Likewise.
10731         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
10732         Likewise.
10733         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
10734         rm7_fp_quick): Likewise.
10735         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
10736         rm9k_fquick): Likewise.
10737         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
10738         Likewise.
10739         (ir_sr70_icmp): Delete.
10740
10741 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10742
10743         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
10744         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
10745         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
10746         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
10747         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
10748         Protect with proper check.
10749         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
10750         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
10751         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
10752         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
10753         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
10754         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
10755         not TYPE_FIELDS.
10756         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
10757
10758 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
10759
10760         * gcse.c (eliminate_partially_redundant_loads): Reject change if
10761         dest is set between beginning and current insn.
10762
10763 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
10764
10765         * c-decl.c (grokdeclarator): Do not complain about redeclaring
10766         visible "static" identifiers "extern" in a local scope.
10767         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
10768         post-increments/decrements.
10769
10770 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
10771
10772         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
10773         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
10774         (xtensa_va_start): Remove assignment to current_function_arg_words.
10775
10776 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
10777
10778         * alias.c (record_set): Detect the case where a register is assigned
10779         a new value that has the same base term as the old one.
10780
10781 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10782
10783         * doloop.c: Removed.
10784         * loop-doloop.c: New file.
10785         * Makefile.in (doloop.o): Remove.
10786         (loop-doloop.o): New.
10787         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
10788         * cfgloopanal.c (get_loop_level): New function.
10789         * loop-iv.c (iv_number_of_iterations): Handle case when loop
10790         is leaved immediatelly.
10791         * loop.c (strength_reduce): Do not call doloop optimization.
10792         * loop.h (LOOP_BCT): Removed.
10793         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
10794         (rest_of_handle_loop2): Call doloop_optimize_loops.
10795         (rest_of_compilation): Test for optimizations moved to
10796         rest_of_handle_loop2.
10797
10798 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
10799
10800         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
10801         for mixed mode.
10802         (rs6000_emit_prologue): Ditto.
10803         (rs6000_emit_epilogue): Ditto.
10804         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
10805         macro for mixed mode.
10806
10807 2004-03-18  Jan Hubicka  <jh@suse.cz>
10808
10809         * predict.c (propagate_freq): Compute correctly frequency of
10810         EXIT_BLOCK.
10811
10812 2004-03-17  Eric Christopher  <echristo@redhat.com>
10813
10814         * builtins.c (apply_args_size): Use reg_raw_mode.
10815         (apply_result_size): Ditto.
10816
10817 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
10818
10819         PR target/14620
10820         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
10821
10822 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
10823
10824         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
10825         32-bit builds when defaulting to 32-bit.
10826
10827 2004-03-17  Jan Hubicka  <jh@suse.cz>
10828
10829         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
10830         array.
10831
10832 2004-03-17  James E Wilson  <wilson@specifixinc.com>
10833
10834         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
10835         (hazard_nop): Change type to nop.
10836         (type): Split arith into arith, shift, slt, clz.  Delete darith.
10837         Fix all uses.  Change arith to multi if more than one insn emitted.
10838         * config/mips/5400.md (ir_vr54_arith): Likewise.
10839         * config/mips/5500.md (ir_vr55_arith): Likewise.
10840         * config/mips/7000.md (rm7_int_other): Likewise.
10841         * config/mips/9000.md (rm9k_int): Likewise.
10842         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
10843
10844 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
10845
10846         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
10847         to hold the subtype tree instead of recomputing it several times.
10848
10849 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
10850
10851         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
10852         CC_INVERT.
10853         * config/mn10300/mn10300.md (cc): Remove "invert".
10854
10855 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10856
10857         * builtins.c (integer_valued_real_p): Add builtin rint.
10858         (fold_builtin): Likewise.
10859         * convert.c (convert_to_real): Likewise.
10860
10861         * convert.c (convert_to_real): Fix typos in `long double'
10862         builtins.
10863
10864 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
10865
10866         PR c++/14481
10867         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
10868         generated COMPOUND_EXPRs.
10869
10870 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
10871
10872         * config/h8300/t-rtems (h8300-*-rtems*): New.
10873
10874 2004-03-16  Eric Christopher  <echristo@redhat.com>
10875
10876         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
10877
10878 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
10879
10880         * config/i386/i386-protos.h: Add a prototype for
10881         ix86_reverse_condition.
10882         * config/i386/i386.c (ix86_reverse_condition): New.
10883         * config/i386/i386.h (REVERSE_CONDITION): Use
10884         ix86_reverse_condition.
10885         * config/i386/i386.md: Use ix86_reverse_condition instead of
10886         REVERSE_CONDITION.
10887
10888 2004-03-16  J. Brobecker  <brobecker@gnat.com>
10889
10890         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
10891
10892 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
10893
10894         PR bootstrap/12974
10895         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
10896
10897 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
10898
10899         * c-common.c (c_common_type_for_mode): Build vector types on
10900         demand.
10901         (handle_mode_attribute): Deprecate using the mode attribute
10902         to create vector types.  Fix indentation.
10903         (vector_type_node_list): Remove.
10904         (handle_vector_size_attribute): Create vector types on demand.
10905         Strip a NON_LVALUE_EXPR from the attribute if there is one.
10906         * c-typeck.c (comptypes): Make vector types compatible if they
10907         have the same underlying mode.
10908         (convert_for_assignment): Use comptypes to convert between
10909         vector types.
10910         * tree.c (build_common_tree_nodes_2): Do not create vector types.
10911         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
10912         vector types.
10913         * tree.h: Remove vector types.
10914         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
10915         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
10916         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
10917         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
10918         * doc/extend.texi (Vector Types): Document how to use the
10919         vector_size attribute to create vectors, rather than mode.
10920
10921         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
10922         * config/i386/emmintrin.h: Likewise.
10923         * config/i386/mmintrin.h: Likewise.
10924         * config/i386/xmmintrin.h: Likewise.
10925         * config/sh/ushmedia.h: Likewise.
10926
10927 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
10928
10929         * config/freebsd-spec.h, config/arc/arc-protos.h,
10930         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
10931         config/arm/linux-gas.h, config/arm/semi.h,
10932         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
10933         config/ia64/freebsd.h, config/mips/7000.md,
10934         config/mips/9000.md, config/ns32k/ns32k-protos.h,
10935         config/sparc/pbd.h: Update copyright.
10936
10937 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
10938
10939         PR target/14577
10940         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
10941
10942 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
10943
10944         * combine.c (combine_simplify_rtx): Remove the "last"
10945         parameter and its documentation.  Adjust recursive calls.
10946         (simplify_logical): Always perform the only simplification
10947         controlled by "last", if the simplified expression is
10948         actually different.
10949         (try_combine): Do not pass the "last" parameter to
10950         combine_simplify_rtx.
10951
10952 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
10953
10954         PR target/14599
10955         * config/mips/mips.md (UNSPEC_GP): New constant.
10956         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
10957         an UNSPEC instead of (reg $gp).
10958         (mips16_gp_pseudo_reg): Change accordingly.
10959         (print_operand): Print $gp directly when handling CONST_GP_P.
10960
10961 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
10962
10963         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
10964         * longlong.h: Make code 68060 clean when compiling for m68060.
10965
10966 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
10967
10968         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
10969         * doc/md.texi: Clarify description of "i" constraint.
10970
10971 2004-03-15  James E Wilson  <wilson@specifixinc.com>
10972
10973         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
10974         Split store into store, fpstore, fpidxstore.  Fix all uses.
10975         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
10976         Likewise.
10977         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
10978         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
10979         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
10980         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
10981         ir_sr70_fstore): Likewise.
10982
10983 2004-03-15  Richard Henderson  <rth@redhat.com>
10984
10985         PR middle-end/14535
10986         * except.c (collect_one_action_chain): Record action for cleanup
10987         outer of exception spec.
10988
10989 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
10990
10991         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
10992         Fix the check for abort and only do the mmap if we can.
10993
10994 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
10995
10996         * config/sparc/sparc.h: Rework comments about the code model
10997         in 64-bit environment and the mode 'Pmode'.
10998         * doc/invoke.texi (SPARC options): Rework description of the
10999         different code models supported in 64-bit environment.
11000
11001 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
11002
11003         * defaults.h (REVERSIBLE_CC_MODE): Define.
11004         * jump.c (reversed_comparison_code_parts): Don't check if
11005         REVERSIBLE_CC_MODE is defined.
11006
11007 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
11008
11009         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
11010         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
11011         hosthooks.h, params.h, ra-colorize.c, web.c,
11012         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
11013         config/avr/avr-protos.h, config/avr/avr.md,
11014         config/fr30/fr30-protos.h, config/fr30/fr30.md,
11015         config/h8300/fixunssfsi.c, config/i386/darwin.h,
11016         config/i386/freebsd.h, config/i386/freebsd64.h,
11017         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
11018         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
11019         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
11020         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
11021         config/pa/pa64-regs.h, config/rs6000/aix41.h,
11022         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
11023         config/sparc/aout.h, config/sparc/freebsd.h,
11024         config/sparc/litecoff.h, config/vax/vax-protos.h,
11025         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
11026         copyright.
11027
11028 2004-03-15  Paul Brook  <paul@codesourcery.com>
11029
11030         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
11031
11032 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
11033
11034         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
11035         (pp_c_cv_qualifier): Document.
11036         (pp_c_space_for_pointer_operator): Likewise.
11037         (pp_c_integer_constant): Likewise.
11038         (pp_c_identifier): Likewise.
11039         (pp_c_init_declarator): Don't print function body.
11040
11041 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
11042
11043         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
11044         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
11045         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
11046         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
11047         wording and grammar.
11048
11049 2004-03-14  Roger Sayle  <roger@eyesopen.com>
11050
11051         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
11052         with lang_hooks.foo ().
11053         * builtins.c (expand_builtin_va_arg): Likewise.
11054         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
11055         c_common_type_for_mode, c_common_nodes_and_builtins,
11056         handle_mode_attribute, handle_vector_size_attribute): Likewise.
11057         * c-convert.c (convert): Likewise.
11058         * c-format.c (check_format_types): Likewise.
11059         * c-objc-common.c (c_tree_printer): Likewise.
11060         * c-typeck.c (build_unary_op, build_conditional_expr,
11061         build_binary_op): Likewise.
11062         * calls.c (try_to_integrate, expand_call,
11063         emit_library_call_value_1): Likewise.
11064         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
11065         Likewise.
11066         * cgraphunit.c (record_call_1, cgraph_analyze_function,
11067         cgraph_expand_function): Likewise.
11068         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
11069         * coverage.c (build_fn_info_type, build_ctr_info_type,
11070         build_gcov_info, create_coverage): Likewise.
11071         * dbxout.c (dbxout_init): Likewise.
11072         * diagnostic.c (diagnostic_report_current_function): Likewise.
11073         * dojump.c (do_jump): Likewise.
11074         * dwarf2out.c (dwarf2_name): Likewise.
11075         * except.c (init_eh): Likewise.
11076         * explow.c (expr_size, int_expr_size): Likewise.
11077         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
11078         Likewise.
11079         * expr.c (store_expr, store_constructor, safe_from_p,
11080         expand_expr_real, do_store_flag, try_casesi): Likewise.
11081         * function.c (push_function_context_to, pop_function_context_from,
11082         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
11083         put_var_into_stack, allocate_struct_function, current_function_name):
11084         Likewise.
11085         * integrate.c (copy_decl_for_inlining, expand_inline_function):
11086         Likewise.
11087         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
11088         lhd_print_error_function): Likewise.
11089         * opts.c (handle_option, decode_options): Likewise.
11090         * passes.c (open_dump_file): Likewise.
11091         * print-tree.c (print_node): Likewise.
11092         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
11093         expand_decl_cleanup, emit_case_nodes): Likewise.
11094         * stor-layout.c (variable_size): Likewise.
11095         * toplev.c (announce_function, wrapup_global_declarations,
11096         check_global_declarations, compile_file, default_tree_printer,
11097         process_options, lang_dependent_init, finalize): Likewise.
11098         * tree-dump.c (dequeue_and_dump): Likewise.
11099         * tree-inline.c (remap_decl, remap_block, copy_body_r,
11100         initialize_inlined_parameters, declare_return_variable,
11101         inlinable_function_p, expand_call_inline, optimize_inline_calls,
11102         walk_tree, copy_tree_r): Likewise.
11103         * tree-optimize.c (tree_rest_of_compilation): Likewise.
11104         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
11105         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
11106         variably_modified_type_p, dump_tree_statistics): Likewise.
11107         * varasm.c (assemble_variable, compare_constant, copy_constant,
11108         force_const_mem, compute_reloc_for_constant, output_constant,
11109         output_addressed_constants, initializer_constant_valid_p): Likewise.
11110
11111 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
11112
11113         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
11114
11115 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
11116
11117         * doc/install.texi: Reflect autoconf and automake version for
11118         libffi. Update autoconf version to 2.59.
11119
11120 2004-03-13  Roger Sayle  <roger@eyesopen.com>
11121
11122         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
11123         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
11124         make_range, build_range_check, fold_range_test, unextend,
11125         constant_boolean_node, fold_binary_op_with_conditional_arg,
11126         fold_truthop, fold_mathfn_compare, fold_inf_compare,
11127         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
11128         with lang_hooks.foo ().
11129
11130 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
11131
11132         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
11133
11134 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
11135
11136         * doc/install.texi: Note status of -fnew-ra.
11137
11138 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
11139
11140         PR middle-end/14470
11141         * expr.c (store_expr): Call emit_queue before generating the move
11142         from the temporary to the original target.  Protect the temporary
11143         from emit_queue.
11144
11145 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
11146
11147         PR target/14533
11148         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
11149         other than UNSPEC_GOTOFF.
11150
11151 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
11152
11153         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
11154         to arm_legitimate_index_p.  Update all callers with SET as default
11155         value.
11156         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
11157         range if OUTER is a sign-extend operation on QImode.  Correctly
11158         reject shift operations on sign-extended QImode addresses.
11159         (bad_signed_byte_operand): Delete.
11160         (arm_extendqisi_mem_op): New function.
11161         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
11162         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
11163         constraints.
11164         (CONSTRAINT_LEN): New.
11165         (EXTRA_CONSTRAINT): Delete.  Replace with...
11166         (EXTRA_CONSTRAINT_STR): ... this.
11167         (PREDICATE_CODES): Remove bad_signed_byte_operand.
11168         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
11169         is now always default.
11170         (define_splits for bad sign-extend loads): Delete.
11171         (arm_extendqisi, arm_extendqisi_v5): Likewise.
11172         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
11173         Rework 'U' constraint to 'Uv'.
11174         * arm-protos.h: Remove bad_signed_byte_operand.  Add
11175         arm_extendqisi_mem_op.
11176         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
11177         Add Uq constraint.
11178
11179 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
11180
11181         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
11182         with targetm version.
11183
11184         PR target/14567
11185         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
11186         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
11187         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
11188         Update all users of RS6000_ARG_SIZE.
11189         (function_arg_advance): Count fregno using mode size.
11190         (function_arg): Handle long double split over regs and memory.
11191         (function_arg_partial_nregs): Likewise.
11192         (rs6000_va_arg): Repackage complex args.
11193
11194 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
11195
11196         PR target/14047
11197         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
11198         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
11199         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
11200
11201 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
11202
11203         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
11204         prototype.
11205         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
11206         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
11207
11208 2004-03-12  Andrew Pinski  <apinski@apple.com>
11209
11210         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
11211         Use ret instead of result. Use addr instead of base.
11212
11213 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
11214
11215         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
11216         fixes required by libstdc++ and update installation instructions
11217         for libstdc++.a.
11218
11219 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
11220
11221         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
11222         leading '@' on fastcall symbols before stripping suffix.
11223
11224 2004-03-12  Roger Sayle  <roger@eyesopen.com>
11225
11226         * combine.c (unmentioned_reg_p): New function to check whether an
11227         expression is a "specialization" of another, i.e. that there are
11228         no registers or memory references mentioned in the first that don't
11229         appear in the second.
11230         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
11231         (combine_instructions): Also try combining instructions using the
11232         REG_EQUAL note from a preceding log-linked instruction.
11233
11234 2004-03-12  Roger Sayle  <roger@eyesopen.com>
11235
11236         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
11237
11238 2004-03-12  Matt Austern  <austern@apple.com>
11239
11240         * target.h (struct gcc_target): New target hook, unwind_label.
11241         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
11242         * output.h (default_emit_unwind_label): New function.
11243         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
11244         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
11245         (TARGET_SUPPORTS_HIDDEN): New target macro.
11246         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
11247         that corresponds to this FDE.
11248         (FRAME_BEGIN_LABEL): Allow target to override default label.
11249         (output_call_frame_info): If FDEs are linknonce, then use extra
11250         indirection for FDE encoding, output a label for each FDE, and
11251         output an empty label for each function without an FDE.
11252         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
11253         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
11254         decls with DECL_ONE_ONLY set, if that macro is defined.
11255         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
11256         for a SUPPORTS_ONE_ONLY target.
11257         * config/darwin-protos.h (darwin_unique_section): Declare.
11258         (darwin_asm_named_section): Likewise.
11259         (darwin_section_type_flags): Likewise.
11260         (darwin_non_lazy_pcrel): Likewise.
11261         (darwin_emit_unwind_label): Likewise.
11262         (darwin_make_decl_one_only): Likewise.
11263         * config/darwin.c (machopic_finish): Get rid of tweak that
11264         eliminate stubs for symbols that are defined.
11265         (darwin_encode_section_info): Don't treat weak functions as defined.
11266         (darwin_make_decl_one_only): Define.
11267         (darwin_asm_named_section): Likewise.
11268         (darwin_section_type_flags): Likewise.
11269         (darwin_unique_section): Likewise.
11270         (darwin_emit_unwind_label): Likewise.
11271         (darwin_non_lazy_pcrel): Likewise.
11272         (darwin_asm_output_dwarf_delta): Difference between two labels is
11273         local only if both labels are local.
11274         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
11275         (ASM_MAKE_LABEL_LINKONCE): Likewise.
11276         (TARGET_SUPPORTS_HIDDEN): Likewise.
11277         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
11278         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
11279         (FRAME_BEGIN_LABEL): Likewise.
11280         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
11281         (ASM_DECLARE_FUNCTION_NAME): Likewise.
11282         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
11283         (TARGET_ASM_UNIQUE_SECTION): Define.
11284         (EH_FRAME_SECTION_NAME): Define.
11285         (EH_FRAME_SECTION_ATTR): Likewise.
11286         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
11287         (TARGET_ASM_NAMED_SECTION): Likewise.
11288         (TARGET_SECTION_TYPE_FLAGS): Likewise.
11289         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
11290         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
11291         TARGET_ASM_EMIT_UNWIND_LABEL.
11292
11293 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11294
11295         * builtins.c (expand_builtin_mathfn): Add pow10* to the
11296         existing exp10* case.
11297         (expand_builtin): Likewise.
11298
11299 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
11300
11301         * doc/tm.texi (registers) <Values in Registers>: Add
11302         entry for REGMODE_NATURAL_SIZE.
11303
11304 2004-03-12  Richard Henderson  <rth@redhat.com>
11305
11306         PR target/14547
11307         * target.h (struct gcc_target): Move calls substructure before
11308         booleans.  Add split_complex_arg.
11309         * function.c (assign_parms, split_complex_args): Use it.
11310         * calls.c (expand_call): Likewise.
11311         (split_complex_values): Likewise.  Check for splittable types
11312         before allocating memory.
11313         (split_complex_types): Likewise.
11314         * system.h (SPLIT_COMPLEX_ARGS): Poison.
11315         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
11316         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
11317         * config/alpha/alpha.c (alpha_split_complex_arg): New.
11318         (TARGET_SPLIT_COMPLEX_ARG): New.
11319         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
11320         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
11321         (rs6000_override_options): Zap it for non-AIX.
11322         (rs6000_function_value): Use targetm.calls.split_complex_arg.
11323         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
11324         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
11325         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
11326         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
11327         SPLIT_COMPLEX_ARGS entry.
11328
11329 2004-03-11  Richard Henderson  <rth@redhat.com>
11330
11331         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
11332         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
11333         (alpha_emit_xfloating_arith): Update to match.
11334         (alpha_emit_xfloating_compare): Likewise.
11335         (alpha_emit_xfloating_cvt): Likewise.
11336         (alpha_emit_xfloating_libcall): Take already built symbol,
11337         mark call const.
11338         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
11339         op1 in a register.
11340
11341 2004-03-11  Richard Henderson  <rth@redhat.com>
11342
11343         PR target/14539
11344         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
11345
11346         * simplify-rtx.c (simplify_relational_operation): Fix typo.
11347
11348 2004-03-11  Richard Henderson  <rth@redhat.com>
11349
11350         PR middle-end/14477
11351         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
11352
11353 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
11354
11355         PR target/14262
11356         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
11357         defined, pass small BLKmode values in registers in the low-order part.
11358
11359 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
11360
11361         * combine.c (if_then_else_cond): Check for NULL return value of
11362         simplify_gen_subreg.
11363
11364 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
11365
11366         PR target/14496
11367         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
11368         TARGET_SINGLE_FLOAT.
11369
11370 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
11371
11372         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
11373         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
11374         * config/ia64/ia64.c (ia64_init_libfuncs): New.
11375         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
11376
11377 2004-03-11  Roger Sayle  <roger@eyesopen.com>
11378
11379         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
11380         -((int)X>>C) where C is an integer constant one bit less than the
11381         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
11382         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
11383
11384         * simplify-rtx.c (simplify_unary_operation): Also implement the
11385         above transformations at the RTL level.
11386
11387 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
11388
11389         * real.c (encode_ibm_extended): Do round low word.
11390
11391 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
11392
11393         * config/arm/arm.md (is_xscale): Comment this attribute and move
11394         it a bit further up in the file, closer to related attributes.
11395
11396 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
11397
11398         * config/host-solaris.c (sol_gt_pch_use_address): Add
11399         missing terminating marker to comment.
11400
11401 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
11402
11403         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
11404         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
11405         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
11406         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
11407         move_operand as source predicate in all cases.
11408         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
11409         Test reg_or_0_operand.  Use move_operand as source predicate.
11410         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
11411         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
11412         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
11413         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
11414         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
11415         Use move_operand as source predicate.  Remove 'K' constraint.
11416         (*movqi_internal): Likewise movqi_internal.
11417         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
11418         reg_or_0_operand.  Use move_operand as source predicate.
11419         (*movsf_softfloat): Likewise movsf_internal2.
11420         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
11421         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
11422         (*movdf_softfloat): Likewise movdf_internal2.
11423         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
11424         for DImode if !TARGET_64BIT.
11425         (mips_legitimize_move): Simplify accordingly.
11426
11427 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
11428
11429         PR/14362
11430         * var-tracking.c (struct variable_def): Added field refcount.
11431         (variable_htab_free): Decrease the refcount and delete variable
11432         only if there are no more references.
11433         (unshare_variable): New function.
11434         (vars_copy_1): Increase refcount instead of copying the variable.
11435         (variable_union): Share the variables where possible, unshare
11436         the variables if needed.
11437         (variable_different_p): Return false if var1 and var2 are
11438         the same structure.
11439         (variable_was_changed): Init the refcount of new variable.
11440         (set_frame_base_location): Unshare variable if needed.
11441         (set_variable_part): Init the refcount of new variable.
11442         Unshare the variables if needed.
11443         (delete_variable_part): Unshare the variables if needed.
11444         (emit_notes_for_differences_1): Init the refcount of new variable.
11445         (vt_add_function_parameters): Do not add function parameters to
11446         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
11447         (vt_initialize): Do not add frame_base_decl to IN set of
11448         ENTRY_BLOCK_PTR because it is unused anyway.
11449
11450 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
11451
11452         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
11453         (vars_copy): Likewise.
11454         (variable_union): Likewise.
11455         (set_variable_part): Likewise.
11456         (delete_variable_part): Likewise.
11457
11458 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
11459
11460         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
11461         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
11462         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
11463         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
11464         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
11465         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
11466         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
11467         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
11468         config/stormy16/stormy16.c: Fix comment typos and formatting.
11469
11470 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
11471
11472         * configure: Regenerate, since I forgot to while committing Paolo's
11473         changes.
11474
11475 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
11476
11477         PR ada/14131
11478         Move language detection to the top level.
11479         * configure.ac: Remove code to detect languages,
11480         it now lives exclusively in the top level.
11481         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
11482         top level, renamed to ACX_PROG_GNAT.
11483
11484 2004-03-10  Richard Henderson  <rth@redhat.com>
11485
11486         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
11487         extra arguments.
11488         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
11489         and host_xmake_file fragments.
11490         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
11491         (gt_pch_restore): Similarly for gt_pch_use_address.
11492         (default_gt_pch_get_address): New.
11493         (mmap_gt_pch_get_address): Split out of gt_pch_save.
11494         (default_gt_pch_use_address): Split out of gt_pch_restore.
11495         (mmap_gt_pch_use_address): Likewise.
11496         * hooks.c (hook_voidp_size_t_null): Remove.
11497         (hook_bool_voidp_size_t_false): Remove.
11498         * hooks.h: Likewise.
11499         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
11500         default_ or mmap_ definitions.
11501         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
11502         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
11503         and gt_pch_use_address.
11504         * config/host-linux.c, config/host-solaris.c: New files.
11505         * config/x-linux, config/x-solaris: New files.
11506         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
11507         Update for changed definition.
11508         (darwin_rs6000_gt_pch_use_address): Likewise.
11509         * doc/hostconfig.texi: Update docs.
11510
11511 2004-03-10  Richard Henderson  <rth@redhat.com>
11512
11513         PR c/14517
11514         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
11515         except for pedantic c90 mode.
11516
11517 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
11518
11519         * configure.ac: Bump AC_PREREQ to 2.59.
11520         * configure: Regenerate.
11521
11522 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
11523
11524         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
11525         (exp10_optab, exp2_optab): Define corresponding macros.
11526         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
11527         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
11528         using exp10?f2 and exp2?f2 patterns.
11529         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
11530         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
11531         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
11532         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
11533
11534         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
11535         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
11536         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
11537
11538 2004-03-10  Anthony Green  <green@redhat.com>
11539
11540         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
11541
11542 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
11543
11544         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
11545         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
11546         __LONGDOUBLE128.
11547         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
11548         TARGET_OS_AIX_CPP_BUILTINS.
11549         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
11550         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
11551         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
11552         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
11553         previous change.
11554
11555 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11556
11557         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
11558
11559 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
11560
11561         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
11562         __LONGDOUBLE128 on AIX.
11563
11564 2004-03-10  Andrew Haley  <aph@redhat.com>
11565
11566         PR optimization/14381
11567         * function.c (expand_function_end): Emit a blockage insn before
11568         the epilogue when -fnon-call-exceptions is used.
11569
11570         * except.c (expand_start_all_catch): Make comment more accurate.
11571
11572 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
11573
11574         PR target/14480
11575         * config/rs6000/t-rtems: Add missing file on branch.
11576
11577 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
11578
11579         * dbxout.c (dbxout_symbol_location): Do not output references
11580         to optimized-out constant pool symbols.
11581
11582 2004-03-10  Andreas Schwab  <schwab@suse.de>
11583
11584         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
11585         twon34_r.
11586
11587 2004-03-09  James E Wilson  <wilson@specifixinc.com>
11588
11589         * alias.c (alias_sets_might_conflict_p): New.
11590         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
11591         * common.opt (Wstrict-aliasing=): New.
11592         * flags.h (warn_strict_aliasing): Change type to int.
11593         * opts.c (warn_strict_aliasing): Change type to int.
11594         (common_handle_option): Handle OPT_Wstrict_aliasing_.
11595         * tree.h (alias_sets_might_conflict_p): Declare it.
11596         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
11597
11598 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
11599
11600         PR bootstrap/12371
11601         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
11602         (CALL_USED_REGISTERS): Likewise.
11603         (REG_CLASS_CONTENTS): Likewise.
11604         (REG_ALLOC_ORDER): New.
11605         (REGNO_REG_CLASS): Use regno_reg_class.
11606         * config/m68k/m68k.c: Add regno_reg_class array.
11607
11608 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
11609
11610         * config/ia64/ia64.md (divsi3): Fix algorithm.
11611           (udivsi3): Ditto.
11612           (setf_exp_xf): Remove '*' from name.
11613         * testsuite/gcc.dg/20040309-1.c: New test.
11614
11615 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
11616
11617         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
11618         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
11619         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
11620         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
11621         (sparc_aout_select_rtx_section): Don't check
11622         SUNOS4_SHARED_LIBRARIES.
11623         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
11624
11625 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
11626
11627         PR other/14474
11628         * doc/md.texi (Pattern Ordering, Dependent Patterns)
11629         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
11630         INTERNALS".
11631
11632 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
11633
11634         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
11635         (LIBGCC_SPEC): Update to match.
11636
11637 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
11638
11639         * c-decl.c (last_function_parms, last_function_parm_tags)
11640         (last_function_parm_others, current_function_parms)
11641         (current_function_parm_tags, current_function_parm_others):
11642         Delete.
11643         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
11644         New macros.
11645         (grokdeclarator): For function definitions, save the arg-info
11646         block from the declarator in DECL_ARGUMENTS.
11647         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
11648         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
11649         contains only PARM_DECLs.  Improve diagnostics.
11650         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
11651         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
11652         (store_parm_decls_newstyle): Take the function to operate on,
11653         and an arg-info block, as arguments; don't get anything from
11654         current_function_* globals.
11655         (store_parm_decls_oldstyle): Likewise.
11656         (store_parm_decls): Pass fndecl and its arg-info block down to
11657         store_parm_decls_newstyle/oldstyle.  Send functions with empty
11658         argument lists through store_parm_decls_newstyle to reduce
11659         overhead.
11660         (pushdecl): Comment on the problems with the call to copy_node.
11661         Clear DECL_ARGUMENTS of the old node after copying it, if it
11662         is an arg-info block instead of a chain of decls.
11663         (start_function): Do not manipulate current_function_parm* or
11664         last_function_parm*.
11665
11666 2004-03-09  Roger Sayle  <roger@eyesopen.com>
11667             Andrew Pinski  <pinskia@physics.uc.edu>
11668
11669         * ifcvt.c (noce_try_sign_mask): New function to transform
11670         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
11671         (noce_process_if_block): Call noce_try_sign_mask.
11672
11673 2004-03-09  Andrew Pinski  <apinski@apple.com>
11674
11675         * c-typeck.c (tagged_types_tu_compatible_p):
11676         Fix typo.
11677
11678 2004-03-09  Roger Sayle  <roger@eyesopen.com>
11679
11680         * simplify-rtx.c (simplify_const_relational_operation): New function
11681         renamed from simplify_relational_operation.
11682         (simplify_relational_operation): Change prototype to accept an
11683         additional mode argument.  Call simplify_const_relational_operation.
11684         (simplify_gen_relational): Update simplify_relational_operation call.
11685         (simplify_ternary_operation): Update simplify_relational_operation
11686         subroutine call to use simplify_const_relational_operation instead.
11687
11688         * rtl.h (simplify_const_relational_operation): Prototype here.
11689         (simplify_relational_operation): Add addtional mode argument.
11690
11691         * combine.c (combine_simplify_rtx): Update calls to
11692         simplify_relational_operation.
11693         (simplify_set): Likewise.
11694         (gen_binary): Likewise.
11695         * cse.c (fold_rtx): Likewise.
11696         * dojump.c (compare_from_rtx): Likewise.
11697         (do_compare_rtx_and_jump): Likewise.
11698         * integrate.c (subst_constants): Likewise.
11699         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
11700
11701 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
11702
11703         * config/m32r/m32r.md: Remove all define_peephole's.
11704
11705 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
11706
11707         * config/rs6000/rs6000.md: Remove trailing whitespace.
11708
11709 2004-03-08  Eric Christopher  <echristo@redhat.com>
11710
11711         * Makefile.in (site.exp): Add libiconv variable definition.
11712
11713 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
11714
11715         * configure: Regenerate for config/accross.m4 correction.
11716
11717 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
11718
11719         PR target/14480
11720         * config/rs6000/t-rtems: Add missing file on branch.
11721
11722 2004-03-08  Roger Sayle  <roger@eyesopen.com>
11723
11724         PR middle-end/14289
11725         * c-typeck.c (c_mark_addressable): A register variable should
11726         be considered global if its not automatic, i.e. TREE_PUBLIC,
11727         TREE_STATIC or DECL_EXTERNAL.
11728         * function.c (put_var_into_stack): Call abort when placing a
11729         hard register into the stack, if x_parm_reg_stack_loc is NULL.
11730
11731 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
11732
11733         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
11734         ("*extendqisi2_short_displ"): Likewise.
11735
11736 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
11737
11738         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
11739         (comp_operator): Likewise.
11740         * config/pdp11/pdp11-protos.h: Remove corresponding
11741         prototypes.
11742
11743 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
11744
11745         * expr.c (highest_pow2_factor_for_type): Rename into
11746         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
11747         TYPE_ALIGN when the target is a COMPONENT_REF.
11748         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
11749
11750 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
11751
11752         * config/rs6000/rs6000.c: Formatting fix.
11753         (legitimate_offset_address_p): Correct offset range check.
11754
11755         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
11756         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
11757         and MASK_STRING.
11758
11759 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
11760
11761         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
11762         for little endian.
11763         ("ashrdi3_no_power"): Disable for little endian.
11764         (ashrdi3): Same.
11765
11766 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11767
11768         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
11769         builtins.
11770
11771 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
11772
11773         PR target/14471
11774         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
11775         case, checking for -no-mul-bug-abort option.
11776         * configure, config.in: Regenerate.
11777         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
11778         and -mno-mul-bug-workaround.
11779         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
11780         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
11781         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
11782         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
11783         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
11784         sure mulu.d is not last on cache-line.
11785         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
11786         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
11787         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
11788         (TARGET_SWITCHES): New options -mmul-bug-workaround and
11789         -mno-mul-bug-workaround.
11790         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
11791         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
11792         * config/cris/cris.c (cris_operand_extend_operator): Clarify
11793         relation to MULT in head comment.
11794         (cris_op_str): Abort for MULT.
11795         (cris_print_operand) <case '!'>: New case.
11796
11797 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
11798
11799         PR debug/11983
11800         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
11801         dw_val_class_vec.  Replace use throughout file.
11802         (dw_float_const): Delete.
11803         (dw_vec_const): New.
11804         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
11805         throughout file.
11806         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
11807         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
11808         (size_of_die): Adjust dw_val_class_vec sizing.
11809         (output_die): Output dw_val_class_vec.
11810         (insert_int, extract_int, insert_float): New functions.
11811         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
11812         Handle CONST_VECTOR.
11813         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
11814
11815 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
11816
11817         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
11818         AltiVec abi cannot co-exist.
11819
11820         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
11821
11822 2004-03-07  Jan Hubicka  <jh@suse.cz>
11823
11824         * except.c (emit_to_new_bb_before):  Break fallthru edges.
11825
11826 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
11827
11828         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
11829         ("*lshrsi3"): Also accept an immediate for 68HC12.
11830         ("*ashrsi3_const"): Likewise.
11831         ("*ashrsi3"): Likewise.
11832         ("*ashlsi3_const"): Likewise.
11833         ("*ashlsi3"): Likewise.
11834         ("cmphi_1_hc12"): Compare two hard register by pushing them and
11835         comparing with a pop; don't use a split for that.
11836         ("cmphi split"): Disable compare split for 68HC12.
11837
11838         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
11839         the status operands if they have side effects.
11840
11841 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
11842
11843         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
11844         definition.
11845         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
11846         config/h8300/h8300.h, config/ia64/ia64.h,
11847         config/mcore/mcore.h, config/mmix/mmix.h,
11848         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
11849         config/stormy16/stormy16.h, config/v850/v850.h,
11850         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
11851         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
11852         definition.
11853
11854 2004-03-07  Roger Sayle  <roger@eyesopen.com>
11855
11856         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
11857         <XOR_EXPR>: Fold x ^ x as zero.
11858         <AND_EXPR>: Fold x & x as x.
11859
11860 2004-03-07  Roger Sayle  <roger@eyesopen.com>
11861
11862         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
11863         "foo++ == const" into "++foo == const+incr".
11864
11865 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
11866
11867         * config/mips/mips.c (mips_in_small_data_p): Return false if
11868         TARGET_ABICALLS.
11869
11870 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
11871
11872         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
11873         the stack register.
11874         (expand_prologue): Don't make an interrupt or a trap handler a far
11875         symbol.
11876         (m68hc11_initial_elimination_offset): Likewise.
11877
11878 2004-03-06  Richard Henderson  <rth@redhat.com>
11879
11880         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
11881
11882 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
11883
11884         * config/ns32k/ns32k-protos.h: Add a prototype for
11885         ns32k_notice_update_cc.
11886         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
11887         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
11888         ns32k_notice_update_cc.
11889
11890 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
11891
11892         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
11893         "*load_multiple_si"): Allow only if reload_completed.
11894         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
11895         Likewise.
11896
11897 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
11898
11899         * config/vax/vax-protos.h: Add a prototype for
11900         vax_notice_update_cc.
11901         * config/vax/vax.c (vax_notice_update_cc): New.
11902         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
11903         vax_notice_update_cc.
11904
11905 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
11906
11907         * collect2.c (main): Only export initfunc and finifunc if
11908         LD_INIT_SWITCH not defined.
11909         (scan_prog_file): Only export constructors and destructors if
11910         LD_INIT_SWITCH not defined.  Only export symbols not found in
11911         shared objects.
11912
11913 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11914
11915         * pa.md (icacheflush): Reorder operands to make match_scratch operand
11916         last.
11917         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
11918         from calls to gen_icacheflush.
11919
11920 2004-03-06  Richard Henderson  <rth@redhat.com>
11921
11922         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
11923         (TARGET_LONG_DOUBLE_128): New.
11924         (TARGET_SWITCHES): Add long-double-{128,64}.
11925         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
11926         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
11927         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
11928         (WIDEST_HARDWARE_FP_SIZE): New.
11929         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
11930         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
11931         if TARGET_VAX_FLOAT.
11932         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
11933         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
11934
11935 2004-03-06  Richard Henderson  <rth@redhat.com>
11936
11937         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
11938         botched rtx class conversion.
11939
11940 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11941
11942         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
11943         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
11944
11945         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
11946         macros.
11947         * fold-const.c (fold_mathfn_compare, fold): Likewise.
11948
11949 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
11950
11951         PR target/14343
11952         * config/i386/i386.md (movv2di_internal): Conditionalize on
11953         TARGET_SSE, not TARGET_SSE2.
11954
11955 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
11956
11957         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
11958         duplicated line.
11959
11960 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11961
11962         * builtins.c: Consistently use logN not log* in comments.
11963
11964 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
11965
11966         * rtl.h (mem_expr_equal_p): Function prototype added.
11967         * cfgcleanup.c (merge_memattrs): New function.
11968         (flow_find_cross_jump): Call merge_memattrs for matching insns.
11969         * emit-rtl.c (mem_expr_equal_p): New function.
11970
11971 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
11972
11973         * objc/objc-act.c (synth_module_prologue): Const-qualify
11974         objc_selector type if using the GNU runtime; fix generated
11975         signatures for objc_msg_lookup and objc_msg_lookup_super
11976         to match what GNU ObjC headers provide; reformat and clean up.
11977         (synth_self_and_ucmd_args): Use previously constructed (and
11978         hence possibly const-qualified) objc_selector type.
11979
11980 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
11981
11982         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
11983
11984 2004-03-05  Jason Merrill  <jason@redhat.com>
11985
11986         * tree.h (TYPE_HASH): Use TYPE_UID.
11987         (TREE_HASH): New macro with old definition of TYPE_HASH.
11988         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
11989         (build_array_type, build_function_type): Likewise.
11990         (build_method_type_directly): Likewise.
11991         (build_offset_type, build_complex_type): Likewise.
11992         (type_hash_list, attribute_hash_list): Likewise. Now static.
11993         * except.c: s/TYPE_HASH/TREE_HASH/.
11994
11995 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
11996
11997         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
11998         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
11999         __va_ndx by 2 words when referencing an argument on the stack.
12000         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
12001         words when an arg on the stack is first seen.
12002
12003 2004-03-05  Paul Brook  <paul@codesourcery.com>
12004
12005         * arm.h (ARM_FLAG_VFP): Remove.
12006         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
12007         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
12008
12009 2004-03-05  Paul Brook  <paul@codesourcery.com>
12010
12011         * function.c (assign_parms): Include pretend alignment offset.
12012
12013 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12014
12015         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
12016         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
12017
12018 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
12019
12020         * configure.ac: When passing --enable-languages to subdir
12021         configure when host != build, make sure we don't pass an empty
12022         value.
12023         * configure: Regenerate.
12024
12025 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
12026
12027         PR 13577
12028         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
12029         options.
12030
12031 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
12032
12033         * simplify-rtx.c (simplify_relational_operation): If
12034         flag_wrapv is set, do not move terms between the two
12035         side of a relational operator.
12036
12037 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
12038
12039         * rtlanal.c: Include target.h and output.h
12040         (rtx_cost, address_cost, default_address_cost): Move from...
12041         * cse.c (rtx_cost, address_cost, default_address_cost):
12042         ... this file.
12043         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
12044         * Makefile.in: Adjust dependencies.
12045
12046 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
12047
12048         * cse.c (cse_end_of_basic_block): Make static.
12049         * local-alloc.c (function_invariant_p): Move to
12050         reload1.c.
12051         * loop.c (libcall_other_reg, record_excess_regs):
12052         Make static.
12053         * reload1.c (function_invariant_p): Moved here
12054         from local-alloc.c, made static.
12055         * rtl.h (cse_end_of_basic_block, function_invariant_p,
12056         libcall_other_reg, record_excess_regs): Remove
12057         declarations.
12058
12059 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
12060
12061         * config/m32r/m32r.c (signed_comparison_operator): Add a
12062         missing parenthesis.
12063
12064 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
12065
12066         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
12067         going to call mmap again.  Read the file into the right place.
12068         Give a fatal error if we have to relocate.
12069
12070 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
12071
12072         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
12073         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
12074
12075 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
12076
12077         PR other/14354
12078         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
12079         round the same.  When rounding, clear bits that would cause a
12080         second rounding in pack_d.
12081         (_fpmul_parts): Ditto.  Remove #if 0:d code.
12082
12083 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
12084
12085         PR c++/14425, c++/14426
12086         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
12087         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
12088         Change C++ definitions to accept a 'const int' argument;
12089         the prototypes already do.
12090         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
12091         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
12092         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
12093         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
12094         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
12095         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
12096         end in ..._int; change them to accept an int instead of a char
12097         as the last parameter.
12098
12099 2004-03-04  Phil Edwards  <phil@codesourcery.com>
12100
12101         * genmultilib:  Change '=' to '-' when translating option names
12102         to directory names.
12103
12104 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12105
12106         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
12107         stack slot for temp used for result of BLKmode but in integral mode.
12108
12109 2004-03-04  Jan Hubicka  <jh@suse.cz>
12110
12111         * reload.c (find_reloads): Reorganize if seqeunce to switch.
12112
12113         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
12114         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
12115
12116 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
12117
12118         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
12119         * testsuite/gcc.dg/20040303-1.c: New test.
12120
12121 2004-03-04  Steven Bosscher  <stevenb@suse.de>
12122
12123         * ppro.md: Rewrite as a DFA pipeline description.
12124         * i386.md: Remove all uses of the ppro_uops attribute.
12125         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
12126         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
12127         ix86_sched_reorder, ix86_variable_issue,
12128         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
12129         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
12130         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
12131         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
12132         * athlon.md (athlon_ssecmp_load): Fix comment
12133
12134 2004-03-04  Stuart Hastings  <stuart@apple.com>
12135
12136         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
12137
12138 2004-03-04  Stuart Hastings  <stuart@apple.com>
12139
12140         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
12141         686, tell Darwin assembler to allow prefetch insns, non-empty def
12142         of SUBTARGET_OPTION_TRANSLATE_TABLE.
12143
12144 2004-03-04  DJ Delorie  <dj@redhat.com>
12145
12146         PR optimization/14282
12147         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
12148         between a call and the assignment of its return value.
12149
12150 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
12151
12152         * config/h8300/h8300.c: Put a comment for every function.
12153
12154 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
12155
12156         * config/h8300/h8300.md: Add comments about peephole2's.
12157
12158 2004-03-04  Steven Bosscher  <stevenb@suse.de>
12159
12160         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
12161
12162 2004-03-04  Jan Hubicka  <jh@suse.cz>
12163
12164         * cfgcleanup.c (thread_jump): Update call of cselib_init.
12165         * cselib.c (cselib_record_memory): New static variable.
12166         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
12167         Give up on memories when asked for.
12168         (cselib_init): Accept new argument.
12169         * cselib.h (cselib_init): Update prototype.
12170         * gcse.c (local_cprop_pass): Update call of cselib_init.
12171         * loop.c (load_mems): Update call of cselib_init.
12172         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
12173         * sched-deps.c (sched_analyze): Update call of cselib_init.
12174
12175 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
12176             GP <gp@qnx.com>
12177
12178         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
12179         when compiling PIC.
12180
12181 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
12182
12183         PR/14362
12184         * var-tracking.c (track_expr_p): Do not track variables which
12185         should be ignored for debugging purposes.
12186
12187 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
12188
12189         * real.c (encode_ibm_extended): Don't bother rounding low double.
12190         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
12191         when fmt->pnan < fmt->p.
12192
12193 2004-03-04  Eric Christopher  <echristo@redhat.com>
12194
12195         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
12196         only range of valid arg registers and fixed_regs.
12197
12198 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
12199
12200         PR target/14406
12201         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
12202         (abstf2, abstf2_internal): New define_expand.
12203
12204 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
12205
12206         PR optimization/14235
12207         * expr.c (convert_move): Copy the source to a new pseudo
12208         when converting from a sub-word source to a larger-than-word
12209         register which conflicts with the source.
12210
12211 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
12212
12213         PR 13728
12214         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
12215         parameters with the same name, unless one is a forward decl.
12216         Do not issue a redundant-redeclaration warning for forward
12217         decls of parameters.
12218
12219 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
12220
12221         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
12222         configuration.
12223
12224 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
12225
12226         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
12227
12228 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
12229
12230         * target-def.h (TARGET_OPTF): Delete.
12231         * c-opts.c (TARGET_OPTF): Define.
12232
12233 2004-03-04  Jan Hubicka  <jh@suse.cz>
12234
12235         * cselib.c (cselib_finish): Fix another miss-application of my previous
12236         patch.
12237
12238 2004-03-03  Mike Stump  <mrs@apple.com>
12239
12240         Add framework support for darwin.
12241
12242         * c-incpath.c: Include target.h and machmode.h.
12243         (add_path): Use a consistent style for cpp_dir.  Initialize
12244         p->construct to 0.
12245         (add_cpp_dir_path): New.
12246         (register_include_chains): Add use of extra_includes callback.
12247         (hook_void_int): Add.
12248         (target_c_incpath): Add.
12249         * c-incpath.h (add_cpp_dir_path): New.
12250         (target_c_incpath_s): Add.
12251         (target_c_incpath): Add.
12252         (C_INCPATH_INIT): Add.
12253         * c-opts.c (c_common_missing_argument,
12254         c_common_handle_option): Add -F argument processing.
12255         * c.opt: Add -F argument processing.
12256         * gcc.c (trad_capable_cpp): Add -F argument processing.
12257         * cppfiles.c (find_file_in_dir): Update to use construct
12258         callback.
12259         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
12260         cpp_get_prev): New.
12261         (_cpp_find_file): Use search_path_exhausted.
12262         (make_cpp_dir): Initialize construct to 0.
12263         * cpplib.h (missing_header_cb
12264         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
12265         (cpp_callbacks): Add missing_header
12266         (cpp_dir): Add construct.
12267         * target-def.h: (TARGET_OPTF): New.
12268         * hooks.c (hook_void_int, hook_void_charptr): Add.
12269         * hooks.h (hook_void_int, hook_void_charptr): Add.
12270         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
12271         $(MACHMODE_H) dependencies.
12272         * doc/invoke.texi (Darwin Options): Document -F.
12273         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
12274         (TARGET_OPTF): Add.
12275         * fix-header.c (target_c_incpath): Add.
12276
12277         * config/darwin-c.c: Add c-incpath.h include.
12278         (using_frameworks, find_subframework_file,
12279         find_subframework_header, add_system_framework_path,
12280         frameworks_in_use, num_frameworks, max_frameworks,
12281         add_framework, find_framework, struct framework_header,
12282         framework_header_dirs, framework_construct_pathname,
12283         find_subframework_file, add_system_framework_path,
12284         add_framework_path, framework_defaults,
12285         darwin_register_frameworks, find_subframework_header): Add.
12286         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
12287         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
12288         (CPP_SPEC): Add __APPLE_CC__ support.
12289         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
12290
12291 2004-03-04  Jan Hubicka  <jh@suse.cz>
12292
12293         * cselib.c (cselib_finish): Fix miss-application of my previous
12294         patch.
12295
12296 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
12297
12298         * hooks.c (hook_tree_tree_identity): New.
12299         * hooks.h: Add a prototype for hook_tree_tree_identity.
12300         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
12301         instead of MD_ASM_CLOBBERS.
12302         * system.h (MD_ASM_CLOBBERS): Poison.
12303         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
12304         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
12305         * target.h (gcc_target): Add md_asm_clobbers.
12306         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
12307         (ix86_md_asm_clobbers): New.
12308         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
12309         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
12310         TARGET_MD_ASM_CLOBBERS.
12311
12312 2004-03-03  Stuart Hastings  <stuart@apple.com>
12313
12314         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
12315
12316 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
12317
12318         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
12319
12320         * config/sparc/sparc.h (ASM_FLOAT): Delete.
12321         (ASM_DOUBLE): Likewise.
12322         (ASM_LONGDOUBLE): Likewise.
12323         * config/sparc/pbd.h (ASM_INT_OP): Delete.
12324
12325 2004-03-03  Richard Henderson  <rth@redhat.com>
12326
12327         PR opt/13862
12328         * cselib.c (cselib_record_sets): Don't record multiple sets in
12329         asm insns.
12330
12331 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
12332
12333         * common.opt: Add description of the new -fgcse-after-reload flag.
12334
12335         * flags.h (flag_gcse_after_reload): Declaration of global variable.
12336
12337         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
12338         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
12339         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
12340         get_bb_avail_insn, hash_scan_set_after_reload,
12341         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
12342         gcse_after_reload, get_bb_avail_insn): New functions to implement
12343         gcse-after-reload.
12344         (gcse_after_reload_main): New function, the main entry point to
12345         gcse-after-reload.
12346
12347         * rtl.h (gcse_after_reload_main): Declaration of the new function.
12348
12349         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
12350
12351         * toplev.c (flag_gcse_after_reload): Initialization.
12352
12353         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
12354
12355         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
12356         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
12357         the gcse after reload optimization.
12358
12359         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
12360         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
12361         parameters.
12362
12363         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
12364
12365 2004-03-03  Nicolas Pitre <nico@cam.org>
12366
12367         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
12368         small negative values.
12369
12370 2004-03-03  Jan Hubicka  <jh@suse.cz>
12371
12372         * cselib.c (hash_table):  Remove GTY marker.
12373         (reg_values): Turn into array.
12374         (used_regs): Likewise.
12375         (n_used_regs): New static variable.
12376         (reg_values_old): Kill.
12377         (clear_table): Update uses of arrays.
12378         (cselib_lookup): Likewise.
12379         (cselib_record_set): Likewise.
12380         (cselib_init): Likewise.
12381         (cselib_finish): Likewise.
12382         (cselib_udpate_varray_sizes): Kill.
12383         * cselib.h (cselib_update_varray_sizes): Kill.
12384
12385 2004-03-03  Paul Brook  <paul@codesourcery.com>
12386
12387         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
12388
12389 2004-03-03  Jan Hubicka  <jh@suse.cz>
12390
12391         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
12392         Rename from ...; make statistics transparent.
12393         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
12394         (loc_descriptor): New structure.
12395         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
12396         add_statistics):
12397         New static function.
12398         (ggc_record_overhead, dump_statistics): New global function.
12399         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
12400         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
12401         from ...; accept locations
12402         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
12403         ggc_realloc, ggc_alloc_typed):  ... this one.
12404         from ...; accept locations
12405         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
12406         ggc_alloc_stat): Rename from ... ; pass locations
12407         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
12408         ... this one.
12409         (ggc_alloc_stat): Record overehead.
12410         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
12411         ggc_realloc, ggc_alloc_typed):  Turn to macros
12412         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
12413         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
12414         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
12415         * langhooks.h (lhd_make_node): Declare.
12416         (LANG_HOOKS_MAKE_TYPE): Default to new function,
12417         * langhooks.c (lhd_make_node): New.
12418         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
12419         locations.
12420         (rtx_alloc, swallow_copy_rtx): ... this one.
12421         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
12422         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
12423         * toplpev.c (finalize): Dump stats.
12424         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
12425         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
12426         Rename from ... ; pass locators.
12427         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
12428         build?,  build_decl): Declare.
12429         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
12430         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
12431         Declare.
12432         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
12433         build?,  build_decl): New macros.
12434         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
12435         * statistics.h: New file.
12436
12437 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
12438             Richard Sandiford  <rsandifo@redhat.com>
12439
12440         * config/mips/mips.h (MASK_FIX_SB1): Bump.
12441         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
12442         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
12443         * config/mips/mips.c (mips_output_division): Fill the branch delay
12444         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
12445         TARGET_FIX_R4400.
12446         (mips_output_division): Adjust accordingly.
12447         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
12448         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
12449
12450 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
12451
12452         * alias.c (rtx_equal_for_memref_p): Use predicates
12453         to test rtx classes and new rtx class codes, possibly
12454         splitting conditionals that tested against '<' and 'o'.
12455         * caller-save.c (save_call_clobbered_regs): Likewise.
12456         * combine.c (contains_muldiv, find_split_point, subst,
12457         combine_simplify_rtx, simplify_if_then_else,
12458         simplify_set, simplify_logical, expand_compound_operation,
12459         make_compound_operation, if_then_else_cond, known_cond,
12460         apply_distributive_law, cached_nonzero_bits,
12461         cached_num_sign_bit_copies, simplify_shift_const,
12462         gen_binary, simplify_comparison, update_table_tick,
12463         record_value_for_reg, get_lsat_value_validate): Likewise.
12464         * cse.c (mention_regs, find_best_addr, find_comparison_args,
12465         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
12466         Likewise.
12467         * emit-rtl.c (copy_insn_1): Likewise.
12468         * expr.c (force_operand): Likewise.
12469         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
12470         * flow.c (notice_stack_pointer_modification_1,
12471         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
12472         and_reg_cond, elim_reg_cond): Likewise.
12473         * function.c (update_epilogue_consts): Likewise.
12474         * genattrtab.c (attr_rtx_1): Likewise.
12475         * genopinit.c (gen_insn): Likewise.
12476         * integrate.c (subst_constants): Likewise.
12477         * jump.c (reversed_comparison_code_parts,
12478         reversed_comparison_code, delete_related_insns,
12479         rtx_renumbered_equal_p): Likewise.
12480         * local-alloc.c (block_alloc): Likewise.
12481         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
12482         canonicalize_condition): Likewise.
12483         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
12484         Likewise.
12485         * optabs.c (add_equal_node, expand_binop): Likewise.
12486         * predict.c (estimate_probability): Likewise.
12487         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
12488         * recog.c (validate_replace_rtx_1, comparison_operator,
12489         offsettable_address_p, constrain_operands): Likewise.
12490         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
12491         Likewise.
12492         * regclass.c (scan_one_insn): Likewise.
12493         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
12494         * regrename.c (kill_autoinc_value): Likewise.
12495         * reload.c (find_reusable_reload, find_reloads,
12496         reg_overlap_mentioned_for_reload_p): Likewise.
12497         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
12498         * rtl.c (copy_rtx): Likewise.
12499         * rtl.h (CONSTANT_P, INSN_P): Likewise.
12500         * rtlanal.c (commutative_operand_precedence): Likewise.
12501         * sched-deps.c (conditions_mutex_p): Likewise.
12502         * sched-rgn.c (is_cfg_nonregular): Likewise.
12503         * simplify-rtx.c (simplify_gen_binary,
12504         simplify_gen_relational, simplify_replace_rtx,
12505         simplify_unary_operation, simplify_binary_operation,
12506         simplify_ternary_operation, simplify_rtx): Likewise.
12507         * unroll.c (reg_dead_after_loop): Likewise.
12508         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
12509         print_operand): Likewise.
12510         * config/arc/arc.c (proper_comparison_operator): Likewise.
12511         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
12512         Likewise.
12513         * config/avr/avr.c (_reg_unused_after): Likewise.
12514         * config/frv/frv.c (frv_ifcvt_modify_tests,
12515         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
12516         * config/i386/i386.c (ix86_comparison_operator,
12517         ix86_carry_flag_operator, fcmov_comparison_operator,
12518         arith_or_logical_operator, print_operand,
12519         ix86_expand_binary_operator, ix86_binary_operator_ok):
12520         Likewise.
12521         * config/i386/i386.md: Likewise.
12522         * config/ia64/ia64.c (not_postinc_memory_operand,
12523         ia64_print_operand, update_set_flags, errata_emit_nops):
12524         Likewise.
12525         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
12526         CONSTRAINT_OK_FOR_S): Likewise.
12527         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
12528         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
12529         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
12530         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
12531         Likewise.
12532         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
12533         eqne_comparison_operator, signed_comparison_operator):
12534         Likewise.
12535         * config/mips/mips.c (cmp_op, symbolic_expression_p):
12536         Likewise.
12537         * config/mmix/mmix (mmix_foldable_comparison_operator,
12538         mmix_comparison_operator): Likewise.
12539         * config/pa/pa.c (hppa_legitimize_address): Likewise.
12540         * config/rs6000/rs6000.c (stmw_operation,
12541         branch_comparison_operator, trap_comparison_operator,
12542         ccr_bit): Likewise.
12543         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
12544         * config/s390/s390.c (s390_alc_comparison,
12545         s390_slb_comparison):L Likewise.
12546         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
12547         Likewise.
12548         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
12549         noov_compare_op, noov_compare64_op, v9_regcmp_op,
12550         emit_hard_tfmode_operation, reg_unused_after)
12551         * doc/md.texi, doc/rtl.texi: Likewise.
12552
12553         * ra-debug.c: Add 2004 to list of copyright years.
12554         * unroll.c: Likewise.
12555
12556         * combine.c (simplify_logical): Remove dummy test,
12557         (apply_distributive_law): Fix typo in comment.
12558         GET_CODE (x) == AND so x is a commutative binary op.
12559         * jump.c (delete_related_insns): simplify loop
12560         condition, move testing of RTX codes inside the loop.
12561         (rtx_renumbered_equal_p): do not use RTX_CODE.
12562         * rtl.c (rtx_class): Declare as enum rtx_class.
12563         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
12564         Move to RTX_COMM_COMPARE class.
12565         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
12566         Move to RTX_CONST_OBJ class.
12567         * rtl.h (enum rtx_class): New declaration,
12568         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
12569         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
12570         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
12571         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
12572         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
12573         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
12574         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
12575         OBJECT_P): New macros.
12576         * config/sparc/sparc.c (noov_compare_op): Remove register
12577         from parameter.
12578
12579 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
12580
12581         * target.h: Remove texi jargons in comments.
12582
12583 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12584
12585         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
12586         threshold to 0x4f.
12587
12588         Revert:
12589         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
12590         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
12591         as well.
12592         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
12593         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
12594
12595 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12596
12597         * doc/md.texi (cbranchmode4): New.
12598
12599 2004-03-02  Eric Christopher  <echristo@redhat.com>
12600
12601         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
12602         fix_trunc.
12603         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
12604         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
12605         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
12606         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
12607
12608 2004-03-02  Richard Henderson  <rth@redhat.com>
12609
12610         PR middle-end/11767
12611         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
12612         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
12613         before the compare, if flag_non_call_exceptions.
12614
12615 2004-03-02  Richard Henderson  <rth@redhat.com>
12616
12617         PR middle-end/14327
12618         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
12619         emitting the label, not after.
12620
12621 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12622
12623         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
12624         (m68hc11_mov_addr_mode): Likewise.
12625         (m68hc11_override_options): Initialize them based on target.
12626         (register_indirect_p): Allow a MEM for indirect addressing modes and
12627         use flags to control what is allowed.
12628         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
12629         supported addressing modes.
12630         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
12631         (go_if_legitimate_address_internal): Likewise.
12632         (m68hc11_indirect_p): Likewise and check the mode.
12633         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
12634
12635 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12636
12637         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
12638         (expand_builtin_setjmp_setup): Use
12639         targetm.builtin_setjmp_frame_value instead of
12640         BUILTIN_SETJMP_FRAME_VALUE.
12641         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
12642         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
12643         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
12644         * target.h (gcc_target): Add builtin_setjmp_frame_value.
12645         * targhooks.c (default_builtin_setjmp_frame_value): New.
12646         * targhooks.h: Add a prototype for
12647         default_builtin_setjmp_frame_value.
12648         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
12649         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
12650
12651 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12652
12653         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
12654         sequences of moves.
12655         (add peepholes): New peepholes to optimize sequences adding small
12656         constants.
12657         (bset peepholes): New peepholes to transform an OR in a bset form
12658         (bclr peepholes): Likewise for bclr form.
12659         (cmp peepholes): New peepholes to avoid register copies when comparing.
12660
12661 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12662
12663         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
12664         to separate push from moves.
12665         ("*pushdf_internal"): Likewise.
12666         ("*pushsf_internal"): Likewise.
12667         ("*pushsi_internal"): Likewise.
12668         ("movdi_internal"): Use define_insn_and_split; non push operand.
12669         ("movdf_internal"): Likewise.
12670         ("movsf_internal"): Likewise.
12671         ("movsi_internal"): Likewise.
12672         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
12673         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
12674         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
12675
12676 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12677
12678         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
12679         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
12680         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
12681         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
12682         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
12683         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
12684         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
12685         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
12686         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
12687         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
12688         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
12689
12690 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12691
12692         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
12693         (SOFT_XY_REGNUM): Define.
12694         (cmp split): Use the above instead of hard coded numbers.
12695         (8-bit op split): No need to check the mode; allow Q_REG.
12696         (ashift split): Adjust the first operand if it uses the SP and we
12697         are pushing the shifted value.
12698         (plus shift split): Fix when a source is in register D+X.
12699         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
12700
12701 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
12702
12703         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
12704         comparing with Z register.
12705
12706 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12707
12708         * cfgloop.h (struct loop_desc): Removed.
12709         (struct loop): Fields simple, desc and has_desc removed.
12710         (simple_loop_p, count_loop_iterations): Declaration removed.
12711         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
12712         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
12713         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
12714         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
12715         simple_loop_exit_p, variable_initial_value, variable_initial_values,
12716         simple_condition_p, simple_increment, count_strange_loop_iterations,
12717         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
12718         Removed.
12719         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
12720
12721 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12722
12723         * genattrtab.c: Don't handle MATCH_INSN.
12724         * genrecog.c: Likewise.
12725         * gensupport.c: Likewise.
12726         * rtl.def (match_insn): Remove.
12727         * doc/md.texi (match_insn, match_insn2): Remove.
12728
12729 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
12730
12731         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
12732         macro results in memory allocation.
12733
12734 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
12735
12736         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
12737         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
12738         %(fbsd_dynamic_linker),
12739         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
12740         config/i386/freebsd.h
12741         * config/arm/freebsd.h: Ditto.
12742         * config/i386/freebsd.h: Ditto.
12743         * config/i386/freebsd64.h: Ditto.
12744         * config/ia64/freebsd.h: Ditto.
12745         * config/rs6000/sysv4.h: Ditto.
12746         * config/sparc/freebsd.h: Ditto.
12747
12748 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
12749
12750         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
12751
12752 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12753
12754         * rtl.def (define_combine): Remove.
12755
12756 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12757
12758         * config/h8300/h8300.md: Tweak formatting.
12759
12760 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12761
12762         * config/h8300/h8300.md (*cmphi_h8300): Rename to
12763         *cmphi_h8300_znvc.
12764         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
12765
12766 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
12767
12768         PR bootstrap/14356
12769         * gcc.c (process_command): Remove const-qualification from argv.
12770         (main): Likewise.
12771
12772 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
12773
12774         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
12775         pushqi1_h8300hs_advanced.  Adjust its caller.
12776         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
12777         Adjust its caller.
12778
12779 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
12780
12781         * Makefile.in (install-libgcc, install-multilib): Pass
12782         mkinstalldirs var to libgcc.mk.
12783
12784 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
12785
12786         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
12787         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
12788
12789 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
12790
12791         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
12792         * config/h8300/h8300.md: Split several peephole2's, each into
12793         two.
12794
12795 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12796
12797         * dominance.c (recount_dominator): Handle postdominators.
12798
12799 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
12800
12801         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
12802         (NUM_SYMBOL_TYPES): Likewise.
12803         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
12804         (mips_unspec_address): Declare.
12805         (mips_gotoff_page, mips_gotoff_global): Delete.
12806         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
12807         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
12808         (mips_symbolic_constant_p, mips_symbolic_address_p)
12809         (mips_symbol_insns): Handle new symbol types.
12810         (general_symbolic_operand): New predicate.
12811         (mips_unspec_address): Make extern.
12812         (mips_gotoff_page, mips_gotoff_global): Delete.
12813         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
12814         Handle new symbol types.
12815         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
12816         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
12817         mips_unspec_address directly.
12818         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
12819         the documentation of -mexplicit-relocs.
12820
12821 2004-03-01  Jeff Law  <law@redhat.com>
12822
12823         * fold-const.c (fold): An equality comparison of a non-weak object
12824         against zero has a known result.  Similarly an equality comparison
12825         of the address of two non-weak, unaliased symbols has a known result.
12826
12827         * ggc-page.c (struct page_entry): New field PREV.
12828         (ggc_alloc): Update PREV field appropriately.
12829         (sweep_pages): Likewise.
12830         (ggc_free): Likewise.  Use PREV field rather than loop to
12831         improve ggc_free performance.
12832
12833 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
12834
12835         * config/mips/mips.c (mips_output_division): Use the division
12836         instruction to fill the delay slot of a zero check.
12837         (mips_idiv_insns): Adjust accordingly.
12838
12839 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
12840
12841         * config.gcc: Create a default tmake_file for linux, and use
12842         it in all but two linux clauses.  Comment those two.
12843
12844 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
12845
12846         * combine.c (try_combine):  Do not refer to is_replaced.
12847         (gen_lowpart_for_combine):  Perverse subregs now have a
12848         more politically correct name.
12849         * cse.c (cse_insn): Likewise.
12850         * jump.c: Fix bogus reference to delete_insn.
12851
12852 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
12853
12854         PR debug/14328
12855         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
12856         constants as signed values.
12857
12858         PR middle-end/13448
12859         * c-tree.h (readonly_warning): Rename to ...
12860         (readonly_error): ... this.
12861         * c-typeck.c (build_unary_op): Adjust accordingly.
12862         (readonly_warning): Rename to ...
12863         (readonly_error): ... this and issue errors, not warnings.
12864         (build_modify_expr): Call readonly_error, not readonly_warning.
12865         (c_expand_asm_operands): Likewise.
12866         * tree-inline.c (optimize_inline_calls): Do not inline functions
12867         after errors have occurred.
12868
12869 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
12870
12871         * configure.ac: Rearrange some threading code for clarity;
12872         add section comment.
12873         * configure: Regenerate.
12874
12875 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
12876
12877         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
12878         typos.
12879         * doc/cppopts.texi: Fix a typo.
12880
12881 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
12882
12883         * config/i386/i386.md: Fix formatting.
12884
12885 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
12886
12887         * configure.ac: Add some comments delineating sections of code.
12888
12889         * doc/install.texi: Note that libada uses autoconf 2.57 also.
12890
12891         * doc/install.texi: Fix idiot typo in previous commit.
12892
12893         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
12894
12895 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
12896
12897         * config/h8300/h8300.md: Add comments about peephole2's.
12898
12899 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
12900
12901         * config/h8300/h8300.md: Tweak operand numbers of some
12902         peephole2's.
12903
12904 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
12905
12906         * config/h8300/h8300.md: Tweak comments about peephole2's.
12907
12908 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
12909
12910         PR middle-end/14203
12911         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
12912         instead of testing whether DECL_RTL is not NULL.
12913
12914 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
12915
12916         * config/sh/sh.c: Fix formatting.
12917
12918 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
12919
12920         * config/sh/sh.c: Convert to ISO-C.
12921
12922 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
12923
12924         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
12925         my previous patch.
12926
12927         * config/darwin.h (machopic_finish): Output stub even if the
12928         symbol is already defined.
12929
12930 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12931
12932         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
12933
12934 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
12935
12936         * genattr.c (main): Don't define
12937         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
12938         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
12939         (DFA_PIPELINE_INTERFACE): Likewise.
12940         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
12941         (DFA_PIPELINE_INTERFACE): Likewise.
12942
12943 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
12944
12945         * config/mips/mips.md (tstsi, tstdi): Delete.
12946
12947 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
12948
12949         * config/mips/mips.c (override_options): Remove an obsolete
12950         duplicate definition of the "e" constraint.
12951         * config/mips/mips.h: Update a comment accordingly.
12952
12953 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
12954
12955         * config/mips/mips.md: Complete the unfinished R4000
12956         multiply/shift errata workaround.  Improve documentation.
12957         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
12958         has a hilo hazard.
12959         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
12960         (muldi3, muldi3_internal): Likewise.
12961         (muldi3_internal2): Remove, replacing with...
12962         (muldi3_mult3, muldi3_r4000): ...these new patterns.
12963         (mulsidi3): Take the errata into account.
12964         (mulsidi3_32bit): Remove, replacing with...
12965         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
12966         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
12967         (umulsidi3): Take the errata into account.
12968         (umulsidi3_32bit): Remove, replacing with..
12969         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
12970         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
12971         TARGET_FIX_R4000.
12972         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
12973         (smuldi3_highpart, umuldi3_highpart): Likewise.
12974         * doc/invoke.texi: Document the errata workaround.
12975
12976 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
12977
12978         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
12979         * config/mips/mips.h (MASK_FIX_SB1): Bump.
12980         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
12981         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
12982         * config/mips/mips.c (mips_idiv_insns): New function.
12983         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
12984         (mips_output_division): Add a workaround for the R4000 divide/shift
12985         errata.
12986         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
12987         the length of an "idiv" instruction.
12988         * doc/invoke.texi: Document the new switches.
12989
12990 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
12991
12992         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
12993         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
12994
12995 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12996
12997         PR optimization/14229
12998         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
12999
13000 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
13001
13002         * fold-const.c (fold): Strip NOPs that change the signedness
13003         for RSHIFT too.  Expand comment.
13004
13005 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
13006
13007         PR optimization/7871
13008         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
13009         from or to call insns.
13010
13011 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
13012
13013         PR optimization/7871
13014         * flow.c (propagate_one_insn): Interpret calls as setting global
13015         registers, not merely clobbering them.
13016
13017 2004-02-27  Dale Johannesen  <dalej@apple.com>
13018
13019         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
13020         config/darwin-protos.h:  Ditto.
13021         config/darwin.h:  Remove call to it.
13022         * combine.c (distribute_notes): Do not place a REG_DEAD note
13023         when value is both set and used.
13024
13025 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
13026
13027         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
13028         as well.
13029         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
13030         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
13031
13032 2004-02-27  Andrew Pinski  <apinski@apple.com>
13033
13034         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
13035         Speedup common case of the type values being in the same order.
13036
13037 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
13038
13039         * config/ia64/ia64.h (no-inline-float-divide): New option.
13040         * config/ia64/ia64.h (no-inline-int-divide): New option.
13041         * config/ia64/ia64.h (no-inline-sqrt): New option.
13042         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
13043         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
13044         * config/ia64/ia64.c (ia64_override_options): Modify error
13045         checking for inlined division/sqrt.
13046
13047 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
13048
13049         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
13050         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
13051         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
13052         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
13053         copyright.
13054
13055 2004-02-27  Paul Brook  <paul@codesourcery.com>
13056
13057         * function.c (assign_parms): Don't count pretend args for alignment.
13058
13059 2004-02-27  Richard Henderson  <rth@redhat.com>
13060
13061         * passes.c: New file.
13062         * Makefile.in (OBJS-common): Add it.
13063         * diagnostic.c (rtl_dump_and_exit): Move decl ...
13064         * flags.h (rtl_dump_and_exit): ... here.
13065         * output.h (size_directive_output, last_assemble_variable_decl):
13066         Move from toplev.c.
13067         * rtl.h (reg_alloc): Move from toplev.c.
13068         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
13069         struct dump_file_info, enum dump_file_index, dump_file_tbl,
13070         open_dump_file, close_dump_file, rest_of_decl_compilation,
13071         rest_of_type_compilation, rest_of_handle_final,
13072         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
13073         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
13074         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
13075         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
13076         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
13077         rest_of_handle_tracer, rest_of_handle_if_conversion,
13078         rest_of_handle_if_after_combine, rest_of_handle_web,
13079         rest_of_handle_branch_prob,
13080         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
13081         rest_of_handle_addressof, rest_of_handle_sibling_calls,
13082         rest_of_handle_jump_bypass, rest_of_handle_inlining,
13083         rest_of_handle_null_pointer, rest_of_handle_combine,
13084         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
13085         rest_of_handle_gcse, rest_of_handle_loop_optimize,
13086         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
13087         (decode_d_option): Use enable_rtl_dump_file.
13088         (compile_file, finalize, do_compile): Move profile+combine+graph
13089         cleanup to finish_optimization_passes.
13090         * toplev.h (init_optimization_passes, finish_optimization_passes,
13091         enable_rtl_dump_file): Declare.
13092
13093 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
13094             Roger Sayle  <roger@eyesopen.com>
13095
13096         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
13097         operands to build a tree with swapped operands.
13098         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
13099         'unsignedp' predicate to specify the signedness.
13100
13101 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
13102
13103         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
13104         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
13105         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
13106         comment typos and formatting.  Follow spelling conventions.
13107
13108 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
13109
13110         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
13111         fix_truncsfsi2.
13112
13113         * config/rs6000/spe.md: Delete spe_efsctuiz.
13114         Add spe_fixuns_truncsfsi2.
13115         Add spe_fix_truncsfsi2.
13116
13117 2004-02-26  Eric Christopher  <echristo@redhat.com>
13118
13119         * c-lex.c (c_lex_string_translate): New variable.
13120         (lex_string): Use to determine string translation.
13121         * c-pragma.h: Prototype.
13122         * c-parse.in (start_string_translation): New. Set above.
13123         (stop_string_translation): Ditto.
13124         (attribute, attribute_list, asm_def, asm_stmt,
13125         asm_operand): Use above functions.
13126         * cp/parser.c (cp_parser_declaration): Translate strings
13127         unless token is RID_EXTERN. Set c_lex_string_translate
13128         for recursive use.
13129         (cp_parser_asm_definition): Only translate argument strings
13130         to asms.
13131         (cp_parser_asm_operand_list): Ditto.
13132         (cp_parser_attribute_list): Do not translate attribute strings.
13133
13134 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13135
13136         * stmt.c (expand_start_case_dummy): Remove.
13137         * tree.h: Remove the corresponding prototype.
13138
13139 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13140
13141         * builtins.c (apply_args_register_offset): Remove.
13142         * tree.h: Remove the corresponding prototype.
13143
13144 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13145
13146         * stor-layout.c (is_pending_size): Remove.
13147         * tree.h: Remove the corresponding prototype.
13148
13149 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13150
13151         * recog.c (validate_replace_src): Remove.
13152         * recog.h: Remove the corresponding prototype.
13153
13154 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13155
13156         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
13157         MAYBE_REG_PARM_STACK_SPACE.
13158         * function.c: Likewise.
13159         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
13160         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
13161         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
13162         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
13163
13164 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13165
13166         * c-decl.c (c_expand_deferred_function): Remove.
13167         * c-tree.h: Remove the corresponding prototype.
13168
13169 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
13170
13171         * postreload.c (reload_cse_move2add): Generate just a PLUS
13172         instead of an entire SET.
13173
13174 2004-02-26  Jan Hubicka  <jh@suse.cz>
13175
13176         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
13177         /pentium4m.
13178         * i386.c (override_options): Add support for new CPUs.
13179         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
13180         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
13181         constants.
13182         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
13183
13184 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
13185
13186         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
13187
13188 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
13189
13190         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
13191         (sparc_emit_fixunsdi): New prototype.
13192         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
13193         (sparc_emit_fixunsdi): New function.
13194         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
13195         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
13196         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
13197         to sparc_emit_floatunsdi.
13198         (fixuns_truncsfdi2): New expander.
13199         (fixuns_truncdfdi2): Likewise.
13200
13201 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
13202
13203         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
13204         unless HAVE_cc0.
13205
13206 2004-02-25  Richard Henderson  <rth@redhat.com>
13207
13208         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
13209         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
13210         use (op0-op1) == 0 if op0 is a pointer.
13211         * config/alpha/alpha.md (cmpdi): Use some_operand.
13212         (three comparison combine splits): Remove.
13213
13214 2004-02-25  Richard Henderson  <rth@redhat.com>
13215
13216         PR c/12794
13217         * c-common.c (handle_alias_attribute): Reject the attribute if
13218         current_function_decl is set.
13219
13220 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
13221
13222         * config.gcc: Add comment describing extra_gcc_objs.
13223         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
13224         * configure.ac (extra_gcc_objs): New substitution variable.
13225         (host_extra_gcc_objs): Don't substitute.
13226         * configure: Regenerate.
13227         * Makefile.in: Use extra_gcc_objs.
13228
13229 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
13230
13231         * doc/contrib.texi: Add an entry for myself.
13232
13233 2004-02-25  Jan Hubicka  <jh@suse.cz>
13234
13235         * basic-block.h (make_eh_edge, break_superblocks): Declare.
13236         * cfgbuild.c (make_eh_edge):  Make global.
13237         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
13238         * except.c (build_post_landing_pads, connect_post_landing_pads,
13239         dw2_build_landing_pads, sjlj_emit_function_enter,
13240         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
13241         sjlj_build_landing_pads): Update CFG.
13242         (emit_to_new_bb_before): New function.
13243         (finish_eh_generation): Do not rebuild the CFG.
13244
13245 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13246
13247         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
13248         target_cpu_default defines.
13249         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
13250         * pa.h (TARGET_DEFAULT): Likewise.
13251
13252 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
13253
13254         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
13255         comparisons with regard to signedness.
13256
13257 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
13258
13259         * arm.c (thumb_legitimize_address): New function.
13260         * arm-protos.h: Prototype it.
13261         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
13262         (LEGITIMIZE_ADDRESS): Use it.
13263
13264 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
13265
13266         * reload1.c (reload): Only spill eliminable register with multiple
13267         adjacent elimination alternatives if all alternatives fail.
13268
13269 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
13270
13271         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
13272         is -4095...+4095 inclusive.
13273
13274 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
13275
13276         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
13277         the bootstrap failure with Sun CC 5.4 and 5.5.
13278
13279 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
13280
13281         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
13282         which modifies NEWREG.
13283         (cse_condition_code_reg): Update the mode of CC_REG in
13284         CC_SRC_INSN on our own.
13285
13286 2004-02-24  Michael Matz  <matz@suse.de>
13287
13288         * config/i386/i386.c (ix86_comp_type_attributes): Check for
13289         regparm attributes.
13290
13291 2004-02-24  Richard Henderson  <rth@redhat.com>
13292
13293         * toplev.c (dump_file_tbl): Rename from dump_file.
13294         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
13295         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
13296         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
13297         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
13298         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
13299         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
13300         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
13301         s/rtl_dump_file/dump_file/g.
13302
13303 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
13304
13305         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
13306         (spe_fixuns_truncsfsi2): Delete.
13307
13308         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
13309         (fixuns_truncsfsi2): Delete.
13310
13311 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
13312
13313         PR/14240
13314         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
13315
13316 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
13317
13318         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
13319
13320 2004-02-24  Jason Merrill  <jason@redhat.com>
13321
13322         * tree.c (check_qualified_type): New fn.
13323         (get_qualified_type): Use it.  If type already has the desired
13324         quals, just return it.
13325         * tree.h: Declare it.
13326
13327 2004-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
13328
13329         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
13330         TARGET_SCHED_FINISH_GLOBAL): New macros.
13331
13332         * target.h (md_init_global, md_finish_global): Function
13333         declarations corresponding to new target macros.
13334
13335         * haifa-sched.c (sched_init, sched_finish): Allow target to
13336         call the new schedular hooks.
13337
13338         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
13339         call to update_life_info.
13340
13341         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
13342         flag_schedule_insns for SH4.
13343
13344         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
13345         find_set_regmode_weight, find_insn_regmode_weight,
13346         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
13347         sh_variable_issue, high_pressure, ready_reorder,
13348         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
13349         functions used to throttle the insn movement in first
13350         scheduling pass for SH.
13351
13352         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
13353         TARGET_SCHED_FINISH_GLOBAL.
13354
13355 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
13356
13357         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
13358         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
13359         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
13360         symbols in sections named by the user.
13361         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
13362         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
13363         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
13364         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
13365         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
13366         the above.
13367         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
13368         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
13369         one more pseudo to further improve code generation.
13370         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
13371         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
13372         inside UNSPEC.
13373         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
13374         * config/frv/frv.c (frv_legitimate_address_p): Added
13375         allow_double_reg_p argument.  Adjust all callers.  Use it to
13376         decide whether to enable double-register indirect addressing.
13377         (frv_funcdesc_alias_set): Remove.
13378         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
13379         register.  Emit movdi_ldd.
13380         (ldd_address_operand): New.
13381         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
13382         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
13383         (PREDICATE_CODES): Add ldd_address_operand.
13384         * config/frv/frv.md (movdi_ldd): New.
13385         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
13386         intermediate computations if possible.
13387         (symGOTOFF2reg_i): Fix harmless typo.
13388         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
13389         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
13390         relocated p_vaddr to vaddr type.
13391         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
13392         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
13393         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
13394         MEM, or use a funcdesc alias set.  Use regular move instead of
13395         ldd.
13396         (dbl_memory_one_insn_operand): Recognize function descriptors by
13397         type or by alias set, and don't split them.
13398         * config/frv/frv.md (call, call_value): Never use call_internal
13399         for fdpic.
13400         (call_internal, call_value_internal): Never match for FDPIC.
13401         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
13402         call_value_fdpicsi): Require FDPIC.
13403         (ldd): Removed.
13404         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
13405         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
13406         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
13407         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
13408         FDPIC.  Compute data base address.
13409         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
13410         before the other self-specs are processed.
13411         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
13412         Build with -fPIC.
13413         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
13414         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
13415         inhibit_libc is defined.
13416         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
13417         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
13418         __FRV_FDPIC__.
13419         (__RELOC_POINTER): Define.
13420         (_Unwind_IteratePhdrCallback): Use it.
13421         * config/frv/frv.h (Twrite): Define.
13422         (TRANSFER_FROM_TRAMPOLINE): Use it.
13423         * config/frv/linux.h (INVOKE__main): Undefine.
13424         (Twrite): Override.
13425         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
13426         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
13427         (-mlibrary-pic): Emphasize that this option generates EABI code.
13428         (-mcpu): Add fr550.
13429         (-mpack): Remove.
13430         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
13431         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
13432         and CONSTs in FDPIC mode.
13433         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
13434         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
13435         * config/frv/frv.c (move_source_operand): Don't accept symbolic
13436         constants.
13437         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
13438         rather than 'i' constraint for the 2-instruction alternative.
13439         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
13440         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
13441         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
13442         EXTRA_CONSTRAINT_FOR_Y.
13443         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
13444         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
13445         (addsi3): Change 'Y' constraint to 'Q'.
13446         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
13447         * reload.c (CONST_POOL_OK_P): New macro.
13448         (find_reloads): Use it to decide whether a constant can be forced
13449         into memory.
13450         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
13451         constant satisfies got12_operand.
13452         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
13453         (frv_legitimate_address_p): Check for valid unspec offsets using
13454         got12_operand rather than frv_legitimate_fdpic_operand_p.
13455         (frv_legitimate_fdpic_operand_p): Delete.
13456         (frv_emit_movsi): Abort if we try to use the FDPIC register during
13457         or after reload.
13458         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
13459         TARGET_FDPIC.
13460         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
13461         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
13462         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
13463         (frv_fdpic_fptr_operand): Don't declare here.
13464         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
13465         rather than fdpic_got12_operand.
13466         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
13467         got12_operand and const_unspec_operand.
13468         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
13469         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
13470         (symbolic_operand): Remove.
13471         (const_unspec_operand): New predicate.
13472         * config/frv/frv.md (*movsi_got): Use got12_operand.
13473         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
13474         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
13475         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
13476         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
13477         * config/frv/frv.c (frv_unspec): New structure.
13478         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
13479         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
13480         validate CONST indices.  Use frv_output_const_unspec to print them.
13481         (frv_print_operand): Update call to unspec_got_name.  Use
13482         frv_output_const_unspec to print constant unspecs.
13483         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
13484         Reject UNSPECs otherwise.
13485         (unspec_got_name): Take the relocation number as argument, not an
13486         rtx containing it.
13487         (frv_output_addr_const_extra): Remove, replacing with...
13488         (frv_output_const_unspec): ...this new function.
13489         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
13490         (gpr_or_int12_operand): Use fdpic_got12_operand.
13491         (dbl_memory_one_insn_operand): Likewise.
13492         (fdpic_got12_operand): Use frv_const_unspec_p.
13493         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
13494         are already legitimate.  Use frv_small_data_reloc_p when deciding
13495         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
13496         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
13497         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
13498         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
13499         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
13500         label, for real this time.
13501         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
13502         representation of visibility.
13503         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
13504         such.
13505         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
13506         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
13507         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
13508         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
13509         it was explicitly disabled.
13510         (frv_stack_info): There is no need to save the link register in every
13511         frame unless TARGET_LINKED_FP is true.
13512         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
13513         frame pointer if the stack pointer might change value.
13514         (frv_return_addr_rtx): Check and process "count" argument.
13515         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
13516         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
13517         (frv_find_base_term): Declare.
13518         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
13519         (FIND_BASE_TERM): Define.
13520         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
13521         small_data_register_operand, small_data_symbolic_operand.  Add
13522         symbolic_operand.
13523         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
13524         (frv_print_operand_memory_reference, output_move_single): Remove
13525         special handling for unlegitimized sdata addresses.
13526         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
13527         and symbolic addresses.
13528         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
13529         (frv_find_base_term): New function.
13530         (int_2word_operand): Check specifically for symbolic address constants.
13531         (pic_register_operand, pic_symbolic_operand): Delete.
13532         (small_data_register_operand, small_data_symbolic_operand): Delete.
13533         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
13534         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
13535         (move_source_operand): Only accept CONSTs if they're a two-insn
13536         symbolic constant.
13537         (fdpic_got12_operand): Don't require TARGET_FDPIC.
13538         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
13539         using gen_symGOTOFF2reg*.
13540         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
13541         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
13542         themselves a cost of 3 insns.
13543         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
13544         Change predicate to symbolic_operand.
13545         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
13546         (*movsi_lda_sdata): Delete.
13547         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
13548         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
13549         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
13550         frv-*-*linux*.
13551         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
13552         label.
13553         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
13554         -multilib-library-pic.
13555         (LINK_SPEC): Add -z text for -mfdpic.
13556         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
13557         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
13558         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
13559         Override.
13560         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
13561         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
13562         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
13563         crtstuff-generated files.
13564         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
13565         * config.gcc: Add frv-*-*linux*.
13566         * config/frv/linux.h, config/frv/t-linux: New.
13567         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
13568         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
13569         when -mfdpic even if a linker script is explicitly listed.
13570         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
13571         * config/frv/frv.c (frv_override_options): Clear asm_out
13572         unaligned_op for SImode on FDPIC.
13573         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
13574         argument passed to decl_readonly_section.
13575         (frv_assemble_integer): Revert 2003-09-30's change, but make the
13576         whole block run with FDPIC even with -fno-PIC.
13577         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
13578         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
13579         symbol or label plus offset to memory.
13580         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
13581         GOTOFF and GPREL for LABEL_REF.
13582         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
13583         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
13584         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
13585         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
13586         * doc/invoke.texi: Document them.
13587         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
13588         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
13589         (frv_splittable_got_operand): Removed.
13590         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
13591         LO_SUM.  Add comments.
13592         (frv_override_options): Moved enabling of FDPIC to
13593         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
13594         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
13595         (frv_legitimize_fdpic_address): Don't duplicate logic in
13596         frv_emit_movsi.
13597         (frv_gen_GPsym2reg): New.
13598         (unspec_got_name): Added gprel.
13599         (frv_expand_fdpic_call): Add support for inlining PLTs.
13600         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
13601         (gpr_or_int12_operand): Added GPREL12.
13602         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
13603         (small_data_symbolic_operand): Fail if FDPIC.
13604         (fdpic_splittable_got_operand): Removed.
13605         (fdpic_got12_operand): Added GPREL12.
13606         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
13607         when appropriate.  Fix sdata GOTOFF.
13608         (frv_legitimate_constant_p): Require legitimate PIC operand for
13609         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
13610         (frv_assemble_integer): Move FDPIC funcdesc handling out of
13611         flag_pic case.
13612         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
13613         frv_assemble_integer fails.
13614         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
13615         (SUBTARGET_DRIVER_SELF_SPECS): New.
13616         (ASM_SPEC): Don't pass -mno-fdpic.
13617         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
13618         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
13619         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
13620         -multilib-library-pic.
13621         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
13622         condexec_si_media_operator, condexec_sf_add_operator and
13623         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
13624         and condexec_sf_unary_operator.
13625         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
13626         New.
13627         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
13628         movsi_internal.  Give them internal names.  movsi_got has type
13629         int.
13630         (fdpic got splitters): Remove.
13631         (symGPREL2reg, symGPREL2reg_hilo): New.
13632         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
13633         to -mlibrary-pic.  Map -multilib-library-pic to it.
13634         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
13635         Document.
13636         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
13637         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
13638         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
13639         (frv_cannot_force_const_mem): New function.
13640         (const_small_data_p, plus_small_data_p): Update comments on sdata
13641         on FDPIC.
13642         (frv_override_options): Set flag_pie for FDPIC too.
13643         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
13644         call-saved registers on FDPIC.
13645         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
13646         don't force LR to be preserved.
13647         (frv_expand_prologue): Likewise.
13648         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
13649         (frv_frame_pointer_required): Don't force it just because the
13650         FDPIC register is used.
13651         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
13652         operand only if !condexec_p.
13653         (frv_legitimize_address): Return the FDPIC-legitimized address.
13654         Don't match small data here on FDPIC.
13655         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
13656         symbols.  Use TRUE/FALSE instead of 1/0.
13657         (frv_local_funcdesc_p): New.
13658         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
13659         immediates when possible.
13660         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
13661         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
13662         an UNSPEC_GOT.
13663         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
13664         12-bit immediates when possible.
13665         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
13666         are not legitimate pic operands.
13667         (frv_in_small_data_p): Re-enable for FDPIC.
13668         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
13669         (FRV_GLOBAL_P): Removed.
13670         * config/frv/frv.md: Add modes to CONSTs.
13671         (movsi_got): New.
13672         (movsi_lo_sum_got): Use separate matches instead of match_dup.
13673         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
13674         (fdpic splittable operations): Match on flag_pic != 1.
13675         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
13676         * config/frv/frv.c (frv_asm_out_constructor,
13677         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
13678         bytes, not bits.
13679         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
13680         * config/frv/frv.c (frv_assemble_integer): Reject complex
13681         expressions referencing function SYMBOL_REFs.
13682         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
13683         (move_source_operand): Reject CONSTs that reference function
13684         SYMBOL_REFs on FDPIC.
13685         (frv_emit_movsi): If we get such a CONST, break it up.
13686         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
13687         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
13688         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
13689         MEM.
13690         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
13691         (frv_trampoline_size): Increase for FDPIC.
13692         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
13693         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
13694         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
13695         Disable use of GOTOFF for now.
13696         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
13697         Disable use of small data in FDPIC for now.
13698         (frv_asm_output_mi_thunk): Implement for FDPIC.
13699         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
13700         * config/frv/frv.c (frv_asm_out_constructor): Use
13701         frv_assemble_integer for FDPIC pointers.
13702         (frv_asm_out_destructor): Likewise.
13703         * config/frv/frv.md (ldd): Fix order of operands.  Use
13704         address_operand for input.
13705         2003-09-18  DJ Delorie  <dj@redhat.com>
13706         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
13707         (unspec_got_name): Correct typo.
13708         (frv_emit_movsi): Pre-expand splittable GOTs.
13709         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
13710         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
13711         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
13712         * config/frv/t-frv: Add -mfdpic multilibs.
13713         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
13714         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
13715         * config/frv/frv.c (frv_override_options): -mfdpic assumes
13716         flag_pic, default to 32-bit pics, require DWORD ops.
13717         (frv_override_options): Add W and Z constraints.
13718         (frv_expand_prologue): No pic prologue for -mfdpic.
13719         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
13720         (frv_print_operand_memory_reference): Handle GOT constants.
13721         (frv_legitimate_address_p): Allow GOT constants.
13722         (frv_legitimize_address): Handle GOT addresses too.
13723         (frv_legitimate_fdpic_operand_p): New.
13724         (frv_legitimize_fdpic_address): New.
13725         (unspec_got_name): New.
13726         (frv_output_addr_const_extra): New.
13727         (frv_expand_fdpic_call): New.
13728         (frv_fdpic_fptr_operand): New.
13729         (gpr_or_int12_operand): Handle GOT operands.
13730         (int_2word_operand): Handle GOT operands.
13731         (fdpic_operand): New.
13732         (fdpic_splittable_got_operand): New.
13733         (fdpic_got12_operand): New.
13734         (frv_emit_movsi): Handle GOT operands.
13735         (frv_assemble_integer): -mfdpic doesn't use rofixups.
13736         (frv_print_operand): Support 'g' code for GOT operands.
13737         * config/frv/frv-protos.h: Add prototypes as needed.
13738         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
13739         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
13740         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
13741         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
13742         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
13743         R_FRV_GOTOFFLO): New.
13744         (movsi_high_got, movsi_lo_sum_got): New.
13745         (*movsi_pic): Don't use this splitter for -mfdpic.
13746         (addsi3): Allow GOT references also.
13747         (call, call_value): Handle -mfdpic separately.
13748         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
13749         call_value_fdpicsi): New.
13750         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
13751         symGOTOFF2reg_i): New.
13752         * config/frv/frv.h (MASK_FDPIC): New.
13753         (TARGET_FDPIC): New.
13754         (TARGET_SWITCHES): Add -mfdpic.
13755         (FDPIC_FPTR_REGNO): New.
13756         (FDPIC_REGNO): New.
13757         (OUR_FDPIC_REG): New.
13758         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
13759         FDPIC_CALL_REGS.
13760         (REG_CLASS_NAMES): Likewise.
13761         (REG_CLASS_CONTENTS): Likewise.
13762         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
13763         (EXTRA_CONSTRAINT): Add it here.
13764         (FRV_GLOBAL_P): New.
13765         (OUTPUT_ADDR_CONST_EXTRA): New.
13766
13767 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
13768
13769         * config/sparc/sparc.h: Remove commented-out definitions of
13770         TARGET_EDOM and GEN_ERRNO_RTX.
13771
13772 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
13773
13774         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
13775         df_analyse with df_analyze.
13776
13777 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
13778
13779         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
13780         beginning of block.
13781
13782 2004-02-23  James E Wilson  <wilson@specifixinc.com>
13783
13784         * calls.c (precompute_arguments): Update comment.
13785
13786 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
13787
13788         * et-forest.c: Replace et_occurences with et_occurrences.
13789
13790 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
13791
13792         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
13793         with iv_analyze.
13794
13795 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
13796
13797         * config/i386/i386.c: Rename pni to sse3.
13798         * config/i386/i386.h: Likewise.
13799         * config/i386/i386.md: Likewise.
13800         * config/i386/pmmintrin.h: Likewise.
13801         * doc/extend.texi: Likewise.
13802         * doc/invoke.texi: Likewise.
13803
13804 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
13805             Kazu Hirata  <kazu@cs.umass.edu>
13806
13807         Remove -fwritable-strings.
13808         * c-common.c (fix_string_type): Don't check
13809         flag_writable_strings.
13810         (fix_string_type): Likewise.
13811         * c-opts.c (set_std_c89): Don't initialize
13812         flag_writable_strings.
13813         (set_std_c99): Likewise.
13814         * common.opt (fwritable-strings): Remove.
13815         * flags.h: Remove the external declaration of
13816         flag_writable_strings.
13817         * opts.c (common_handle_option) <OPT_fwritable_strings>:
13818         Remove.
13819         * toplev.c (flag_writable_strings): Remove.
13820         (f_options): Remove an entry for writable-strings.
13821         * varasm.c (const_hash_1) <STRING_CST>: Don't check
13822         flag_writable_strings.
13823         (compare_constant) <STRING_CST>: Likewise.
13824         (build_constant_desc): Likewise.
13825         * config/darwin.c (machopic_select_section): Likewise.
13826         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
13827         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
13828         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
13829         * config/mips/mips.c (mips_select_section): Likewise.
13830         (mips_encode_section_info): Likewise.
13831         * config/pa/pa.c (pa_select_section): Likewise.
13832         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
13833         * config/v850/v850.c (v850_select_section): Likewise.
13834         * doc/invoke.texi (-fwritable-strings): Remove.
13835         (-fno-const-strings): Don't mention -fwritable-strings.
13836         * doc/trouble.texi: Don't mention -fwritable-strings.
13837
13838 2004-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
13839
13840         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
13841
13842 2004-02-23  Dale Johannesen  <dalej@apple.com>
13843
13844         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
13845         (movdf_hardfloat64):  Ditto.
13846         (movdf_softfloat64):  Ditto.
13847
13848 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
13849         * config/rs6000/rs6000.c (function_arg): call to
13850         rs6000_mixed_function_arg for DFmode moved to allow
13851         normal DFmode incoming register assignment.
13852
13853 2004-02-23  Dale Johannesen  <dalej@apple.com>
13854
13855         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
13856         (movdf_hardfloat64):  Ditto.
13857
13858 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
13859
13860         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
13861         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
13862         copyright.
13863
13864 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
13865
13866         PR c/14156
13867         * c-typeck.c (c_expand_return): Change check for VAR_DECL
13868         to use DECL_P instead.
13869
13870         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
13871         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
13872
13873 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
13874
13875         * Makefile.in (opts.o): Depend on target.h.
13876         * opts.c (decode_options): Use targetm.default_short_enums
13877         instead of DEFAULT_SHORT_ENUMS.
13878         * system.h (DEFAULT_SHORT_ENUMS): Poison.
13879         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
13880         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
13881         * target.h (gcc_target): Add default_short_enums.
13882         * config/cris/cris.h: Remove a comment about
13883         DEFAULT_SHORT_ENUMS.
13884         * config/ip2k/ip2k.h: Likewise.
13885         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
13886         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
13887
13888 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
13889             Falk Hueffner  <falk@debian.org>
13890
13891         PR c/14188
13892         * builtins.c (expand_builtin_va_arg): Emit an informative message
13893         if a trap is generated.
13894         * c-typeck.c (build_function_call): Likewise.
13895
13896 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
13897
13898         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
13899         fopen.
13900         * libgcov.c: Include sys/stat.h.
13901         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
13902         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
13903         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
13904         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
13905
13906 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
13907
13908         * reorg.c: Remove comments about dead ports.
13909
13910 2004-02-22  Christopher Faylor  <cgf@redhat.com>
13911
13912         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
13913         extra host object file when targetting cygwin rather than generic
13914         object files.
13915
13916 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
13917
13918         Merge from tree-ssa:
13919         2003-11-20  Richard Henderson  <rth@redhat.com>
13920
13921                 * tree-inline.c (insert_decl_map): New.
13922                 (remap_decl, remap_type, remap_block, copy_body_r,
13923                 initialize_inlined_parameters, declare_return_variable,
13924                 remap_save_expr): Use it.
13925
13926         * function.c (copy_body_r): Add mapping from id->ret_label to
13927         id->ret_label.  Revert test for ret_label.
13928
13929 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
13930
13931         * genoutput.c (process_template): Strip trailing whitespace in @
13932         templates and issue a warning if there was any.
13933
13934 2004-02-21  Christopher Faylor  <cgf@redhat.com>
13935
13936         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
13937         object file when targetting cygwin.
13938         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
13939         overridden by top-level Makefile.
13940
13941 2004-02-21  Roger Sayle  <roger@eyesopen.com>
13942
13943         * config/i386/i386.c (standard_80387_constant_p): Also prefer
13944         the x87's load constant instructions when optimizing for size.
13945
13946 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
13947
13948         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
13949         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
13950         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
13951         * fold-const.c: Likewise.
13952         * simplify-rtx.c: Likewise.
13953
13954 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
13955
13956         * combine.c (can_combine_p): Don't ignore SETs marked with
13957         REG_EH_REGION notes.
13958         (try_combine): When attemting to fix unrecognized insns, don't
13959         split a PARALLEL that contains the original i2.
13960
13961 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
13962
13963         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
13964         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
13965         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
13966         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
13967         (vector, pixel, bool): #define to __vector, __pixel and __bool.
13968         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
13969         portion of header.
13970         (__altivec_link_error_invalid_argument): Remove prototype; will use
13971         __builtin_altivec_compiletime_error("vec_*") instead.
13972         (vec_*): Fix/complete set of available operation overloads given the
13973         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
13974         cv-correctness of pointer arguments; in C, always check for correct
13975         argument types before macro expansion.
13976         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
13977         defining Darwin/PowerPC-specific '-f[no-]altivec' and
13978         '-W[no-]altivec-long-deprecated' switches.
13979         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
13980         '__vector', '__pixel' and '__bool' macros using
13981         '__attribute__((altivec(...)))' types.
13982         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
13983         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
13984         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
13985         New type nodes.
13986         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
13987         handling '-W[no-]altivec-long-deprecated'.
13988         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
13989         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
13990         altivec_expand_dst_builtin): Remove casts from integer literals.
13991         (altivec_expand_builtin): Likewise; handle expansion of new
13992         '__builtin_altivec_compiletime_error' function.
13993         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
13994         types, and make them distinct from other vector types; register
13995         '__builtin_altivec_compiletime_error' function.
13996         (print_operand): For 'P', print a full target register name instead of
13997         merely its number.
13998         (rs6000_attribute_table): Add "altivec" attribute.
13999         (rs6000_handle_altivec_attribute): New function.
14000         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
14001         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
14002         maps to).
14003         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
14004         declare.
14005         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
14006
14007 2004-02-20  James E Wilson  <wilson@specifixinc.com>
14008
14009         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
14010         check.
14011         (shift_mix4left+2): Delete redundant pattern.
14012
14013 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
14014
14015         * alias.c (OUTGOING_REGNO): Don't define the default.
14016         * builtins.c (OUTGOING_REGNO): Likewise.
14017         (INCOMING_REGNO): Likewise.
14018         (apply_args_register_offset): Always use OUTGOING_REGNO.
14019         * combine.c (OUTGOING_REGNO): Likewise.
14020         * sibcall.c (OUTGOING_REGNO): Likewise.
14021         * defaults.h (INCOMING_REGNO): Provide the default.
14022         (OUTGOING_REGNO): Likewise.
14023
14024 2004-02-21  Jan Hubicka  <jh@suse.cz>
14025
14026         * params.def (max-peeled-insns, max-completely-peeled-insns,
14027         max-once-peeled-insns): Set to 400.
14028
14029 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14030
14031         PR c++/12007
14032         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
14033         are set for parameters before outputing debugging information.
14034
14035 2004-02-20  Falk Hueffner  <falk@debian.org>
14036
14037         PR target/14201
14038         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
14039         numbers.
14040
14041 2004-02-20  Per Bothner  <per@bothner.com>
14042
14043         * input.h:  Don't #include line-map.h.  It may cause link problems
14044         with undefined linemap_line_start when line-map.h is included but
14045         line-map.o is not linked, as currently happens with gengtype on
14046         compilers that don't support inline.
14047         * toplev.c:  So we do have to explicitly #include line-map.h here.
14048
14049 2004-02-20  Richard Henderson  <rth@redhat.com>
14050
14051         * doc/invoke.texi: Add -Wvariadic-macros.
14052
14053 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
14054
14055         * haifa-sched.c (sched_emit_insn): Remove.
14056         * sched-int.h: Remove the corresponding prototype.
14057
14058 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
14059
14060         Revert:
14061         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14062         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
14063         * system.h (DEFAULT_SHORT_ENUMS): Poison.
14064         * config/cris/cris.h: Remove a comment about
14065         DEFAULT_SHORT_ENUMS.
14066         * config/ip2k/ip2k.h: Likewise.
14067         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
14068
14069 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
14070             Tom Tromey  <tromey@redhat.com>
14071
14072         * doc/install.texi: Moved --disable-libgcj and
14073         --with-system-zlib documentation to new section for
14074         Java-specific options.
14075         Added explicit Cross-Compiler-Specific Options subheading.
14076         Added section for Java-specific options.
14077
14078 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
14079
14080         * doc/install.texi (Building the Ada compiler): Remove
14081         example.
14082
14083 2004-02-20  James E Wilson  <wilson@specifixinc.com>
14084
14085         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
14086
14087 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
14088
14089         * gcc.c (process_command): Allow translation of the copyright
14090         symbol but not the rest of the copyright message.
14091         * gcov.c (print_version): Likewise.  Allow translation of the
14092         message about warranty.
14093
14094 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
14095
14096         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
14097         predicate.
14098         ("*andsi_clear"): Tweak constraints to not match postincrement.
14099         Adjust the predicate to exclude a volatile memory reference.
14100         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
14101         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
14102
14103 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
14104
14105         * move-if-change: Remove.
14106         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
14107         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
14108         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
14109         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
14110         (s-gtyp-gen, s-iov): Use the top level move-if-change.
14111         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
14112
14113 2004-02-19  James E Wilson  <wilson@specifixinc.com>
14114
14115         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
14116         for operand2.  Add condition that requires register_operand operand2
14117         before reload.
14118
14119 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
14120             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
14121
14122         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
14123         * config/mips/mips.md: Expand comment above unaligned loads and stores.
14124
14125 2004-02-19  Richard Henderson  <rth@redhat.com>
14126
14127         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
14128         * tree.c (build0, build1, build2, build3, build4): Split out from...
14129         (build): ... here.  Call them.
14130         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
14131
14132         * convert.c (convert_to_integer): Remove extra build argument.
14133         * tree-inline.c (expand_call_inline): Likewise.
14134
14135 2004-02-19  Richard Henderson  <rth@redhat.com>
14136
14137         * c-opts.c (warn_variadic_macros): New.
14138         (c_common_handle_option): Set it.
14139         (sanitize_cpp_opts): Copy it to cpp_opts.
14140         * c.opt (Wvariadic-macros): New.
14141         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
14142         * cppinit.c (cpp_create_reader): Initialize it.
14143         * cppmacro.c (parse_params): Check it.
14144
14145 2004-02-19  David Daney <ddaney@avtrex.com>
14146
14147         PR preprocessor/14198
14148         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
14149         builtin_assert ("machine=mips")
14150
14151 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14152
14153         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
14154         * system.h (DEFAULT_SHORT_ENUMS): Poison.
14155         * config/cris/cris.h: Remove a comment about
14156         DEFAULT_SHORT_ENUMS.
14157         * config/ip2k/ip2k.h: Likewise.
14158         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
14159
14160 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
14161
14162         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
14163         when passing single SFmode quantities in general registers,
14164         put them in the high half.
14165
14166 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
14167
14168         * doc/md.texi (Standard Names): Document additional dependency on
14169         fix pattern.
14170
14171         * optabs.c (ftruncify): Remove.
14172         (expand_fix): Manually inline ftruncify above.
14173         (can_fix_p): Add FIXME note.
14174
14175 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
14176
14177         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
14178         spe_fixuns_truncsfsi2.
14179
14180         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
14181         fixuns_truncsfsi2.
14182
14183 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
14184
14185         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
14186         * testsuite/gcc.dg/20040219-1.c: New test.
14187
14188 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
14189
14190         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
14191         "*subsf3_cconly"): Subtraction is not commutative.
14192
14193 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
14194
14195         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
14196         (sdbout_symbol): If called before sdbout_init, queue DECL for
14197         later and return.
14198         (sdbout_init): Set sdbout_initialized true, process decls
14199         queued earlier by sdbout_symbol.
14200         (sdbout_finish): Use size_t for index variable.
14201
14202 2004-02-19  Jeff Law  <law@redhat.com>
14203
14204         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
14205         for unordered comparison codes.
14206
14207 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
14208
14209         * reload1.c (reload): Correct comment.
14210         (scan_paradoxical_subregs): Remove #if 0 and old comment.
14211         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
14212         register variables are not used by reload.
14213
14214 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
14215
14216         PR target/14209
14217         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
14218         constraints to not match postincrement.  Adjust the predicate to
14219         exclude a volatile memory reference.
14220
14221 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14222
14223         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
14224
14225 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14226
14227         * hooks.c (hook_void_tree_int): Remove.
14228         (hook_void_constcharptr): Likewise.
14229         (hook_int_void_0): Likewise.
14230         * hooks.h: Remove the prototypes for the above three
14231         functions.
14232         * targhooks.c (hook_bool_machine_mode_true): Remove.
14233         * targhooks.h: Remove the prototype for
14234         hook_bool_machine_mode_true.
14235
14236 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14237
14238         * emit-rtl.c (subreg_realpart_p): Remove.
14239         (reorder_insns_with_line_notes): Likewise.
14240         (end_full_sequence): Likewise.
14241         * rtl.h: Remove the prototype for the above functions.
14242
14243 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14244
14245         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
14246         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
14247         config/iq2000/iq2000.h, config/m32r/m32r.h,
14248         config/pdp11/pdp11.h, config/sparc/sparc.h,
14249         config/xtensa/xtensa.h: Remove commented-out or useless
14250         definitions of CASE_VECTOR_PC_RELATIVE.
14251
14252 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
14253
14254         * loop.c (all_sets_invariant_p): Remove.
14255
14256 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
14257
14258         PR target/12916
14259         * config/sparc/sparc.h (NPARM_REGS): Delete.
14260         (BASE_RETURN_VALUE_REG): Likewise.
14261         (BASE_OUTGOING_VALUE_REG): Likewise.
14262         (BASE_PASSING_ARG_REG): Likewise.
14263         (BASE_INCOMING_ARG_REG): Likewise.
14264         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
14265         TARGET_ARCH64, not TARGET_V9.
14266         (function_arg_slotno): Dispatch based on the mode class.
14267         Handle vector modes like floating-point modes.
14268         (function_arg_record_value_1): Handle vector types like
14269         floating-point types.
14270         (function_arg_record_value_2): Likewise.
14271         Calculate regno after mode transformation.
14272         (function_arg): Handle vector modes like floating-point modes.
14273         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
14274         If ARCH64, do not recheck alignment.
14275         (function_arg_pass_by_reference): Reorder the conditions.
14276         (sparc_return_in_memory): Move after function_arg_padding.
14277         Implement calling conventions for vector modes.
14278         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
14279         (function_value): Move scope of 'regbase'.
14280         Implement calling conventions for vector modes.
14281         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
14282         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
14283         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
14284         the argument is passed by reference.
14285         (sparc_type_code): Handle vector types.
14286
14287 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
14288
14289         * function.c (assign_parms): When building decl_rtl for
14290         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
14291
14292 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
14293
14294         * expr.c (is_aligning_offset): Check if we are aligning the
14295         expressions's address over BIGGEST_ALIGNMENT in bytes, not
14296         in bits.
14297
14298 2004-02-18  Matt Austern  <austern@apple.com>
14299
14300         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
14301         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
14302         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
14303         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
14304         spec string.
14305         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
14306
14307 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
14308
14309         * dwarf2out.c (loclabel_num): Move outside #ifdef
14310         DWARF2_DEBUGGING_INFO and mark with GTY(()).
14311         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
14312         Mark with GTY(()).
14313         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
14314         Allocate memory with ggc_alloc.  No need to copy anything.
14315         (ia64_hpux_file_end): Update to match.
14316
14317 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
14318
14319         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
14320         by default.
14321
14322 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
14323
14324         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
14325         ("divmodtisi3"): Likewise.
14326         ("udivmoddi4", "udivmodtidi3"): Likewise.
14327         ("divmodsi4", "divmoddisi3"): Likewise.
14328         ("udivmodsi4", "udivmoddisi3"): Likewise.
14329         ("udivsi3", "umodsi3"): Likewise.
14330
14331 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
14332
14333         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
14334         placeholder insn when chunkifying the pool.
14335
14336 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14337
14338         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
14339         generating PIC code.
14340
14341 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14342
14343         * config/h8300/h8300-protos.h: Add a prototype for
14344         h8300_expand_branch.
14345         * config/h8300/h8300.c (h8300_expand_branch): New.
14346         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
14347         bgtu, beq, bne): Call h8300_expand_branch().
14348
14349 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14350
14351         * config/h8300/h8300-protos.h: Add prototypes for
14352         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
14353         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
14354         (h8300_hard_regno_mode_ok): Likewise.
14355         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
14356         h8300_hard_regno_nregs().
14357         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
14358
14359 2004-02-18  Per Bothner  <per@bothner.com>
14360
14361         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
14362         partly reverts my 2003-10-01 change, because we're back to logically
14363         including <command line> inside the main line.
14364         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
14365         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
14366         Fixes PR preprocessor/14103.
14367
14368         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
14369         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
14370         (cpp_push_include):  Don't need to increment pfile's line field.
14371         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
14372
14373         * c-ppoutput.c (print struct):  New first_time field.
14374         (init_pp_output):  Set print.first_time.
14375         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
14376         which is set also for (say) <command line>.  Clear print.first_time.
14377
14378         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
14379         does not match the code, so fix both.
14380         (should_stack_file):  Inline include_pch_p function.
14381         (include_pch_p):  Remove pointless function.
14382
14383         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
14384
14385 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14386
14387         * config/h8300/h8300.md (four define_peephole2's): Use
14388         h8300_regs_ok_for_stm().
14389
14390 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14391
14392         * config/h8300/h8300-protos.h: Update the prototype for
14393         expand_a_rotate().
14394         * config/h8300/h8300.c (expand_a_rotate): Remove the first
14395         argument.
14396         * config/h8300/h8300.md: Update all callers.
14397
14398 2004-02-18  Jan Hubicka  <jh@suse.cz>
14399
14400         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
14401         floats.
14402         (simplify_binary_operation): Deal with logicals on floats.
14403
14404         * i386.md (SSE fabs splitters): Emit new patterns.
14405         (SSE cmov splitters): Likewise.
14406         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
14407         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
14408         subregs.
14409         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
14410         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
14411
14412 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14413
14414         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
14415         by hand.
14416         (output_a_rotate): Tweak a comment.
14417         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
14418         (*rotlhi3_1): Change to rotlhi3_1.
14419         (*rotlsi3_1): Change to rotlsi3_1.
14420
14421 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
14422
14423         PR target/13866
14424         * arm.c (load_multiple_operation): Don't insist that the source reg
14425         of a post-increment component is the same as the destination.
14426         (store_multiple_operation): Likewise.
14427
14428 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14429
14430         * config/h8300/h8300.md: Move movsf patterns into one section
14431         of the file.
14432
14433 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14434
14435         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
14436         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
14437         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
14438         config/mips/linux64.h, config/pa/pa-64.h,
14439         config/rs6000/aix51.h, config/rs6000/aix52.h,
14440         config/rs6000/spe.md, config/sparc/linux.h,
14441         config/sparc/linux64.h: Update copyright.
14442
14443 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
14444
14445         * config/h8300/h8300.md: Move push patterns into one
14446         section of the file.
14447
14448 2004-02-18  Mark Mitchell <mark@codesourcery.com>
14449
14450         PR c++/11326
14451         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
14452         fntype.
14453
14454 2004-02-18  Paul Brook  <paul@codesourcery.com>
14455
14456         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
14457
14458 2004-02-18  Paul Brook  <paul@codesourcery.com>
14459
14460         PR debug/12934
14461         * dwarf2out.c (loc_descriptor_from_tree): Handle
14462         EXPR_WITH_FILE_LOCATION.
14463
14464 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
14465
14466         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
14467         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
14468         trailing whitespace from instructions.
14469
14470 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
14471
14472         * configure.ac: When generating auto-build.h, pass
14473         --enable-languages to the sub-configure.
14474         Put quotes around ${program_transform_name} when generating
14475         name of as, ld, nm, objdump.
14476         * configure: Regenerate.
14477
14478 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
14479
14480         * Makefile.in (s-check, s-config, s-conditions, s-flags)
14481         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
14482         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
14483         (s-preds, s-iov): Do not depend on move-if-change.
14484
14485 2004-02-17  James E Wilson  <wilson@specifixinc.com>
14486
14487         * caller-save.c (insert_restore): Pass mem through copy_rtx.
14488         (insert_save): Likewise.
14489
14490 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14491
14492         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
14493         warning.
14494
14495 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14496
14497         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
14498         *one_cmplsi2_h8300.
14499         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
14500
14501 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14502
14503         * config/h8300/h8300-protos.h: Update the prototype of
14504         fix_bit_operand().
14505         * config/h8300/h8300.c (fix_bit_operand): Remove the second
14506         argument "what".
14507         * config/h8300/h8300.md: Update all callers.
14508
14509 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14510
14511         * config/h8300/h8300.c (fix_bit_operand): Change the name of
14512         the last argument to "code" from "type".
14513
14514 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14515
14516         * config/h8300/h8300.c: Remove an extern declaration of
14517         rtx_equal_function_value_matters.
14518
14519 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14520
14521         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
14522         by hand.
14523         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
14524         (*iorqi3_1): Change to iorqi3_1.
14525         (*xorqi3_1): Change to xorqi3_1.
14526
14527 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14528
14529         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
14530         typos.
14531
14532 2004-02-17  Jan Hubicka  <jh@suse.cz>
14533
14534         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
14535
14536 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
14537
14538         PR optimization/14119
14539         * combine.c (try_combine): When attemting to fix unrecognized insns,
14540         don't delete SETs marked with REG_EH_REGION notes.
14541
14542 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
14543
14544         * combine.c (simplify_if_then_else): Do not replace
14545         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
14546         modes differ.
14547
14548 2004-02017  Steven Bosscher  <stevenb@suse.de>
14549
14550         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
14551         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
14552         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
14553         * ada/utils.c: Likewise.
14554         * cp/decl.c: Likewise.
14555         * f/com.c: Likewise.
14556         * java/class.c: Likewise.
14557
14558 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14559
14560         * config/h8300/h8300.md: Fix comment typos.
14561
14562 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14563
14564         * config/mips/t-iris6gld: Renamed to ...
14565         * config/mips/t-irix-gld: ... this.
14566         * config.gcc (mips-sgi-irix6*): Reflect this
14567         (mips-sgi-irix5*): Use it with GNU ld.
14568
14569         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
14570         to ...
14571         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
14572         * config/mips/t-irix-gld: Reflect this.
14573         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
14574
14575         * config/mips/iris5gld.h: New file.
14576         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
14577         Only use collect2 without gas.
14578
14579         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
14580         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
14581         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
14582         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
14583
14584         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
14585         * config/mips/iris5.h: ... here.
14586
14587         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
14588         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
14589         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
14590
14591         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
14592         using irix_startfile_spec, irix_endfile_spec.
14593
14594 2004-02-16  Gunther Nikl  <gni@gecko.de>
14595
14596         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
14597
14598 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14599
14600         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
14601         insns by hand.
14602
14603 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14604
14605         * cfghooks.c (split_edge): Speed up updating of dominators.
14606
14607 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
14608
14609         PR c++/11326
14610         * c-common.c (flag_abi_version): Remove.
14611         * c-common.h (flag_abi_version): Likewise.
14612         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
14613         * c.opt (fabi-version): Remove.
14614         * calls.c (expand_call): Always pass a function type to
14615         struct_value_rtx.  Use convert_memory_address.
14616         * common.opt (fabi-version): Add it.
14617         * flags.h (flag_abi_version): Likewise.
14618         (abi_version_at_least): New macro.
14619         * opts.c (common_handle_option): Add OPT_fabi_version.
14620         * toplev.c (flag_abi_version): Define it.
14621         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
14622         New function.
14623         (ia64_output_mi_thunk): Use it.
14624         (ia64_struct_value_rtx): Likewise.
14625
14626 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14627
14628         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
14629         Don't generate insns by hand.
14630
14631 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
14632
14633         PR c++/14178
14634         * doc/invoke.texi (fabi-version): The default is 2 now.
14635
14636 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14637
14638         * loop-iv.c: New file.
14639         * Makefile.in (loop-iv.o): New.
14640         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
14641         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
14642         num_loop_branches): New functions.
14643         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
14644         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
14645         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
14646         get_simple_loop_desc, free_simple_loop_desc): Declare.
14647         (simple_loop_desc): New inline function.
14648         (struct rtx_iv, struct niter_desc): New.
14649         * cfgloopmanip.c (loopify): Specify semantics more precisely.
14650         * expr.c (force_operand): Handle subregs of expressions created by
14651         loop unroller.
14652         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
14653         parts of the initialization to toplev.c
14654         * loop-unroll.c (loop_exit_at_end_p): New.
14655         (unroll_and_peel_loops): Call iv_analysis_done.
14656         (decide_peel_once_rolling, decide_peel_completely,
14657         decide_unroll_stupid, decide_unroll_constant_iterations,
14658         decide_unroll_runtime_iterations, decide_peel_simple,
14659         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
14660         unroll_loop_runtime_iterations): Use new simple loop analysis.
14661         * loop-unswitch.c (compare_and_jump_seq): New.
14662         (may_unswitch_on_p): Renamed to ...
14663         (may_unswitch_on): Use new iv analysis.
14664         (reversed_condition): Export.
14665         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
14666         * predict.c (estimate_probability): Use new simple loop analysis.
14667         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
14668         canon_condition, simplify_using_condition): Declare.
14669         * stor-layout.c (get_mode_bounds): New.
14670         * toplev.c (rest_of_handle_loop2): Some parts of
14671         initialization/finalization moved here from loop-init.c.
14672
14673 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
14674
14675         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
14676         pointer.
14677         (CALL_USED_REGISTERS): Likewise.
14678         (REG_ALLOC_ORDER): Likewise.
14679         (REG_CLASS) <GENERAL_REGS>: Likewise.
14680
14681 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
14682
14683         * doc/md.texi (Insn Canonicalizations): Document left-chaining
14684         in associative operators.
14685         * rtlanal.c (commutative_operand_precedence): Create some new
14686         variables.  Prefer a commutative operand on the left, then
14687         binary expressions, then NEG and NOT.
14688
14689 2004-02-16  Matthias Klose  <doko@debian.org>
14690
14691         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
14692         in terms of SHLIB_SOVERSION.
14693         * config/m68k/t-slibgcc-elf-ver: New file.
14694         * config/pa/t-slibgcc-elf-ver: New file.
14695         * config.gcc (m68k-linux, parisc-linux): Use them when not
14696         sjlj exceptions are not configured.
14697
14698 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
14699
14700         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
14701
14702 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
14703
14704         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
14705
14706 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
14707
14708         * doc/sourcebuild.texi: Mention backends.html.
14709
14710 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
14711
14712         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
14713         line-map.c, line-map.h, var-tracking.c: Fix comment
14714         formatting.
14715
14716 2004-02-16  Richard Henderson  <rth@redhat.com>
14717
14718         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
14719
14720         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
14721
14722 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
14723
14724         * config/h8300/h8300.md: Remove unnecessary parallels from
14725         all define_insn and define_split patterns.
14726
14727 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
14728
14729         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
14730         "clobber").
14731
14732 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
14733
14734         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
14735         '%#'.
14736
14737 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
14738
14739         * config/ia64/ia64.c, config/mips/mips.c,
14740         config/mmix/mmix-modes.def: Fix comment typos.
14741
14742 2004-02-15  Roger Sayle  <roger@eyesopen.com>
14743
14744         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
14745         (get_directive_line): Remove unused function prototype.
14746
14747 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
14748
14749         * tree-inline.c (copy_body_r): Do not replace ret_label.
14750
14751 2004-02-14  Jan Hubicka  <jh@suse.cz>
14752
14753         * i386.c (x86_four_jump_limit): New variable.
14754         (k8_avoid_jump_misspredicts): Rename to ...
14755         (ix86_avoid_jump_misspredicts): .. this one.
14756         (ix86_pad_returns): Break out from ...
14757         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
14758         to.
14759         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
14760
14761 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
14762
14763         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
14764         PARALLEL is NULL.
14765
14766 2004-02-14  Per Bothner  <per@bothner.com>
14767
14768         * fix-header.c (line_table):  Move local variable in main to global.
14769         * scan.h (line_table):  Use it.
14770         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
14771         line (recently renamed to src_loc) before calling recognized_function.
14772
14773 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
14774
14775         * Makefile.in: Fix comment typos.
14776
14777 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
14778
14779         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
14780         for start_value when it is directly moved into reg, and factorize
14781         the retrieval of GET_MODE (reg).
14782
14783 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
14784
14785         * config/mips/mips-protos.h (mips_load_got_page): Delete.
14786         (mips_load_got_global): Delete.
14787         (mips_gotoff_page): Declare.
14788         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
14789         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
14790         UNSPEC_LOAD_GOT pattern rather than a MEM.
14791         (*load_got[sd]i): New patterns.
14792         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
14793         (mips_load_got_page, mips_load_got_global): Delete.
14794         (mips_gotoff_page): New function.
14795         (override_options): Don't initialize mips_got_alias_set.
14796
14797 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
14798
14799         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
14800         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
14801         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
14802         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
14803         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
14804         * config/mips/mips.c: Fix some overly-long lines.
14805         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
14806         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
14807
14808 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14809
14810         * configure.ac: Search for as, ld below libexec/gcc.
14811         * configure: Regenerate.
14812
14813 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
14814
14815         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
14816         __builtin_arm_setwcx ().
14817         * config/arm/arm.c (arm_expand_builtin): Generate operands
14818         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
14819
14820 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
14821
14822         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
14823         and "wmuluh" to "wmulsm" and "wmulum", respectively.
14824         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
14825         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
14826         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
14827         (_mm_mulhi_pu16): Likewise.
14828
14829 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
14830
14831         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
14832         DECL_NAME != 0 before dereferencing.
14833
14834 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
14835
14836         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
14837         (s390_output_addr_const_extra): Declare.
14838         (s390_output_pool_entry): Remove FILE * argument.
14839         * config/s390/s390.c (s390_output_symbolic_const): Remove.
14840         (s390_output_addr_const_extra): New function.
14841         (print_operand_address): Call output_addr_const instead of
14842         s390_output_symbolic_const.
14843         (print_operand): Likewise.
14844         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
14845         Remove FILE * argument.
14846         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
14847         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
14848         call.
14849
14850 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14851
14852         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
14853         (struct edge, struct vertex, struct graph): New.
14854         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
14855         free_graph): New functions.
14856
14857 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
14858
14859         * config/mips/mips.md (casesi_internal, casesi_internal_di):
14860         Use ".set macro" to avoid warnings about multi-instruction
14861         macros, since they're intentional.
14862
14863 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
14864
14865         * config/darwin.h: Add include guards.  Remove old, now incorrect,
14866         comment about STANDARD_EXEC_PREFIX.
14867
14868         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
14869         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
14870         for installing .1 manpages.  Add rules for installing cpp
14871         and gcov manpages under their installed names.
14872
14873 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
14874
14875         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
14876         host, but try LD_FOR_TARGET first.
14877         * configure: Rebuilt.
14878
14879 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
14880
14881         * dbxout.c: Move declaration of dbxout_type_decl outside
14882         #ifdef DBX_DEBUGGING_INFO.
14883         * c-parse.in: Don't give the asmdef production a type.
14884
14885 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
14886
14887         * debug.h (struct gcc_debug_hooks): Add type_decl field.
14888         (debug_nothing_tree_int): Prototype.
14889         (dwarf_debug_hooks): Delete, unused.
14890         * debug.c (do_nothing_debug_hooks): Update.
14891         (debug_nothing_tree_int): New function.
14892         * langhooks.h (struct lang_hooks_for_decls):
14893         Remove builtin_type_decls field.
14894         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
14895         (LANG_HOOKS_DECLS): Update.
14896         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
14897         Use debug_hooks->type_decl.
14898         * dbxout.c (preinit_symbols): New static.
14899         (dbx_debug_hooks, xcoff_debug_hooks): Update.
14900         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
14901         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
14902         for symbols to output.
14903         (dbxout_type_decl): New function.
14904         (dbxout_symbol): If called before dbxout_init has run, queue
14905         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
14906         to TYPE_DECLs before emitting them.
14907         * xcoffout.c (assign_type_number): Delete.
14908         (xcoff_type_numbers): New static table.
14909         (xcoff_assign_fundamental_type_number): New function.
14910         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
14911         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
14912         * sdbout.c: Include varray.h.
14913         (deferred_global_decls): New static.
14914         (sdb_debug_hooks): Update.
14915         (sdbout_global_decl): If we can't emit something right now,
14916         remember it in deferred_global_decls.
14917         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
14918         (sdbout_init): Initialize deferred_global_decls.
14919         * Makefile.in: Update dependencies of sdbout.o.
14920         * dwarf2out.c (dwarf2out_type_decl): New function.
14921         (dwarf2_debug_hooks): Update.
14922         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
14923         * c-decl.c (getdecls): Just return 0.
14924         (check_for_loop_decls): Don't use getdecls.
14925         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
14926         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
14927
14928 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
14929
14930         * config/s390/s390.c (s390_sched_reorder2): Remove.
14931         (TARGET_SCHED_REORDER2): Do not redefine.
14932
14933 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
14934
14935         * c-parse.in (maybe_type_qual): Delete.
14936         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
14937         (asm_argument): New grammar rules.
14938         (extdef_1): Use asmdef.
14939         (maybeasm): Move down with other asm rules; use simple_asm_expr.
14940         (xexpr): Move up with other expression rules.
14941         (stmt): Use asm_stmt.
14942
14943         * c-typeck.c (build_asm_expr): New function - body mostly
14944         pulled from build_asm_stmt.
14945         (build_asm_stmt): Just handle tacking on the volatile qualifier.
14946         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
14947
14948 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
14949
14950         PR bootstrap/13617
14951         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
14952         (mips_declare_object): Make variadic.
14953         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
14954         mips_output_aligned_decl_common.
14955         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
14956         (mips_declare_object): Make variadic.
14957
14958 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14959
14960         * function.c (update_epilogue_consts): Teach about binary operations.
14961
14962         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
14963         previous MEM_VOLATILE in REF.
14964         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
14965         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
14966
14967 2004-02-12  Gunther Nikl  <gni@gecko.de>
14968
14969         * config.gcc: Restore support for m68k-openbsd.
14970
14971 2004-02-12  Jan Hubicka  <jh@suse.cz>
14972
14973         * tree-optimize.c (tree_rest_of_compilation): Do not release
14974         DECL_ARGUMENTS.
14975
14976 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
14977
14978         * doc/install.texi: Fix the spelling of "explicitly".
14979
14980 2004-02-11  Eric Christopher  <echristo@redhat.com>
14981
14982         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
14983         duplicate argument structure of cpp_interpret_string.
14984         * cpphash.h: Move prototype...
14985         * cpplib.h: Here.
14986         * cpplib.c: Fix calls to match new function signature.
14987
14988 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
14989
14990         PR c/456
14991         * cppexp.c (num_binary_op): Don't allow comma operators in #if
14992         constant expressions at all outside C99 mode if pedantic.
14993
14994 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
14995
14996         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
14997         (log10_optab, log2_optab): Define corresponding macros.
14998         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
14999         * genopinit.c (optabs): Implement log10_optab and log2_optab
15000         using log10?f2 and log2?f2 patterns.
15001         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
15002         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
15003         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
15004         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
15005
15006         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
15007         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
15008         log2, log2f and log2l built-ins as inline x87 intrinsics.
15009
15010 2004-02-11  Richard Henderson  <rth@redhat.com>
15011
15012         PR target/1532
15013         * flow.c (insn_dead_p): A clobber of a dead hard register is a
15014         dead insn after reload.
15015
15016 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
15017
15018         * tree.h (frame_base_decl): Add GTY marker.
15019         * var-tracking.c (frame_base_decl): Likewise.
15020
15021 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
15022
15023         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
15024         incorrect, hunk.
15025         (add_location_or_const_value_attribute): Use text_section_label,
15026         not TEXT_SECTION_NAME.
15027
15028 2004-02-11  Per Bothner  <per@bothner.com>
15029
15030         Represent column numbers using line-map's source_location.
15031         The "next available source_location" is now managed internally by
15032         line-maps.c rather than by clients.
15033         * line-map.h (struct line_map):  New field column_bits.
15034         <from_line>:  Rename field to start_location.
15035         (struct line_maps):  New fields highest_location and max_column_hint.
15036         (linemap_check_files_exited):  New declaration.
15037         (linemap_line_start):  New declaration.
15038         (linemap_add):  Remove from_line parameter; use highest_location field.
15039         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
15040         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
15041         (CURRENT_LINE_MAP):  Remove macro.
15042         (linemap_position_for_column):  New inline function.
15043         * line-map.c (linemap_init):  Clear new fields.
15044         (linemap_check_files_exited):  New function, extracted from ...
15045         (linemap_free):  Use linemap_check_files_exited.
15046         (linemap_add):  Remove from_line parameter.  Various updates.
15047         (linemap_line_start):  New function.
15048         (linemap_lookeup):  Update for new field names.
15049         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
15050         linemap_position_for_column may unpredictably change the current map,
15051         it is cleaner and simpler for us to not cache it in cpp_reader.
15052         (struct cpp_buffer):  New sysp field.
15053         Changed warned_cplusplus_comments and from_stage3 to bitfields.
15054         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
15055         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
15056         current map using linemap_lookup.
15057         (do_linemarker):  Also set buffer's sysp field.
15058         (destringize_and_run):  No longer need to decrement current line.
15059         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
15060         (search_path_head, open_file_failed):  Use buffer's sysp.
15061         (cpp_make_system_header):  Get current map using linemap_lookup.
15062         Also set buffer's sysp flag.
15063         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
15064         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
15065         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
15066         (struct cpp_reader):  ... and adding saved_line_base field.
15067         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
15068         Update accordingly.  Don't adjust line.
15069         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
15070         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
15071         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
15072         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
15073         * cpplex.c (_cpp_lex_direct):  Likewise.
15074         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
15075         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
15076         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
15077         Remove col field as it is now subsumed by src_loc.
15078         * cpperror.c:  Update various field, parameter, and macro names.
15079         (print_location):  If col==0, try SOURCE_COLUMN of line.
15080         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
15081         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
15082         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
15083         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
15084         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
15085         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
15086         (_cpp_lex_direct):  Use linemap_position_for_column.
15087         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
15088         parameter.  Instead get it from the line_table global.  Adjust callers.
15089         (print):  Remove map field.  Replace line field to src_line.
15090         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
15091         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
15092         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
15093         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
15094         * cpptrad.c (copy_comment):  Rename variable.
15095         * c-lex.c (map):  Remove static variable, for same reason we removed
15096         cpp_reader's map field.
15097         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
15098         to call linemap_lookup.
15099         (cb_line_change):  Token's line field replaced by src_loc.
15100         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
15101         Don't save new_map.
15102
15103         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
15104         source_location.
15105
15106 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
15107
15108         * config/rs6000/altivec.md (*movv4si_internal): At least one
15109         operand must be register_operand.
15110         (*movv8hi_internal1): Likewise.
15111         (*movv16qi_internal1): Likewise.
15112         (*movv4sf_internal1): Likewise.
15113
15114 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
15115
15116         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
15117         operand.
15118         (movv4hi_internal): Same.
15119         (movv2sf_internal): Same.
15120         (movv1di_internal): Same.
15121
15122 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
15123
15124         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
15125         TARGET_OLDABI consistently.
15126         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
15127         mips_va_arg,override_options,compute_frame_size,
15128         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
15129         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
15130         and TARGET_OLDABI consistently.
15131         * config/mips/mips.md (exception_receiver): Likewise.
15132         * config/mips/linux64.h: Likewise.
15133
15134 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
15135
15136         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
15137         Set AltiVec ABI and vrsave as default for ppc64 linux.
15138         (init_cumulative_args): Post error, if try to return
15139         value in AltiVec register without enable AltiVec.
15140         (function_arg_advance): Ditto for passing arguments.
15141
15142 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
15143
15144         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
15145         a label before updating its usage count.
15146
15147 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
15148
15149         * doc/install.texi: Remove extra cd.
15150
15151 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
15152
15153         * c-common.c (vector_size_helper): Remove; call
15154         reconstruct_complex_type() instead.
15155         * tree.c (reconstruct_complex_type): New function
15156         (formerly vector_size_helper() in c-common.c).
15157         (make_vector): Make externally visible.
15158         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
15159
15160 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
15161
15162         * config/h8300/h8300-protos.h: Add a prototype for
15163         h8300_regs_ok_for_stm.
15164         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
15165         * config/h8300/h8300.md (stm_h8300s_2_advanced,
15166         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
15167         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
15168         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
15169         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
15170         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
15171         ldm_h8300s_4_normal, ldm_h8300s_4): Use
15172         h8300_regs_ok_for_stm().
15173
15174 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
15175
15176         PR c/14088
15177         * real.c (real_from_string): Look for 'X' as well as 'x' in
15178         hexfloat strings.
15179
15180 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
15181
15182         * config/h8300/h8300.md: Remove an incorrect comment about
15183         peephole2.  Add comments.
15184
15185 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
15186
15187         PR/14058
15188         * emit-rtl.c (set_decl_incoming_rtl): New.
15189         * tree.h (set_decl_incoming_rtl): New.
15190         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
15191         DECL_INCOMING_RTL.
15192         * ada/misc.c (adjust_decl_rtl): Likewise.
15193
15194 2004-02-10  Per Bothner  <per@bothner.com>
15195
15196         * c-opts.c (c_common_post_options):   Don't emit working directory
15197         in cpp output if -P was specified.
15198
15199 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
15200
15201         PR c/14092
15202         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
15203         negate_expr back to the original type.
15204
15205 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
15206
15207         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
15208         bump retaddr here.
15209
15210 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
15211
15212         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
15213         gen_lowpart_SUBREG): Move under the file in which they
15214         are actually declared.
15215
15216 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
15217
15218         * doc/sourcebuild.texi: Add libada documentation.
15219
15220         * doc/install.texi: Update documentation on Ada build, now
15221         that the GNAT lib and tools are built automatically.
15222
15223 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
15224
15225         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
15226         && TARGET_IRIX.
15227
15228 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
15229
15230         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
15231         boundaries outside build_component_ref() call (a macro in ObjC++).
15232
15233 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
15234
15235         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
15236         (init_cumulative_args): Likewise.
15237         (a7_overlap_mentioned_p): Delete prototype.
15238         * config/xtensa/xtensa.c (struct machine_function): Replace
15239         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
15240         Add set_frame_ptr_insn field.
15241         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
15242         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
15243         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
15244         at the function entry and replace the operand with the pseudo.
15245         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
15246         argument and record this flag in CUMULATIVE_ARGS.
15247         (function_arg): Remove result_mode and special-case code to handle
15248         arguments in a7.  Instead, set need_a7_copy flag when there is an
15249         incoming argument in a7.
15250         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
15251         and use the value recorded in cfun->machine->set_frame_ptr_insn.
15252         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
15253         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
15254         special-case code.
15255         (a7_overlap_mentioned_p): Delete.
15256         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
15257         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
15258         arguments to init_cumulative_args and pass "incoming" flag instead.
15259         (BLOCK_REG_PADDING): Delete.
15260         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
15261         checks for reload_in_progress and reload_completed.  Update calls to
15262         xtensa_copy_incoming_a7.
15263         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
15264         to call xtensa_copy_incoming_a7.
15265
15266 2004-02-09  DJ Delorie  <dj@redhat.com>
15267
15268         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
15269         longer modify standard_exec_prefix, standard_bindir_prefix, or
15270         standard_startfile_prefix.
15271
15272 2004-02-09  James E Wilson  <wilson@specifixinc.com>
15273
15274         PR c++/11295
15275         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
15276         to expand_expr_real call, and pass in alt_rtl as last argument.
15277
15278         PR libstdc++/5625
15279         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
15280         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
15281         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
15282         * except.c (expand_builtin_extend_pointer): New.
15283         * except.h (expand_builtin_extend_pointer): Declare.
15284
15285 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
15286
15287         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
15288         unaligned loads and stores.
15289
15290 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15291
15292         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
15293         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
15294
15295         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
15296         * config/mips/iris5.h: ... here.
15297         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
15298
15299         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
15300         * config/mips/iris5.h: ... here.
15301
15302 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15303
15304         * configure.ac: Remove default executable files before AC_PROG_CC.
15305         * configure: Regenerate.
15306
15307 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
15308
15309         PR target/13721
15310         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
15311         print a operand other than a register.
15312
15313 2004-02-09  Roger Sayle  <roger@eyesopen.com>
15314
15315         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
15316         tree code rather than call fold_convert, which doesn't specify a
15317         default floating point to integer conversion.
15318
15319 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
15320
15321         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
15322         code to support SGS assembler.  Reformat adjacent code where possible.
15323         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
15324         definition.
15325         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
15326         for '%#'.
15327         * config/m68k/linux.h, config/m68k/m68k.c,
15328         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
15329         macros and asm_printf() format strings.
15330         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
15331         * config/m68k/linux.h: Update copyright.
15332         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
15333
15334 2004-02-08  Andreas Schwab  <schwab@suse.de>
15335             Bernardo Innocenti  <bernie@develer.com>
15336
15337         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
15338         REGISTER_PREFIX.
15339         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
15340         frame pointer register, overridable by OS targets.
15341         * (M68K_REGNAME): Macro to obtain register name for asm output,
15342         eventually replacing %a6 with M68K_FP_REG_NAME.
15343         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
15344         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
15345         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
15346         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
15347         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
15348
15349 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
15350
15351         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
15352         hook_rtx_tree_int_null.
15353         * targhooks.c (default_struct_value_rtx): Remove.
15354         * targhooks.h: Remove the prototype for
15355         default_struct_value_rtx.
15356         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
15357         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
15358         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
15359         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
15360         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
15361         config/rs6000/rs6000.c, config/s390/s390.c,
15362         config/stormy16/stormy16.c, config/v850/v850.c,
15363         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
15364         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
15365
15366 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
15367
15368         * README.Portability: Change "ISO C89" to "ISO C90".
15369         * c-parse.in (primary, initelt): Likewise.
15370
15371 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
15372
15373         * real.c (encode_ibm_extended): Normalize the input value before
15374         converting it to a double.  Handle the case where a normal value
15375         rounds to infinity.
15376
15377 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
15378
15379         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
15380         warning.
15381         * cse.c (preferrable): Change to preferable. Update all of its
15382         callers.
15383         * genautomata.c (ainsn): Change
15384         first_ainsn_with_given_equialence_num to
15385         first_ainsn_with_given_equivalence_num.  Update all of its
15386         references.
15387
15388 2004-02-08  Jan Hubicka  <jh@suse.cz>
15389
15390         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
15391
15392 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
15393
15394         * function.c (assign_parms): Fix formatting.
15395
15396 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
15397
15398         * default.h (PROMOTE_PROTOTYPES): Remove.
15399         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
15400         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
15401         EXPAND_BUILTIN_SAVEREGS): Poison.
15402         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
15403         hook_bool_tree_false.
15404         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15405         * target.h: Replace SETUP_INCOMING_VARARGS with
15406         targetm.calls.setup_incoming_varargs().
15407         * targhooks.c (default_promote_function_return): Remove.
15408         (default_promote_prototypes): Likewise.
15409         (default_struct_value_rtx): Always abort().
15410         (default_expand_builtin_saveregs): Always print an error
15411         message.
15412         (default_setup_incoming_varargs): Do nothing.
15413         (default_pretend_outgoing_varargs_named): Don't depend on
15414         SETUP_INCOMING_VARARGS.
15415         * targhooks.h: Remove the prototype for
15416         default_promote_function_return and
15417         default_promote_prototypes.
15418
15419 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
15420
15421         * system.h (SHARED_SECTION_ASM_OP): Poison.
15422         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
15423         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
15424
15425 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
15426
15427         Bug 13856
15428         * c-decl.c (diagnose_mismatched_decls): Only give special
15429         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
15430         is also true.
15431         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
15432         DECL_FUNCTION_CODE when defining a built-in function.
15433         Don't update DECL_ESTIMATED_INSNS.
15434         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
15435         FUNCTION_DECLs.
15436         * tree.h: Delete DECL_ESTIMATED_INSNS.
15437         * tree-inline.c (struct inline_data): Delete inlined_insns field.
15438         (expand_call_inline, optimize_inline_calls): Don't update
15439         DECL_ESTIMATED_INSNS nor inlined_insns.
15440         * cgraphunit.c (cgraph_analyze_function): Don't update
15441         DECL_ESTIMATED_INSNS.
15442
15443 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
15444
15445         * c-common.c (shadow_warning): Delete.
15446         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
15447         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
15448         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
15449         * c-parse.in (free_parser_stacks): Delete.
15450
15451 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
15452
15453         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
15454         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
15455         Use the top level mkinstalldirs, not the one in the gcc subdir.
15456         * mkinstalldirs: Remove (from the gcc subdir).
15457
15458 2004-02-07  Roger Sayle  <roger@eyesopen.com>
15459
15460         PR middle-end/13696
15461         * fold-const.c (fold_convert): New function to provide type
15462         conversion to the middle-end without using convert.
15463         (negate_expr, associate_trees, size_diffop, omit_one_operand,
15464         operand_equal_for_comparison_p, pedantic_omit_one_operand,
15465         invert_truthvalue, optimize_bit_field_compare, range_binop,
15466         decode_field_reference, make_range, build_range_check, unextend,
15467         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
15468         fold_binary_op_with_conditional_arg, fold_inf_compare,
15469         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
15470         convert with calls to fold_convert.
15471
15472 2004-02-07  Jan Hubicka  <jh@suse.cz>
15473
15474         * genrecog.c (find_operand): add extra argument stop.
15475         (validate_pattern): Verify that mach_dup is duplicating operand
15476         defined lexically earlier.
15477
15478 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
15479
15480         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
15481         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
15482         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
15483         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
15484         config/ia64/ia64.h, config/ip2k/ip2k.h,
15485         config/iq2000/iq2000.h, config/mips/iris5.h,
15486         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
15487         config/rs6000/aix51.h, config/rs6000/aix52.h,
15488         config/rs6000/darwin.h, config/rs6000/rs6000.h,
15489         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
15490         config/sparc/linux.h, config/sparc/linux64.h,
15491         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
15492         config/xtensa/xtensa.h: Remove the definitions of
15493         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
15494         MAX_WCHAR_TYPE_SIZE.
15495         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
15496         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
15497
15498 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
15499
15500         PR bootstrap/13990
15501         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
15502         gen_rtx_NE.
15503
15504 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
15505
15506         * var-tracking.c (vt_add_function_parameters): Surround checkings by
15507         #ifdef ENABLE_CHECKING and #endif.
15508
15509 2004-02-07  Roger Sayle  <roger@eyesopen.com>
15510
15511         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
15512         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
15513         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
15514         integer types and floating point with unsafe_math_optimizations.
15515         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
15516         Optimize A - B as A + (-B), if B is easily negated.
15517
15518 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
15519
15520         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
15521         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
15522         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
15523         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
15524         Update copyright.
15525
15526 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
15527
15528         * c-ppoutput.c, var-tracking.c: Fix comment typos.
15529
15530 2004-02-06  James E Wilson  <wilson@specifixinc.com>
15531
15532         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
15533         glibc 2.3 or better.
15534
15535 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15536
15537         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
15538         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
15539
15540 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
15541
15542         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
15543         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
15544         (SHLIB_MKMAP_OPTS): Delete.
15545         (TARGET_LIBGCC2_CFLAGS): Add -specs.
15546         (bispecs): Add rule.
15547         * config/rs6000/libgcc-ppc64.ver: New file.
15548         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
15549         (__floatdidf, __floatdisf): Optimize multiply.
15550         (__fixunstfdi): New function.
15551         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
15552         real and imag parts larger than one register.
15553         (function_arg): Correct type of reg used when fp arg split partially
15554         to stack.
15555         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
15556         and __MACH__ or __powerpc64__.
15557
15558 2004-02-06  Roger Sayle  <roger@eyesopen.com>
15559             Ulrich Weigand  <uweigand@de.ibm.com>
15560
15561         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
15562         of gen_highpart or gen_lowpart when the floating point format is
15563         wider than the result mode.
15564
15565 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
15566
15567         * dwarf2out.c (loclabel_num): Move into #ifdef
15568         DWARF2_DEBUGGING_INFO.
15569
15570 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
15571
15572         * objc/objc-act.c (build_super_template) the 'class' field of
15573         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
15574         (get_super_receiver): Likewise.
15575
15576 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15577
15578         * reload1.c (check_eliminable_occurrences): Optimize the reset
15579         of can_eliminate.
15580         (eliminate_regs_in_insn): Likewise.
15581
15582 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
15583             Josef Zlomek  <zlomekj@suse.cz>
15584
15585         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
15586         at the beginning of function, call dwarf2out_var_location for
15587         NOTE_INSN_VAR_LOCATION note.
15588         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
15589         decl_loc_table): New.
15590         (lookup_decl_loc): New function.
15591         (add_var_loc_to_decl): New function.
15592         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
15593         only if can_use_fbreg.
15594         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
15595         functions.
15596         (loc_descriptor): Likewise. Process VAR_LOCATION.
15597         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
15598         (loc_descriptor_from_tree): Call mem_loc_descriptor with
15599         can_use_fbreg == true.
15600         (add_location_or_const_value_attribute): Added parameter enum
15601         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
15602         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
15603         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
15604         with attr == DW_AT_location.
15605         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
15606         if frame_base_decl is defined and has a location list.
15607         (gen_variable_die): Call add_location_or_const_value_attribute with
15608         attr == DW_AT_location.
15609         (dwarf2out_var_location): New function.
15610         (dwarf2out_begin_function): New function.
15611         (dwarf2out_init): Create decl_loc_table.
15612
15613 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
15614
15615         * loop.c (force_movables): Transitively increase the priorities of
15616         all insns forces by an insn, not just the first one.
15617
15618 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
15619             Daniel Berlin <dberlin@dberlin.org>
15620
15621         Josef Zlomek  <zlomekj@suse.cz>
15622         * Makefile.in (var-tracking.o): New.
15623         * common.opt (fvar-tracking): New.
15624         * flags.h (flag_var_tracking): New.
15625         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
15626         * opts.c (common_handle_option): Add OPT_fvar_tracking.
15627         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
15628         * rtl.c (note_insn_name): Likewise.
15629         * rtl.def (VAR_LOCATION): New.
15630         * rtl.h (NOTE_VAR_LOCATION): New.
15631         (NOTE_VAR_LOCATION_DECL): New.
15632         (NOTE_VAR_LOCATION_LOC): New.
15633         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
15634         (variable_tracking_main): New exported function.
15635         * timevar.def (TV_VAR_TRACKING): New.
15636         * toplev.c (enum dump_file_index): Added DFI_vartrack.
15637         (dump_file): "vartrack" was added (-dV).
15638         (flag_var_tracking): New.
15639         (f_options): "var-tracking" was added.
15640         (rest_of_handle_variable_tracking): New function.
15641         (rest_of_compilation): Run variable tracking.
15642         (process_options): If user has not specified flag_var_tracking set it
15643         according to optimize, debug_info_level and debug_hooks.
15644         * tree.h (frame_base_decl): New.
15645         * var-tracking.c: New file.
15646         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
15647         (ia64_override_options): Set flags to run variable tracking in machine
15648         dependent reorg instead of toplev.c.
15649         (ia64_reorg): Run variable tracking if wanted.
15650         * doc/invoke.texi: Mention variable tracking in -dV,
15651         add and -fvar-tracking.
15652         * doc/passes.texi: Added variable tracking pass.
15653
15654         Daniel Berlin <dberlin@dberlin.org>
15655         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
15656         * dbxout.c (dbx_debug_hooks): Likewise.
15657         (xcoff_debug): Likewise.
15658         * debug.c (do_nothing_debug_hooks): Likewise.
15659         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
15660         * dwarfout.c (dwarf_debug_hooks): Likewise.
15661         * sdbout.c (sdb_debug_hooks): Likewise.
15662         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
15663         * final.c (final_scan_insn): Call var_location debug hook for each
15664         NOTE_INSN_VAR_LOCATION.
15665
15666 2004-02-06  Jan Hubicka  <jh@suse.cz>
15667
15668         * flow.c (update_life_info): Allocate reg_deaths when called from
15669         scheudler.
15670         (attempt_auto_inc):  Update life ranges accordingly.
15671
15672 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
15673
15674         PR debug/11816
15675         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
15676
15677 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
15678
15679         * cfganal.c (flow_call_edges_add): Never split a libcall block.
15680
15681 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
15682
15683         * dwarf2out.c (output_loc_list): Don't use deltas if we have
15684         a separate line info table in use.
15685         Use the correct size for terminators.
15686         (output_die): Use offset, not delta.
15687
15688 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
15689
15690         * doc/invoke.texi: Remove the pni option from -mfpmath=.
15691
15692 2004-02-06  Jan Hubicka  <jh@suse.cz>
15693
15694         * recog.c (split_all_insns): Do not update reg info.
15695         * regrename.c (regrename_optimize): Likewise.
15696         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
15697         * flow.c (struct propagate_block_info): Add insn_num field.
15698         (reg_deaths): New array.
15699         (life_analysis): Free reg_deaths info.
15700         (allocate_reg_life_data): Allocate reg_deaths array.
15701         (propagate_one_insn): Use new array.
15702         (init_propagate_block): Initialize it.
15703         (free_propagate_block_info): Finish compuation of
15704         REG_LIVE_LENGTH
15705         (attempt_auto_inc): Sanity check that REG_INFO is not
15706         computed at same time.
15707         (mark_used_regs): Update new array.
15708
15709         * reg-stack.c (subst_stack_regs): Unshare clobbers before
15710         substitution.
15711
15712 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15713
15714         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
15715         *extendqisi2_short_displ.
15716
15717 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
15718
15719         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
15720         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
15721         (emit_library_call_value_1): Likewise pass nargs.
15722         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
15723         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
15724         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
15725         parameter instead of scanning TYPE_ARGS_TYPES to count args.
15726         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
15727         prototype.
15728         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
15729         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
15730         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
15731         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
15732         INIT_CUMULATIVE_ARGS.
15733         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
15734         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
15735         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
15736         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
15737         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
15738         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
15739         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
15740         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
15741         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
15742         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
15743         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
15744         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
15745
15746 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15747
15748         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
15749         possible.
15750
15751 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15752
15753         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
15754         note containing (plus (reg) (const_int)), where reg is an
15755         eliminable reg, then perform the register elimination without
15756         depending on eliminate_regs().
15757
15758 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15759
15760         * config/arc/arc.c (arc_return_in_memory): Check the return
15761         value of int_size_in_bytes against -1.  Don't check
15762         TREE_ADDRESSABLE.
15763         * config/avr/avr.c (avr_return_in_memory): Check the return
15764         value of int_size_in_bytes against -1.
15765         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
15766         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
15767         Likewise.
15768         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
15769         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
15770         Likewise.
15771
15772 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15773
15774         * config/frv/frv-protos.h: Remove the prototype for
15775         frv_setup_incoming_varargs.
15776         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
15777         (frv_setup_incoming_varargs): Make it static.
15778         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
15779
15780 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15781
15782         * config/fr30/fr30-protos.h: Remove the prototype for
15783         fr30_setup_incoming_varargs.
15784         Update the prototypes for fr30_num_arg_regs and
15785         fr30_function_arg_partial_nregs.
15786         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
15787         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15788         (fr30_setup_incoming_varargs): Make it static.
15789         Add argument second_time.  Don't do anything when second_time
15790         is nonzero.
15791         (fr30_num_arg_regs): Change the type of the first argument to
15792         enum machine_mode.
15793         (fr30_function_arg_partial_nregs): Change the type of the
15794         second argument to enum machine_mode.
15795         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
15796         (SETUP_INCOMING_VARARGS): Remove.
15797
15798 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
15799
15800         * config/arc/arc-protos.h: Remove the prototype for
15801         arc_setup_incoming_varargs.
15802         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15803         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15804         (arc_setup_incoming_varargs): Make it static.
15805         (arc_external_libcall): Likewise.
15806         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
15807         Remove the commented-out definition of
15808         ASM_OUTPUT_EXTERNAL_LIBCALL.
15809
15810 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
15811
15812         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
15813         to $$(slibdir) in the installation commands.
15814
15815 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
15816
15817         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
15818         with inner_regno, not regno.
15819         * rtlanal.c (refers_to_regno_p): Same.
15820
15821 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
15822
15823         * config.gcc: Remove i370 support.
15824
15825 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
15826
15827         * doc/install.texi:  Update automake and autoconf version
15828         requirements.  Note where to find gcj automake version.
15829
15830 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
15831
15832         * Makefile.in (generate-manpages): Move dependencies to ...
15833         (man): here.
15834         * doc/makefile.texi: Document new targets.
15835         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
15836
15837 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
15838
15839         PR/13485
15840         Makefile.in (srcextra):  Add a level of indirection to ...
15841         (gcc.srcextra): ... here.
15842         (po-generated): Delete.
15843         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
15844         options.c.
15845         (start.encap): Remove superfluous lang.srcextra dependency.
15846         objc/Make-lang.in (po-generated):  Delete.
15847
15848 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
15849
15850         * config/ia64/ia64.c (REG_GP): Remove.
15851
15852 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15853
15854         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
15855
15856 2004-02-05  Devang Patel  <dpatel@apple.com>
15857
15858         * dwarf2out.c (force_type_die): Look up input type itself
15859         instead of root_type() of type.
15860
15861 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
15862
15863         * config/s390/s390.md ("*tmqidi_ext"): New insn.
15864         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
15865         pre-reload splitters are transformed to post-reload
15866         define_insn_and_split patterns.
15867         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
15868
15869 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
15870
15871         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
15872         TARGET_PROMOTE_PROTOTYPES.
15873
15874 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15875
15876         PR middle-end/13750
15877         Revert:
15878         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
15879         PR pch/13361
15880         * c-typeck.c (constructor_asmspec): Delete.
15881         (struct initializer_stack): Delete field 'asmspec'.
15882         (start_init): Delete saving of asmspec.
15883         (finish_init): Don't update constructor_asmspec.
15884         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
15885         * stmt.c (expand_asm): Duplicate strings from tree.
15886         (expand_asm_operands): Likewise.
15887         * tree.c (tree_size): Update computation of size of STRING_CST.
15888         (make_node): Don't make STRING_CST nodes.
15889         (build_string): Allocate string with tree node.
15890         * tree.def (STRING_CST): Update comment.
15891         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
15892         (tree_string): Place contents of string in tree node.
15893         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
15894         from tree.
15895
15896 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
15897
15898         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
15899         msgid.
15900
15901 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
15902
15903         * config/rs6000/altivec.md (*movv4si_internal): At least one
15904         operand must be altivec_register_operand.
15905         (*movv8hi_internal1): Likewise.
15906         (*movv16qi_internal1): Likewise.
15907         (*movv4sf_internal1): Likewise.
15908
15909 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
15910
15911         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
15912         * configure: Regenerate.
15913
15914 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
15915
15916         * doc/install.texi: Update description of --gxx-include-dir to
15917         give correct default value.
15918
15919 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
15920
15921         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
15922         8 with MAC_REG.
15923
15924 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
15925
15926         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
15927         gen_rtx_PARALLEL.
15928
15929 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
15930
15931         * emit-rtl.c: Update the comment about the file.
15932
15933 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
15934
15935         * sourcebuild.texi (Test Idioms): Update testcase naming
15936         conventions.
15937
15938 2004-02-04  Per Bothner  <per@bothner.com>
15939
15940         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
15941         * c-ppoutput.c (pp_dir_change):  New function.
15942         * c-common.h (pp_dir_change):  New declaration.
15943         * cpplib.h (struct cpp_options):  Remove working_directory field.
15944         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
15945         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
15946         Don't handle -fworking_directory here, but in c_common_post_options.
15947         (read_original_directory): Don't back up when done.
15948         Don't clear no-longer used working_directory flag.
15949         * cpplib.h:  Update declarations to match.
15950         * c-lex.c (cb_dir_change):  Move to c-opts.c.
15951         (init_c_lex):  Don't set dir_change callback here, since we want
15952         to set it even if flag_preprocess_only.
15953         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
15954         (c_common_post_options):  Set dir_change callback.
15955         Call pp_dir_change if approporiate.
15956         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
15957         unneeded parameter and result. Do LC_RENAME for <built-in>.
15958         (c_common_post_options):  Call cpp_read_main_file here instead.
15959         (c_common_init):  Update accordingly.
15960         (push_command_line_include):  Don't cpp_push_main_file.
15961         Do LC_RENAME rather than LC_LEASE to get back to main file.
15962         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
15963         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
15964         files, but call finish_options for all files.
15965         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
15966         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
15967         cpp_find_main_file + cpp_push_main_file.
15968         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
15969         * opts.c (handle_options):  Only set main_input_filename first time.
15970
15971 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
15972
15973         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
15974
15975 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
15976
15977         * reload.c (find_equiv_reg): When checking for register overlap,
15978         don't index hard_regno_nregs with a pseudo-reg.
15979
15980 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
15981
15982         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
15983
15984 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
15985
15986         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
15987         against FIRST_PSEUDO_REGISTER.
15988
15989 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15990
15991         * Makefile.in: Move target, host overrides after per-language
15992         fragments.
15993
15994         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
15995         (GNATLIBCFLAGS): Remove -g.
15996
15997 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
15998
15999         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
16000         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
16001         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
16002         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
16003         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
16004         config/sparc/sparc.c, config/vax/vax.c: Revert the
16005         replacements of "FALLTHRU" with "Fall through" done in the
16006         previous patch.
16007
16008 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16009
16010         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
16011         config/arm/arm.c, config/arm/arm.md,
16012         config/cris/cris-protos.h, config/fr30/fr30.c,
16013         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
16014         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
16015         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
16016         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
16017         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
16018         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
16019         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
16020         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
16021         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
16022         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
16023         config/s390/s390.md, config/sparc/netbsd-elf.h,
16024         config/sparc/openbsd.h, config/sparc/sparc.c,
16025         config/xtensa/lib2funcs.S: Fix comment formatting.
16026
16027 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16028
16029         * config/alpha/alpha.c, config/arc/arc.c,
16030         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
16031         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
16032         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
16033         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
16034         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
16035         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
16036         config/iq2000/iq2000.c, config/m32r/m32r.c,
16037         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
16038         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
16039         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
16040         config/rs6000/rs6000.h, config/sparc/sparc.c,
16041         config/vax/vax.c: Fix comment typos.  Follow spelling
16042         conventions.
16043
16044 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16045
16046         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
16047         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
16048         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
16049         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
16050         config/arm/fpa.md, config/arm/iwmmxt.md,
16051         config/arm/netbsd-elf.h, config/arm/netbsd.h,
16052         config/m68hc11/m68hc11.md, config/mips/iris5.h,
16053         config/mn10300/mn10300.md, config/rs6000/altivec.md,
16054         config/sparc/netbsd-elf.h: Update copyright.
16055
16056 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
16057
16058         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
16059         for all modes whose size is greater than 8 bytes if ARCH32.
16060         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
16061         by reference if ARCH32.
16062
16063 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
16064
16065         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
16066
16067 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
16068
16069         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
16070         to before adddi3 insn patterns.
16071         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
16072         "reload_insi"): Move to before addsi3 insn patterns.
16073
16074 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
16075
16076         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
16077         parameter.  Use it instead of current_function_is_thunk.
16078         * function.h (struct function): Update documentation for is_thunk.
16079         * tree.h (CALL_FROM_THUNK_P): New macro.
16080         * config/alpha/alpha.c (alpha_sa_mask): Do not check
16081         no_new_pseudos when testing current_function_is_thunk.
16082         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
16083
16084 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16085
16086         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
16087         TARGET_SETUP_INCOMING_VARARGS.
16088
16089 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16090
16091         * emit-rtl.c (gen_rtx): Remove.
16092         * genattrtab.c: Don't mention gen_rtx in a comment.
16093         * rtl.h: Remove the prototype for gen_rtx.
16094         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
16095
16096 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16097
16098         * config/arc/arc.h, config/fr30/fr30.h
16099         (SETUP_INCOMING_VARARGS): Remove the target-independent
16100         comments.
16101         * doc/tm.texi: Don't mention deprecated target macros.
16102
16103 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16104
16105         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
16106         target-independent comment.
16107
16108 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16109
16110         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
16111         mention deprecated target macros.
16112
16113 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
16114
16115         * config.gcc: Remove obsolete ports and configurations.
16116         * config/linux-aout.h, config/netware.h,
16117         config/t-linux-gnulibc1, config/d30v/abi,
16118         config/d30v/d30v-protos.h, config/d30v/d30v.c,
16119         config/d30v/d30v.h, config/d30v/d30v.md,
16120         config/d30v/libgcc1.asm, config/d30v/t-d30v,
16121         config/dsp16xx/dsp16xx-modes.def,
16122         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
16123         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
16124         config/i370/README, config/i370/i370-c.c,
16125         config/i370/i370-protos.h, config/i370/i370.c,
16126         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
16127         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
16128         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
16129         config/i386/moss.h, config/i386/netware.h,
16130         config/i386/svr3.ifile, config/i386/svr3dbx.h,
16131         config/i386/svr3gas.h, config/i386/svr3z.ifile,
16132         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
16133         config/i960/i960-c.c, config/i960/i960-coff.h,
16134         config/i960/i960-modes.def, config/i960/i960-protos.h,
16135         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
16136         config/i960/rtems.h, config/i960/t-960bare,
16137         config/m68k/hp310.h, config/m68k/hp320.h,
16138         config/m68k/hp320base.h, config/m68k/m68kv4.h,
16139         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
16140         Remove.
16141         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
16142         doc/md.texi: Remove mentions of obsolete ports.
16143
16144 2004-02-04  Jan Hubicka  <jh@suse.cz>
16145
16146         * alias.c (find_base_term, get_addr):  Do not dereference NULL
16147         pointer when all VALUE's locations has been invalidated.
16148         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
16149
16150 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
16151
16152         * doc/invoke.texi (x86 options): Fix spelling/wording.
16153
16154 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
16155
16156         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
16157         put the original string in a comment.
16158         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
16159         * config/mips/mips.c (mips_output_ascii): Likewise.
16160         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
16161
16162 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
16163
16164         * system.h (GIV_SORT_CRITERION): Poison.
16165         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
16166         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
16167
16168 2004-02-03  Roger Sayle  <roger@eyesopen.com>
16169
16170         PR target/9348
16171         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
16172         multiplies with a multiplication of the wrong signedness, its the
16173         signedness of the multiplication that we've performed that needs to
16174         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
16175         if expand_mult_highpart_adjust places the result in target.
16176
16177 2004-02-03  Richard Henderson  <rth@redhat.com>
16178
16179         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
16180
16181 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
16182
16183         * config.gcc (sh[234]l): Use little endian fragments.
16184
16185 2004-02-03  Paul Koning  <pkoning@equallogic.com>
16186
16187         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
16188         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
16189         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
16190         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
16191         floating point format.
16192         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
16193         the above functions.
16194         (output_move_quad): Output float values in correct target format.
16195         (legitimate_const_double_p): New function.
16196         * config/pdp11/pdp11.h: Fix typos.
16197         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
16198         (TARGET_FLOAT_FORMAT): Ditto.
16199         (pdp11_f_format, pdp11_d_format): Add external declarations.
16200         (MAX_REGS_PER_ADDRESS): Corrected.
16201         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
16202         (PRINT_OPERAND): Output float literals in target format.
16203
16204 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
16205
16206         PR c++/13975
16207         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
16208         TI_PRIVATE.
16209         (access_public_node): Redefine.
16210         (access_protected_node): Likewise.
16211         (access_private_node): Likewise.
16212         * tree.c (build_common_tree_nodes): Create access_public_node,
16213         access_protected_node, and access_private_node.
16214
16215 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
16216
16217         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
16218         (MASK_INLINE_INT_DIV_THR): Ditto.
16219         (MASK_INLINE_SQRT_LAT): Ditto.
16220         (MASK_INLINE_SQRT_THR): Ditto.
16221         (MASK_DWARF2_ASM): Ditto.
16222         (MASK_EARLY_STOP_BITS): Ditto.
16223
16224 2004-02-02  Paul Brook  <paul@codesourcery.com>
16225
16226         Merge from csl-arm-branch.
16227
16228         2004-01-30  Paul Brook  <paul@codesourcery.com>
16229
16230         * aof.h (REGISTER_NAMES): Add vfp reg names
16231         (ADDITIONAL_REGISTER_NAMES): Ditto.
16232         * aout.h (REGISTER_NAMES): Ditto.
16233         (ADDITIONAL_REGISTER_NAMES): Ditto.
16234         * arm-protos.h: Update/Add Prototypes.
16235         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
16236         Only allow 0.0 for VFP.
16237         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
16238         (values_fp): Rename from values_fpa.  Update Users.
16239         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
16240         Update users.  Only check valid constants for this hardware.
16241         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
16242         Only allow consts for FPA.
16243         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
16244         Only allow consts for FPA.
16245         (use_return_insn): Check for saved VFP regs.
16246         (arm_legitimate_address_p): Handle VFP DFmode addressing.
16247         (arm_legitimize_address): Ditto.
16248         (arm_general_register_operand): New function.
16249         (vfp_mem_operand): New function.
16250         (vfp_compare_operand): New function.
16251         (vfp_secondary_reload_class): New function.
16252         (arm_float_compare_operand): New function.
16253         (vfp_print_multi): New function.
16254         (vfp_output_fstmx): New function.
16255         (vfp_emit_fstm): New function.
16256         (arm_output_epilogue): Output VPF reg restore code.
16257         (arm_expand_prologue): Output VFP reg save code.
16258         (arm_print_operand): Add 'P'.
16259         (arm_hard_regno_mode_ok): Return modes for VFP regs.
16260         (arm_regno_class): Return classes for VFP regs.
16261         (arm_compute_initial_elimination_offset): Include space for VFP regs.
16262         (arm_get_frame_size): Ditto.
16263         * arm.h (FIXED_REGISTERS): Add VFP regs.
16264         (CALL_USED_REGISTERS): Ditto.
16265         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
16266         (FIRST_VFP_REGNUM): Define.
16267         (LAST_VFP_REGNUM): Define.
16268         (IS_VFP_REGNUM): Define.
16269         (FIRST_PSEUDO_REGISTER): Include VFP regs.
16270         (HARD_REGNO_NREGS): Handle VFP regs.
16271         (REG_ALLOC_ORDER): Add VFP regs.
16272         (enum reg_class): Add VFP_REGS.
16273         (REG_CLASS_NAMES): Ditto.
16274         (REG_CLASS_CONTENTS): Ditto.
16275         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
16276         (REG_CLASS_FROM_LETTER): Add 'w'.
16277         (EXTRA_CONSTRAINT_ARM): Add 'U'.
16278         (EXTRA_MEMORY_CONSTRAINT): Define.
16279         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
16280         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
16281         (REGISTER_MOVE_COST): Ditto.
16282         (PREDICATE_CODES): Add arm_general_register_operand,
16283         arm_float_compare_operand and vfp_compare_operand.
16284         * arm.md (various): Rename as above.
16285         (divsf3): Enable when TARGET_VFP.
16286         (divdf3): Ditto.
16287         (movdfcc): Ditto.
16288         (sqrtsf2): Ditto.
16289         (sqrtdf2): Ditto.
16290         (arm_movdi): Disable when TARGET_VFP.
16291         (arm_movsi_insn): Ditto.
16292         (movsi): Only split with general regs.
16293         (cmpsf): Use arm_float_compare_operand.
16294         (push_fp_multi): Restrict to TARGET_FPA.
16295         (vfp.md): Include.
16296         * vfp.md: New file.
16297         * fpa.md (various): Rename as above.
16298         * doc/md.texi: Document ARM w and U constraints.
16299
16300         2004-01-15  Paul Brook  <paul@codesourcery.com>
16301
16302         * config.gcc: Add with_fpu.  Allow with-float=softfp.
16303         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
16304         Break out of loop when we find a float-abi.  Fix typo.
16305         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
16306         Set -mfloat-abi=.
16307         * doc/install.texi: Document --with-fpu.
16308
16309         2003-01-14  Paul Brook  <paul@codesourcery.com>
16310
16311         * config.gcc (with_arch): Add armv6.
16312         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
16313         * config/arm/arm.c (arm_overrride_options): Ditto.
16314
16315         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
16316
16317         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
16318         (FL_ARCH6): Renamed from FL_ARCH6J.
16319         (arm_arch3m): Renamed from arm_fast_multiply.
16320         (arm_arch6): Renamed from arm_arch6j.
16321         * arm.h: Update all uses of above.
16322         * arm-cores.def: Likewise.
16323         * arm.md: Likewise.
16324
16325         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
16326         not arm6j.  Add entry for arch armv6.
16327
16328         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
16329
16330         * arm.c (arm_emit_extendsi): Delete.
16331         * arm-protos.h (arm_emit_extendsi): Delete.
16332         * arm.md (zero_extendhisi2): Also handle zero-extension of
16333         non-subregs.
16334         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
16335         (thumb_zero_extendhisi2): Only match if not v6.
16336         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
16337         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
16338         (thumb_extendqisi2): Likewise.
16339         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
16340         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
16341         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
16342         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
16343         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
16344         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
16345         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
16346         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
16347         (arm_extendqisi2addsi): Likewise.
16348
16349         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
16350
16351         Revert this change:
16352         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
16353         + REG addressing modes.
16354
16355         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
16356         + REG addressing modes.
16357
16358         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
16359
16360         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
16361         CONSTANT_P_RTX.
16362
16363         2003-30-12  Paul Brook  <paul@codesourcery.com>
16364
16365         * longlong.h: protect arm inlines with !defined (__thumb__)
16366
16367         2003-30-12  Paul Brook  <paul@codesourcery.com>
16368
16369         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
16370
16371         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
16372
16373         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
16374         change.
16375
16376         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
16377
16378         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
16379         to the virtual incoming args pointer for downward stacks.
16380
16381         2003-12-29  Paul Brook  <paul@codesourcery.com>
16382
16383         * config/arm/arm-cores.def: Add cost function.
16384         * config/arm/arm.c (arm_*_rtx_costs): New functions.
16385         (arm_rtx_costs): Remove
16386         (struct processors): Add rtx_costs field.
16387         (all_cores, all_architectures): Ditto.
16388         (arm_override_options): Set targetm.rtx_costs.
16389         (thumb_rtx_costs): New function.
16390         (arm_rtx_costs_1): Remove cases handled elsewhere.
16391         * config/arm/arm.h (processor_type): Add COSTS parameter.
16392
16393         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
16394
16395         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
16396         (arm926ejs.md): Include it.
16397         * config/arm/arm926ejs.md: New pipeline description.
16398
16399         2003-12-24  Paul Brook  <paul@codesourcery.com>
16400
16401         * config/arm/arm.c (arm_arch6j): New variable.
16402         (arm_override_options): Set it.
16403         (arm_emit_extendsi): New function.
16404         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
16405         * config/arm/arm.h (arm_arch6j): Declare.
16406         * config/arm/arm.md: Add sign/zero extend insns.
16407
16408         2003-12-23  Paul Brook  <paul@codesourcery.com>
16409
16410         * config/arm/arm.c (all_architectures): Add armv6.
16411         * doc/invoke.texi: Document it.
16412
16413         2003-12-19  Paul Brook  <paul@codesourcery.com>
16414
16415         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
16416         insn patterns to match.
16417         * config/arm/arm-generic.md: Ditto.
16418         * config/arm/cirrus.md: Ditto.
16419         * config/arm/fpa.md: Ditto.
16420         * config/amm/iwmmxt.md: Ditto.
16421         * config/arm/arm1026ejs.md: Ditto.
16422         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
16423         for 11_loadb.
16424
16425         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
16426
16427         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
16428         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
16429         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
16430         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
16431         arm_no_early_mul_dep): Correctly deal with conditional execution,
16432         parallels and single shift operations.
16433         (arm_no_early_alu_shift_value_dep): Define.
16434         * arm.md (attr type): Replace 'normal' with 'alu',
16435         'alu_shift' and 'alu_shift_reg'.
16436         (attr core_cycles): Adjust.
16437         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
16438         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
16439         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
16440         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
16441         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
16442         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
16443         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
16444         attribute appropriately.
16445         * config/arm/arm1026ejs.md (alu_op): Adjust.
16446         (alu_shift_op, alu_shift_reg_op): New.
16447         * config/arm/arm1136.md: Add better bypasses for early
16448         registers. Remove load[234] and store[234] bypasses.
16449         (11_alu_op): Adjust.
16450         (11_alu_shift_op, 11_alu_shift_reg_op): New.
16451
16452         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
16453
16454         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
16455         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
16456         * config/arm/arm.c (arm_no_early_store_addr_dep,
16457         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
16458         * config/arm/arm1026ejs.md: Add load-store bypass.
16459         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
16460         Add bypasses between instructions.
16461
16462         2003-12-10  Paul Brook  <paul@codesourcery.com>
16463
16464         * config/arm/arm.c (arm_fpu_model): New variable.
16465         (arm_fload_abi): New variable.
16466         (target_fpe_name): Rename from target_fp_name.
16467         (target_fpu_name): New variable.
16468         (arm_is_cirrus): Remove.
16469         (fpu_desc): New struct.
16470         (all_fpus): Define.
16471         (pf_model_for_fpu): Define.
16472         (all_loat_abis): Define.
16473         (arm_override_options): Set fp arch flags based on -mfpu=
16474         and -float-abi=.
16475         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
16476         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
16477         (*): Use new TARGET_* flags.
16478         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
16479         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
16480         (TARGET_SOFT_FLOAT): Ditto.
16481         (TARGET_SOFT_FLOAT_ABI): New.
16482         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
16483         TARGET_HARD_FLOAT.
16484         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
16485         (TARGET_OPTIONS): Add -mfpu=.
16486         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
16487         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
16488         (arm_pf_model): Define.
16489         (arm_float_abi_type): Define.
16490         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
16491         * config/arm/arm.md: Use new TARGET_* flags.
16492         * config/arm/cirrus.md: Ditto.
16493         * config/arm/fpa.md: Ditto.
16494         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
16495         * config/arm/semi.h (ASM_SPEC): Ditto.
16496         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
16497         (FPUTYPE_DEFAULT): Set to VFP.
16498         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
16499
16500         2003-11-22  Phil Edwards  <phil@codesourcery.com>
16501
16502         PR target/12476
16503         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
16504         'bx' instead of 'b' to avoid branch range restrictions.  Output
16505         the thunk immediately before the thunked-to function.
16506         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
16507         .thumb_func if a thunk is being generated.  Emit .code 16 along
16508         with .thumb_func if a thunk is not being generated.
16509
16510         2003-11-15  Nicolas Pitre <nico@cam.org>
16511
16512         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
16513         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
16514         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
16515         (lshrdi3_iwmmxt): Renamed from lshrdi3.
16516         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
16517
16518         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
16519             Ian Lance Taylor  <ian@wasabisystems.com>
16520
16521         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
16522         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
16523
16524         2003-11-05  Phil Edwards  <phil@codesourcery.com>
16525
16526         * config/arm/arm.md (insn):  Add new V6 instruction names.
16527         (generic_sched):  New attr.
16528         * config/arm/arm-generic.md:  Use generic_sched here.
16529         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
16530         stages of pipeline.  Adjust latency counts accordingly.
16531         * config/arm/arm1136jfs.md:  New file.
16532
16533         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
16534
16535         * config/arm/arm.h (processor_type): New enumeration type.
16536         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
16537         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
16538         (CPP_CPU_ARCH_SPEC): Likewise.
16539         * config/arm/arm.c (arm_tune): New variable.
16540         (all_cores): Use cores.def.
16541         (all_architectures): Add representative processor.
16542         (arm_override_options): Restructure way in which tuning
16543         information is deduced.
16544         * arm.md: Update "insn" and "type" attributes throughout.
16545         (insn): New attribute.
16546         (type): Compute "mult" from "insn" attribute.  Add load2,
16547         load3, load4 alternatives.
16548         (arm automaton): Move to arm-generic.md.
16549         * config/arm/arm-cores.def: New file.
16550         * config/arm/arm-generic.md: Likewise.
16551         * config/arm/arm1026ejs.md: Likewise.
16552
16553 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
16554
16555         * doc/invoke.texi (SPARC options): Remove -mflat and
16556         all -mxxx (xxx:chip) options.
16557         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
16558         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
16559         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
16560         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
16561         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
16562         * config/sparc/sparc.c: Likewise.
16563         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
16564         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
16565         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
16566         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
16567         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
16568         (sparc_flat_must_save_register_p): Likewise.
16569         (sparc_flat_compute_frame_size): Likewise.
16570         (sparc_flat_save_restore): Likewise.
16571         (sparc_flat_function_prologue): Likewise.
16572         (sparc_flat_function_epilogue): Likewise.
16573         (sparc_flat_epilogue_delay_slots): Likewise.
16574         (sparc_flat_eligible_for_epilogue_delay): Likewise.
16575         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
16576         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
16577         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
16578         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
16579         (CONDITIONAL_REGISTER_USAGE): Likewise.
16580         (FRAME_POINTER_REQUIRED): Likewise.
16581         (INITIAL_ELIMINATION_OFFSET): Likewise.
16582         (BASE_RETURN_VALUE_REG): Likewise.
16583         (BASE_OUTGOING_VALUE_REG): Likewise.
16584         (BASE_PASSING_ARG_REG): Likewise.
16585         (BASE_INCOMING_ARG_REG): Likewise.
16586         (INCOMING_REGNO): Likewise.
16587         (OUTGOING_REGNO): Likewise.
16588         (LOCAL_REGNO): Likewise.
16589         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
16590         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
16591         (EPILOGUE_USES): Likewise.
16592         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
16593         ("flat" attribute): Delete.
16594         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
16595         handling.
16596         (call followed by jump define_peephole's): Delete.
16597         (exception_receiver): Likewise.
16598         (builtin_setjmp_receiver): Likewise.
16599         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
16600
16601 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
16602
16603         PR c/11658
16604         PR c/13994
16605         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
16606         on langhooks.h.
16607         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
16608         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
16609         Include langhooks.h.  Replace c_common_truthvalue_conversion
16610         with the truthvalue_conversion language hook throughout.
16611         (expr_no_commas): Call default_conversion before save_expr
16612         for the first term of the production 'x ? : y'.
16613         * c-common.c (c_common_truthvalue_conversion): Remove
16614         obsolete block.  Invoke recursively the hook instead
16615         of this function.
16616         * c-convert.c (convert): handle ERROR_MARK_NODE.
16617         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
16618         returned by the truthvalue_conversion language hook.
16619         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
16620         c_objc_common_truthvalue_conversion.
16621         * c-objc-common.c (c_objc_common_truthvalue_conversion):
16622         New function.
16623         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
16624         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
16625         c_objc_common_truthvalue_conversion.
16626
16627 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
16628
16629         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
16630         of gen_rtx.
16631         (LIBCALL_VALUE): Likewise.
16632         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
16633         gen_rtx_CC0 instead of gen_rtx.
16634         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
16635         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
16636         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
16637         gen_rtx.
16638         (m68hc11_emit_logical): Likewise.
16639
16640 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
16641
16642         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
16643         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
16644         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
16645         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
16646         config/mips/mips.md, config/mmix/mmix.c,
16647         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
16648         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
16649         config/rs6000/altivec.md, config/s390/s390.c,
16650         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
16651         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
16652         Use const0_rtx instead of GEN_INT (0).  Do the same for other
16653         constants that are readily available.
16654
16655 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
16656
16657         * doloop.c, optabs.c, regmove.c, sched-deps.c,
16658         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
16659         instead of GEN_INT (0).  Do the same for other constants that
16660         are readily available.
16661
16662 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
16663
16664         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
16665         gen_rtx.
16666         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
16667         instead of gen_rtx.
16668         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
16669         gen_rtx.
16670         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
16671         gen_rtx_ASHIFT instead of gen_rtx.
16672         (udivmodqi4): Likewise.
16673
16674 2004-02-02  Richard Henderson  <rth@redhat.com>
16675
16676         PR target/13789
16677         * expr.c (store_expr): Use force_operand before emit_move_insn.
16678
16679 2004-02-02  Jeff Law  <law@redhat.com>
16680             Roger Sayle  <roger@eyesopen.com>
16681
16682         * tree.c (commutative_tree_code, associative_tree_code): New
16683         functions.
16684         (iterative_hash_expr): Use commutative_tree_code.
16685         * tree.h (commutative_tree_code, associative_tree_code): Declare.
16686         * fold-const.c (operand_equal_p): Use commutative_tree_code
16687         rather than inlining the commutativity check.
16688         (fold): Likewise.
16689
16690 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
16691
16692         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
16693         * config/frv/frv-protos.h: Remove the prototype for
16694         frv_function_arg_keep_as_reference.
16695         * config/frv/frv.c (frv_function_arg_keep_as_reference):
16696         Remove.
16697         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
16698         * config/stormy16/stormy16.h: Remove the commented-out
16699         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
16700
16701 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
16702
16703         PR target/13914
16704         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
16705         for retaddr_column.
16706
16707 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
16708
16709         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
16710         gen_rtx.
16711
16712 2004-02-02  Eric Christopher  <echristo@redhat.com>
16713             Zack Weinberg  <zack@codesourcery.com>
16714
16715         * c-opts.c (c_common_handle_option): Add -finput-charset.
16716         * c.opt: Ditto.
16717         * cppcharset.c (one_iso88591_to_utf8): Remove.
16718         (convert_iso88591_utf8): Ditto.
16719         (conversion_tab): Remove 8859-1 converter.
16720         (_cpp_input_to_utf8): Remove.
16721         (_cpp_init_iconv_buffer): Ditto.
16722         (_cpp_close_iconv_buffer): Ditto.
16723         (_cpp_convert_input): New function.
16724         (_cpp_default_encoding): Ditto.
16725         * cpphash.h: Add/remove prototypes for above.
16726         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
16727         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
16728         for narrow execution and input character sets.
16729         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
16730         * doc/cppopts.texi: Document -finput-charset.
16731
16732 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
16733
16734         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
16735         against FIRST_PSEUDO_REGISTER.
16736
16737 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
16738
16739         * doc/invoke.texi (SPARC options): Further improve.
16740
16741 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
16742
16743         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
16744         config/h8300/h8300.c, config/ip2k/ip2k.md,
16745         config/iq2000/iq2000.c, config/mips/mips.c,
16746         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
16747         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
16748         config/v850/v850.md: Fix indentation.
16749
16750 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
16751
16752         * config/sparc/sparc.c (function_arg_slotno): Align TImode
16753         arguments on a 16-byte boundary in the parameter array if ARCH64.
16754         Split handling of TFmode.
16755
16756 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
16757
16758         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
16759         Don't test CONSTANT_P (x).
16760         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
16761         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
16762         Fix misindentation.
16763
16764 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
16765
16766         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
16767
16768 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
16769
16770         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
16771         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
16772         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
16773         config/iq2000/iq2000.c, config/m32r/m32r.c,
16774         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
16775         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
16776         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
16777         config/stormy16/stormy16.c, config/v850/v850.md,
16778         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
16779
16780 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
16781
16782         * config/mcore/mcore.c (block_move_sequence): Replace
16783         gen_rtx_CONST_INT with GEN_INT.
16784
16785 2004-02-02  Jan Hubicka  <jh@suse.cz>
16786
16787         * alias.c (record_set): Use hard_regno_nregs.
16788         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
16789         * builtins.c (apply_args_size): Likewise.
16790         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
16791         mark_set_regs, add_stored_regs, mark_referenced_regs,
16792         insert_restore, insert_save, insert_one_insn): Likewise.
16793         * cfgcleanup.c: Include regs.h
16794         (mark_effect, mentions_nonequal_regs): Likewise.
16795         * cfgrtl.c (mark_killed_regs): Likewise
16796         * combine.c (update_table_tick, record_value_for_reg,
16797         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
16798         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
16799         reg_bitfield_target_p, distribute_notes): Likewise.
16800         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
16801         exp_equiv_p, cse_insn): Likewise.
16802         * cselib.c (cselib_lookup): Likewise.
16803         (cselib_invalidate_regno, cselib_record_set): Likewise.
16804         * df.c (df_ref_record): Likewise.
16805         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
16806         Likewise.
16807         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
16808         count_or_remove_death_notes_bb): Likewise.
16809         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
16810         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
16811         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
16812         * integrate.c (mark_stores): Likewise.
16813         * jump.c (delete_prior_computation): Likewise.
16814         * lcm.c (reg_dies, reg_becomes_live): Likewise.
16815         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
16816         * loop.c (LOOP_REGNO_NREGS): Likewise.
16817         * postreload.c (reload_combine, reload_combine_note_store,
16818         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
16819         * ra-colorize.c (combine, color_usable_p, get_free_reg,
16820         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
16821         try_recolor_web, insert_coalesced_conflicts, check_colors,
16822         break_precolored_alias): Likewise.
16823         * ra-debug.c: Include regs.h
16824         (ra_print_rtx_object): Likewise.
16825         * ra-rewrite (choose_spill_colors): Likewise.
16826         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
16827         * ra.c (init_ra): Likewise.
16828         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
16829         peep2_find_free_register): Likewise.
16830         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
16831         * regclass.c (hard_regno_nregs): New array.
16832         (init_reg_modes_once): Initialize it.
16833         (choose_hard_reg_mode): Use it.
16834         (record_reg_classes): Likewise.
16835         * regmove.c (mark_flags_life_zones): Likewise.
16836         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
16837         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
16838         copy_value, maybe_mode_change, find_oldest_value_reg,
16839         copyprop_hardreg_forward_1):
16840         * regs.h (hard_regno_nregs): Declare.
16841         * realod.c (reload_inner_reg_of_subreg): Use it.
16842         (push_reload, combine_reloads, find_dummy_reload,
16843         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
16844         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
16845         reload_adjust_reg_for_mode): Likewise.
16846         * reload1.c (compute_use_by_pseudos, count_pseudo,
16847         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
16848         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
16849         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
16850         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
16851         delete_output_reload): Likewise.
16852         * resource.c (update_live_status, mark_referenced_resources,
16853         mark_set_resources, mark_target_live_regs): Likewise.
16854         * rtlanal.c:  Include regs.h
16855         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
16856         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
16857         subreg_regno_offset, subreg_offset_representable_p,
16858         hoist_test_store): Likewise.
16859         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
16860         * sched-rgn.c (check_live_1, update_live_1): Likewise.
16861         * stmt.c: Include regs.h
16862         (decl_conflicts_with_clobbers_p): Likewise.
16863         * varasm.c (make_decl_rtl): Likewise.
16864         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
16865
16866 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
16867
16868         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
16869         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
16870         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
16871         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
16872         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
16873         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
16874         config/iq2000/iq2000.h, config/m32r/m32r.c,
16875         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
16876         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
16877         config/mcore/mcore.c, config/mcore/mcore.h,
16878         config/mcore/mcore.md, config/mips/mips.c,
16879         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
16880         config/rs6000/rs6000.c, config/s390/s390.c,
16881         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
16882         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
16883         "gen_rtx (FOO, " with "gen_rtx_FOO (".
16884
16885 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
16886
16887         * config/h8300/h8300.md (two peephole2's): New.
16888
16889 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
16890
16891         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
16892         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
16893         (ASM_CPU_SPEC): Likewise
16894         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
16895         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
16896
16897 2004-02-01  Roger Sayle  <roger@eyesopen.com>
16898
16899         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
16900         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
16901         (expand_builtin): Always call expand_builtin_pow.
16902
16903 2004-02-01  Roger Sayle  <roger@eyesopen.com>
16904
16905         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
16906         BUILT_IN_SIGNBITL): New GCC builtins.
16907         * builtins.c (expand_builtin_signbit): New function to RTL expand
16908         calls to signbit, signbitf and signbitl as inline intrinsics.
16909         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
16910         (fold_builtin_signbit): New function to perform constant folding
16911         of signbit, signbitf and signbitl.
16912         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
16913
16914         * doc/extend.texi: Document new signbit{,f,l} builtins.
16915
16916 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
16917
16918         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
16919
16920 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
16921
16922         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
16923         "mips_const_double_ok" and "simple_memory_operand", which were
16924         removed from the MIPS port with the mips-3_4-rewrite branch merge.
16925         * config/mips/mips.c (mips16_lay_out_constants): Update comment
16926         for removal of simple_memory_operand.
16927
16928 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
16929
16930         * config/c4x/c4x.md: Use GEN_INT instead of
16931         gen_rtx (CONST_INT, ...).
16932
16933 2004-01-31  Richard Henderson  <rth@redhat.com>
16934
16935         * varasm.c (output_constant_pool): Don't zap the pool.
16936
16937 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
16938
16939         * genrecog.c (decision_type): Add DT_const_int.
16940         (write_cond) [DT_const_int]: Print a comparison against small
16941         constant.
16942         (write_node): Simplify comparisons against small constants
16943         before printing tests.
16944
16945 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
16946
16947         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
16948         instead of gen_rtx_CONST_INT.
16949
16950 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
16951
16952         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
16953         instead of gen_rtx_CONST_INT.
16954
16955 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
16956
16957         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
16958         hook_bool_CUMULATIVE_ARGS_false.
16959         * targhooks.c (default_strict_argument_naming): Rename to
16960         hook_bool_CUMULATIVE_ARGS_false.
16961         * targhooks.h: Update the prototype for
16962         default_strict_argument_naming.
16963
16964 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
16965
16966         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
16967         * config/sh/sh.h: Likewise.
16968         * config/sh/sh.md: Likewise.
16969
16970 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
16971
16972         * doc/invoke.texi (SPARC options): Restructure and update.
16973
16974 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
16975
16976         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
16977         STRICT_ARGUMENT_NAMING): Poison.
16978         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
16979         hook_bool_tree_false.
16980         * targhooks.c (default_promote_function_args): Remove.
16981         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
16982         Don't check incoming.
16983         (default_strict_argument_naming): Don't use
16984         STRICT_ARGUMENT_NAMING.
16985         * targhooks.h: Remove the prototype for
16986         default_promote_function_args.
16987
16988 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
16989
16990         * config/i386/i386-protos.h: Remove the prototype for
16991         ix86_setup_incoming_varargs.
16992         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
16993         (ix86_setup_incoming_varargs): Make it static.
16994         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
16995
16996 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
16997
16998         * alloc-pool.c: Fix comment typos.
16999         * builtin-types.def: Likewise.
17000         * builtins.def: Likewise.
17001         * c-pretty-print.c: Likewise.
17002         * df.h: Likewise.
17003         * reload1.c: Likewise.
17004
17005 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17006
17007         * doc/invoke.texi: Follow spelling conventions.
17008         * doc/tm.texi: Likewise.
17009
17010 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17011
17012         * doc/install.texi: Fix typos.
17013         * doc/invoke.texi: Likewise.
17014
17015 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
17016
17017         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
17018         registers as pointers.
17019         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
17020
17021 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
17022
17023         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
17024         and restore it to gen_lowpart_general on exit.
17025         (gen_lowpart_for_combine): Adjust all callers to go through
17026         gen_lowpart.
17027         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
17028         and restore it to gen_lowpart_general on exit.
17029         (gen_lowpart_if_possible): Adjust all callers to go through
17030         gen_lowpart.
17031         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
17032         (gen_lowpart): Declare as pointer to function, initialized to
17033         gen_lowpart_general.
17034         * rtl.h (gen_lowpart): Declare as pointer to function.
17035
17036 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17037
17038         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
17039         * calls.c: Likewise.
17040         * emit-rtl.c: Likewise.
17041         * function.c: Likewise.
17042         * reload1.c: Likewise.
17043         * config/i386/cygming.h: Likewise.
17044         * config/i386/i386.c: Likewise.
17045         * config/i386/winnt.c: Likewise.
17046
17047 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
17048
17049         PR bootstrap/9249
17050         * doc/install.texi: document --enable-__cxa_atexit option.
17051         * configure.ac: Disable __cxa_atexit if not supported.
17052         * configure: Regenerate.
17053
17054 2004-01-30  Daniel Berlin  <dberlin@dberlin.org>
17055
17056         * ggc-zone.c (ggc_free): New function.
17057
17058 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
17059
17060         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
17061         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
17062         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
17063         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
17064         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
17065         config/alpha/alpha.c, config/alpha/alpha.h,
17066         config/alpha/alpha.md, config/alpha/unicosmk.h,
17067         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
17068         config/c4x/c4x-protos.h, config/c4x/c4x.md,
17069         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
17070         config/frv/frvend.c, config/i386/cygming.h,
17071         config/i386/djgpp.h, config/i386/emmintrin.h,
17072         config/i386/gthr-win32.c, config/i386/i386-interix.h,
17073         config/i386/i386-protos.h, config/i386/openbsd.h,
17074         config/i386/winnt.c, config/i386/xm-mingw32.h,
17075         config/i386/xmmintrin.h, config/ia64/ia64.md,
17076         config/iq2000/iq2000.md, config/m32r/m32r.md,
17077         config/m68k/m68k.md, config/mcore/mcore-elf.h,
17078         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
17079         config/mips/iris5gas.h, config/mips/iris6.h,
17080         config/mips/iris6gas.h, config/mips/linux.h,
17081         config/mips/mips.md, config/mips/netbsd.h,
17082         config/mips/openbsd.h, config/mips/windiss.h,
17083         config/pa/fptr.c, config/rs6000/aix.h,
17084         config/rs6000/altivec.h, config/rs6000/darwin.h,
17085         config/rs6000/xcoff.h, config/s390/s390-protos.h,
17086         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
17087         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
17088         config/sparc/sol2.h: Update copyright.
17089
17090 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
17091
17092         * Makefile.in (abs_docdir, abs_srcdir): Define.
17093         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
17094
17095 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
17096
17097         * genconfig.c (main): Have CC0_P check its operand even on a
17098         target without cc0.
17099
17100 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
17101
17102         * config/alpha/alpha.c: Remove mentions of deprecates macros
17103         in comments, remove some target-independent comments about target
17104         macros, and/or add minimal function comments for target hook
17105         implementations.
17106         * config/avr/avr.c: Likewise.
17107         * config/ia64/ia64.h: Likewise.
17108         * config/ip2k/ip2k.c: Likewise.
17109         * config/iq2000/iq2000.c: Likewise.
17110         * config/m32r/m32r.h: Likewise.
17111         * config/m68hc11/m68hc11.c: Likewise.
17112         * config/mcore/mcore.c: Likewise.
17113         * config/mmix/mmix.c: Likewise.
17114         * config/mn10300/mn10300.c: Likewise.
17115         * config/pa/pa.c: Likewise.
17116         * config/pdp11/pdp11.c: Likewise.
17117         * config/rs6000/rs6000.h: Likewise.
17118         * config/sh/sh.c: Likewise.
17119         * config/sh/sh.h: Likewise.
17120         * config/sparc/sparc.c: Likewise.
17121         * config/sparc/sparc.h: Likewise.
17122         * config/stormy16/stormy16.c: Likewise.
17123         * config/xtensa/xtensa.c: Likewise.
17124
17125 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
17126
17127         PR optimization/12147
17128         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
17129         RELOAD_FOR_OPADDR_ADDR.
17130         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
17131         might be reused as RELOAD_FOR_OPADDR_ADDR register.
17132
17133 2004-01-30  Jan Hubicka  <jh@suse.cz>
17134
17135         * reload.c (get_secondary_mem): Fix updating of
17136         secondary_memlocs_elim_used.
17137
17138 2004-01-30  Richard Henderson  <rth@redhat.com>
17139
17140         * varasm.c (struct rtx_const, struct pool_constant): Remove.
17141         (MAX_RTX_HASH_TABLE): Remove.
17142         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
17143         (first_pool, last_pool, pool_offset): Remove.
17144         (struct rtx_constant_pool): Split out from ...
17145         (struct varasm_status): ... here.  Reference one via pointer.
17146         (struct constant_descriptor_rtx): Merge struct pool_constant.
17147         (SYMHASH): Remove.
17148         (decode_rtx_const): Remove.
17149         (const_hash_rtx, compare_constant_rtx): Remove.
17150         (record_constant_rtx): Remove.
17151         (const_desc_rtx_hash, const_desc_rtx_eq): New.
17152         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
17153         (const_rtx_hash_1, const_rtx_hash): New.
17154         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
17155         (simplify_subtraction): Use simplify_rtx.
17156         (force_const_mem): Rewrite to use new data structures.
17157         (find_pool_constant): Likewise.
17158         (get_pool_constant, get_pool_constant_mark,
17159         get_pool_constant_for_function, get_pool_mode,
17160         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
17161         (output_constant_pool_2): Split out from output_constant_pool.
17162         (output_constant_pool_1): Likewise.  Use new pool datastructures.
17163         (output_constant_pool): Zap entire pool datastructure.
17164         (mark_constant): Use new pool datastructures.
17165         (mark_constants): Use for_each_rtx.
17166         (mark_constant_pool): Use new pool datastructures.
17167
17168 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
17169
17170         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
17171         Copy operands[1] to pseudo for simplify_gen_subreg.
17172
17173 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
17174
17175         * gcse.c (bypass_block): Fix a typo in the previous check-in
17176         to the file.
17177
17178 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
17179
17180         * toplev.c: Include alloc-pool.h.
17181         * Makefile.in (toplev.c): Update dependencies.
17182
17183 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17184
17185         * combine.c (simplify_shift_const, case XOR): Be careful when
17186         commuting XOR with ASHIFTRT.
17187
17188 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
17189             Eric Botcazou  <ebotcazou@libertysurf.fr>
17190
17191         * config/sparc/sparc-protos.h: Remove the prototype for
17192         sparc_builtin_saveregs.
17193         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
17194         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17195         (TARGET_PROMOTE_PROTOTYPES): Likewise.
17196         (TARGET_STRUCT_VALUE_RTX): Likewise.
17197         (TARGET_RETURN_IN_MEMORY): Likewise.
17198         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
17199         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
17200         (sparc_builtin_saveregs): Make it static.
17201         (sparc_promote_prototypes): New.
17202         (sparc_struct_value_rtx): Likewise.
17203         (sparc_return_in_memory): Likewise.
17204         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
17205         (PROMOTE_FUNCTION_RETURN): Likewise.
17206         (RETURN_IN_MEMORY): Likewise.
17207         (STRUCT_VALUE): Likewise.
17208         (STRUCT_VALUE_INCOMING): Likewise.
17209         (EXPAND_BUILTIN_SAVEREGS): Likewise.
17210         (STRICT_ARGUMENT_NAMING): Likewise.
17211         (PROMOTE_PROTOTYPES): Likewise.
17212
17213         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
17214
17215 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
17216
17217         PR c/12818
17218         * varasm.c (const_hash_1) <STRING_CST>: Use the
17219         address to compute the hash value if flag_writable_strings.
17220         (compare_constant) <STRING_CST>: Compare the addresses
17221         if flag_writable_strings.
17222         (build_constant_desc): Do not copy the expression for a
17223         STRING_CST if flag_writable_strings.
17224
17225 2004-01-30  Jan Hubicka  <jh@suse.cz>
17226
17227         * alloc-pool.c: Include hashtab.h
17228         (alloc_pool_descriptor): New structure
17229         (alloc_pool_hash): New global variable.
17230         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
17231         (create_alloc_pool): Update statistics.
17232         (free_alloc_pool): Likewise.
17233         (pool_alloc): Likewise.
17234         (output_info): New structure
17235         (print_statistics, dump_alloc_pool_statistics): New function.
17236         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
17237         (dump_alloc_pool_statistics): Declare.
17238         * toplev.c (finalize):  Dump statistics.
17239
17240         * reload.c (secondary_memlocs_elim_used): New static variable.
17241         (get_secondary_mem): Update it.
17242         (find_reloads): Use it.
17243
17244 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
17245
17246         * toplev.c: Fix broken checkin of 2003-12-30, again.
17247
17248 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
17249
17250         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
17251         s390*-*-* targets by specifying a 'nop' insn.
17252         * configure: Regenerate.
17253
17254 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
17255
17256         PR target/11475
17257         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
17258
17259 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
17260
17261         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
17262         of addr when creating MEM copy.
17263
17264 2004-01-29  Devang Patel  <dpatel@apple.com>
17265
17266         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
17267
17268 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
17269
17270         PR inline-asm/6162
17271         * reload.c (find_reloads): Only support one pair of commutative
17272         operands.
17273
17274 2004-01-29  Roger Sayle  <roger@eyesopen.com>
17275
17276         PR java/13824
17277         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
17278         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
17279         recursion.
17280
17281 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
17282
17283         * config/frv/frv.c: Don't mention deprecated macros in
17284         comments.  Remove some target-independent comments about
17285         target macros.
17286         * config/frv/frv.h: Likewise.
17287
17288 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17289
17290         * cfghooks.c (split_block): Set probability and count of the
17291         new edge.
17292
17293 2004-01-29  Josef Zlomek  <zlomekj@suse.cz>
17294
17295         * dwarf2out.c (struct die_struct): Added field decl_id.
17296         (decl_die_table): Changed to hash table.
17297         (decl_die_table_allocated): Deleted.
17298         (decl_die_table_in_use): Deleted.
17299         (DECL_DIE_TABLE_INCREMENT): Deleted.
17300         (decl_die_table_hash): New function.
17301         (decl_die_table_eq): New function.
17302         (lookup_decl_die): Lookup in a hash table.
17303         (equate_decl_number_to_die): Insert into a hash table.
17304         (dwarf2out_init): Init hash table decl_die_table.
17305
17306 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
17307
17308         PR optimization/13424
17309         * expr.c (store_constructor): Revert 2003-12-03 change.
17310
17311         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
17312         expected before returning early.  Avoid sharing RTL if they
17313         need to be changed.
17314
17315         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
17316         handling so that memory attributes are preserved.  Don't call
17317         ix86_set_move_mem_attrs.
17318         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
17319         (ix86_expand_clrstr): Rename src argument to
17320         dst.  Rework rep_stos and strset handling so that memory attributes
17321         are preserved.
17322         (ix86_expand_strlen): Pass src argument to
17323         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
17324         memory attributes are preserved.
17325         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
17326         change_address instead of gen_rtx_MEM.
17327         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
17328         expanders.
17329         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
17330         strmovqi, strmovqi_rex64): Remove.
17331         (rep_mov*, strmov*): Prefix insn names with *.
17332         (strset, strset_singleop, rep_stos): New expanders.
17333         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
17334         strsetqi, strsetqi_rex64): Remove.
17335         (rep_stos*, strset*): Prefix insn names with *.
17336         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
17337         to SImode.
17338         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
17339         are preserved.
17340         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
17341         Prefix insn names with *.
17342         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
17343         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
17344         (strlenqi_1): New expander.
17345         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
17346
17347 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17348
17349         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
17350         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
17351         verify_flow_info): Declaration removed.
17352         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
17353         (debug_bb, debug_bb_n): Add argument to dump_bb call.
17354         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
17355         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
17356         instead of delete_block.
17357         * cfghooks.c: Include timevar.h and toplev.h.
17358         (cfg_hooks): Define here.
17359         (verify_flow_info, dump_bb): Moved from cfg.c.
17360         (redirect_edge_and_branch, redirect_edge_and_branch_force,
17361         split_block, split_block_after_labels, move_block_after,
17362         delete_basic_block, split_edge, create_basic_block,
17363         create_empty_bb, can_merge_blocks_p, merge_blocks,
17364         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
17365         New functions.
17366         * cfghooks.h (struct cfg_hooks): Added fields name,
17367         make_forwarder_block, tidy_fallthru_edge and
17368         move_block_after. Changed type of verify_flow_info, dump_bb,
17369         split_block fields. Renamed cfgh_split_edge and delete_block
17370         fields.
17371         (redirect_edge_and_branch, redirect_edge_and_branch_force,
17372         split_block, delete_block, split_edge, create_basic_block,
17373         can_merge_blocks_p, merge_blocks): Macros removed.
17374         (cfg_hooks): Do not export.
17375         (verify_flow_info, dump_bb, redirect_edge_and_branch,
17376         redirect_edge_and_branch_force, split_block, split_block_after_labels,
17377         move_block_after, delete_basic_block, split_edge, create_basic_block,
17378         create_empty_bb, can_merge_blocks_p, merge_blocks,
17379         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
17380         Declare.
17381         (cfg_layout_rtl_cfg_hooks): Declare.
17382         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
17383         New functions.
17384         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
17385         (redirect_edge_with_latch_update): Removed.
17386         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
17387         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
17388         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
17389         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
17390         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
17391         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
17392         cfghooks.c.
17393         (rtl_create_basic_block): Coding style fix.
17394         (rtl_tidy_fallthru_edge, rtl_move_block_after,
17395         rtl_make_forwarder_block): New functions.
17396         (update_cfg_after_block_merging): Removed.
17397         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
17398         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
17399         to dump_bb.
17400         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
17401         find_if_case_2): Don't update dominators.
17402         * timevar.def (TV_CFG_VERIFY): New.
17403         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
17404         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
17405         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
17406         (remove_bbs): Don't call remove_bbs.
17407         (create_preheader): Use make_forwarder_block.
17408         (mfb_keep_just, mfb_update_loops): New static functions.
17409
17410 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
17411
17412         * config/avr/avr.h: Remove target-independent comments about
17413         target macros.
17414
17415 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
17416
17417         * timevar.c (timevar_print): Mention when checking is enabled.
17418
17419 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
17420
17421         * c-lex.c (c_lex): Rename to...
17422         (c_lex_with_flags): Add new parameter to get CPP flags.
17423         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
17424         * c-pragma.h (c_lex_with_flags): Declare.
17425
17426 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17427
17428         * config/mcore/mcore.c (mcore_external_libcall): Add a
17429         comment.
17430         (mcore_return_in_memory): Likewise.
17431
17432 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17433
17434         * config/mcore/mcore-protos.h: Remove the prototype for
17435         mcore_setup_incoming_varargs.
17436         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
17437         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
17438         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17439         (TARGET_PROMOTE_PROTOTYPES): Likewise.
17440         (TARGET_STRUCT_VALUE_RTX): Likewise.
17441         (TARGET_RETURN_IN_MEMORY): Likewise.
17442         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
17443         (mcore_setup_incoming_varargs): Make it static.  Receive the
17444         first argument by reference.  Add argument second_time.
17445         (mcore_external_libcall): New.
17446         (mcore_return_in_memory): Likewise.
17447         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
17448         (PROMOTE_FUNCTION_RETURN): Likewise.
17449         (STRUCT_VALUE): Likewise.
17450         (RETURN_IN_MEMORY): Likewise.
17451         (SETUP_INCOMING_VARARGS): Likewise.
17452         (PROMOTE_PROTOTYPES): Likewise.
17453         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
17454
17455 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17456
17457         * config/m32r/m32r-protos.h: Remove the prototype for
17458         m32r_setup_incoming_varargs.
17459         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
17460         (TARGET_STRUCT_VALUE_RTX): Likewise.
17461         (TARGET_RETURN_IN_MEMORY): Likewise.
17462         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
17463         (m32r_return_in_memory): New.
17464         (m32r_setup_incoming_varargs): Make it static.
17465         * config/m32r/m32r.h: Remove #undef of
17466         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
17467         definitions of PROMOTE_FUNCTION_ARGS and
17468         PROMOTE_FUNCTION_RETURN.
17469         (PROMOTE_PROTOTYPES): Remove.
17470         (RETURN_IN_MEMORY): Likewise.
17471         (STRUCT_VALUE): Likewise.
17472
17473 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17474
17475         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
17476         (TARGET_STRUCT_VALUE_RTX): Likewise.
17477         (m68k_struct_value_rtx): Likewise.
17478         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
17479         STRUCT_VALUE_REGNUM.
17480         (PROMOTE_PROTOTYPES): Remove.
17481         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
17482         STRUCT_VALUE_REGNUM.
17483         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
17484         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
17485
17486 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17487
17488         * config/stormy16/stormy16.c
17489         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
17490         TARGET_BUILD_BUILTIN_VA_LIST.
17491
17492 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17493
17494         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
17495         (TARGET_STRUCT_VALUE_RTX): Likewise.
17496         (TARGET_RETURN_IN_MEMORY): Likewise.
17497         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
17498         (v850_return_in_memory): Likewise.
17499         (v850_setup_incoming_varargs): Likewise.
17500         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
17501         (SETUP_INCOMING_VARARGS): Likewise.
17502         (RETURN_IN_MEMORY): Likewise.
17503         (STRUCT_VALUE): Likewise.
17504
17505 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17506
17507         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
17508         (fr30_setup_incoming_varargs): Don't use
17509         STRICT_ARGUMENT_NAMING.
17510         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
17511         (STRICT_ARGUMENT_NAMING): Likewise.
17512
17513 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17514
17515         * config/frv/frv-protos.h: Remove the prototype for
17516         frv_expand_builtin_saveregs.
17517         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
17518         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
17519         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
17520         STRUCT_VALUE_REGNUM.
17521         (frv_expand_builtin_saveregs): Make it static.
17522         (frv_struct_value_rtx): New.
17523         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
17524
17525 2004-01-29  Jan Hubicka  <jh@suse.cz>
17526
17527         PR c++/12850
17528         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
17529         initial pointers.
17530         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
17531         for functions that will be only inlined.
17532         (cgraph_mark_function_to_output): Likewise.
17533         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
17534         do not clear function body.
17535         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
17536         (tree_rest_of_compilation): Reorganize the logic releasing function
17537         body to use callgraph datastructure.
17538
17539 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17540
17541         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
17542         to register_operand.
17543
17544 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
17545
17546         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
17547         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
17548         match_operand expressions so that all match_dups appear
17549         lexically after their corresponding match_operands.
17550
17551 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17552
17553         * config/h8300/h8300.c (WORD_REG_USED): Use
17554         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
17555         (compute_saved_regs): Likewise.
17556         (h8300_expand_prologue): Likewise.  Allocate locals after
17557         saving registers.
17558         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
17559         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
17560         registers.
17561         (h8300_initial_elimination_offset): Adjust for the new frame
17562         layout, which swaps flips the order of locals and saved
17563         registers.
17564         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
17565         (HARD_FRAME_POINTER_REGNUM): New.
17566         (ELIMINABLE_REGS): Add an elimination rule from
17567         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
17568         (REGISTER_NAMES): Add fp.
17569         * config/h8300/h8300.md (FP_REG): Change to 11.
17570         (HFP_REG): New.
17571
17572 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17573
17574         * genrecog.c (write_node): Remove a useless local variable.
17575
17576 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
17577
17578         * Makefile.in (options.c options.h): Use stamp file s-options to
17579         avoid unnecessary rebuilds.
17580         (options.o): New target listing dependencies.
17581         (gtyp-gen.h): Use stamp file s-gtyp-gen.
17582         (STAGESTUFF): Add s-gtyp-gen.
17583
17584 2004-01-28  Richard Henderson  <rth@redhat.com>
17585
17586         * ggc.h (ggc_free): Declare.
17587         * ggc-common.c (ggc_realloc): Use it.
17588         * ggc-page.c: Remove lots of inline markers.
17589         (globals): Add free_object_list.
17590         (ggc_alloc): Tidy.
17591         (ggc_free, validate_free_objects): New.
17592         (poison_pages): Provide default.
17593         (ggc_collect): Call validate_free_objects; emit markers to
17594         the debug file.
17595
17596 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
17597             Jim Wilson  <wilson@specifixinc.com>
17598
17599         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
17600         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
17601         scratch pointer.
17602         (ia64_secondary_reload_class): Delete case GR_REGS.
17603         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
17604         Do not allocate a scratch register.
17605         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
17606
17607 2004-01-28  Jan Hubicka  <jh@suse.cz>
17608
17609         * gcse.c (bypass_block): Prevent edges to be unified when we are
17610         about to emit compenstation code.
17611
17612 2004-01-28  Nick Clifton  <nickc@redhat.com>
17613
17614         * config/arm/arm.c (arm_expand_builtin): Force second argument of
17615         the setcwx insn into a register.
17616
17617 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
17618
17619         * config/fp-bit.c (pack_d): When using paired doubles to implement
17620         a long double, round the high part separately.
17621         (unpack_d): Fix the case in which the high part is a power of two
17622         and the low part is a nonzero value of the opposite sign.
17623
17624 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17625
17626         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
17627         (TARGET_STRUCT_VALUE_RTX): Likewise.
17628         (c4x_external_libcall): Likewise.
17629         (c4x_struct_value_rtx): Likewise.
17630         * config/c4x/c4x.h: Remove.
17631         (STRUCT_VALUE_REGNUM): Likewise.
17632         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
17633
17634 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17635
17636         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
17637         (TARGET_STRUCT_VALUE_RTX): Likewise.
17638         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
17639         (STRUCT_VALUE): Likewise.
17640         (PROMOTE_PROTOTYPES): Likewise.
17641
17642 2004-01-27  Roger Sayle  <roger@eyesopen.com>
17643
17644         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
17645         CONST_INT before using INTVAL.
17646
17647 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
17648
17649         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
17650         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
17651         frame if !TARGET_BACKCHAIN.
17652         * config/s390/s390.md ("allocate_stack"): Use pattern only if
17653         TARGET_BACKCHAIN.
17654         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
17655
17656 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
17657
17658         * ia64.c (ia64_function_arg): When placing HFAs in integer
17659         registers, do not special case the mode used for complex
17660         types.  Do not advance int_regs until the current register
17661         is full.
17662
17663 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
17664
17665         PR target/7297
17666         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
17667
17668 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
17669
17670         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
17671         slow, unaligned loads and stores while debugging.  Fix formatting.
17672
17673 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
17674
17675         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
17676         of computing wmode.
17677         (restore_stack_nonlocal): Same.
17678
17679 2004-01-27  Devang Patel <dpatel@apple.com>
17680
17681         * Makefile.in (dwarf2out.o): Depend on input.h
17682         * dbxout.c (dbx_debug_hooks): Add new empty hook for
17683         imported_module_or_decl.
17684         (xcoff_debug_hooks): Same.
17685         * sdbout.c (sdb_debug_hooks): Same.
17686         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
17687         * debug.c (do_nothing_debug_hooks): Same.
17688         (debug_nothing_tree_tree): New function.
17689         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
17690         * dwarf2out.c: Include input.h.
17691         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
17692         (remove_child_TAG): New function.
17693         (dwarf_tag_name): Handle DW_TAG_imported_module.
17694         (gen_subprogram_die): Equate decl number to declaration die. Do not
17695         remove all children dies while reusing declaration die for definition.
17696         Instead, selectively remove only formal parameters.
17697         (gen_variable_die): Equate variable decl to declaration die.
17698         (gen_field_die): Equate field decl to line number.
17699         (force_namespace_die): Replace it with ...
17700         (force_decl_die): ... this.
17701         (force_type_die): New function.
17702         (setup_namespace_context): Replace use of force_namespace_die() with
17703         force_decl_die().
17704         (gen_namespace_die): Same.
17705         (dwarf2out_imported_module_or_decl): New function.
17706
17707 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
17708
17709         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
17710         on CQImode and CHImode incoming arguments in register a7.
17711         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
17712         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
17713         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
17714         xtensa_copy_incoming_a7 before reload.
17715
17716 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
17717
17718         * coverage.c (get_coverage_counts): Give a different message
17719         if flag_guess_branch_prob is set.
17720         * predict.c (counts_to_freqs): Return an int.
17721         (estimate_bb_frequencies): If counts_to_freqs returns zero,
17722         calculate estimates.
17723
17724 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
17725
17726         * config/iq2000/iq2000-protos.h: Remove the prototype for
17727         iq2000_setup_incoming_varargs.
17728         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
17729         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17730         (TARGET_PROMOTE_PROTOTYPES): Likewise.
17731         (TARGET_STRUCT_VALUE_RTX): Likewise.
17732         (TARGET_RETURN_IN_MEMORY): Likewise.
17733         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
17734         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
17735         (iq2000_return_in_memory): Likewise.
17736         (iq2000_setup_incoming_varargs): Make it static.  Receive the
17737         first argument by reference.
17738         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
17739         (PROMOTE_FUNCTION_RETURN): Likewise.
17740         (PROMOTE_PROTOTYPES): Likewise.
17741         (RETURN_IN_MEMORY): Likewise.
17742         (STRUCT_VALUE): Likewise.
17743         (SETUP_INCOMING_VARARGS): Likewise.
17744         (STRICT_ARGUMENT_NAMING): Likewise.
17745
17746 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
17747
17748         * fixinc/fixinc.c (test_test): Initialize res.
17749         (start_flexer): Initialize pz_cmd_save.
17750
17751 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
17752
17753         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
17754         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
17755
17756 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
17757
17758         PR 7198
17759         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
17760         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
17761         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
17762         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
17763         Possibly rename pattern for consistency.
17764         Remove ??? comments suggesting that this be done.
17765         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
17766         New patterns.
17767         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
17768         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
17769         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
17770         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
17771         Update to match.
17772
17773 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
17774
17775         * config/arm/arm.c (output_return_instruction): Only restore IP
17776         into SP if frame_pointer_needed.
17777
17778 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
17779
17780         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
17781         for SCmode and DCmode if ARCH32.
17782         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
17783         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
17784         if ARCH32.
17785         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
17786         if ARCH32.
17787         (BASE_OUTGOING_VALUE_REG): Likewise.
17788
17789 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
17790
17791         PR target/10904
17792         PR target/13058
17793         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
17794         Forbid mode changes from SImode for lower FP regs if ARCH64.
17795
17796 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
17797
17798         * Makefile.in (bt-load.o): Depend on except.h.
17799         * bt-load.c (except.h): #include.
17800         (compute_defs_uses_and_gen): If insn at end of BB can throw
17801         within this function, consider registers used by it unavailable for
17802         btr migration.
17803         (move_btr_def): If insn at end of BB can throw, insert before rather
17804         than after.
17805
17806         * flags.h (flag_btr_bb_exclusive): Declare.
17807         * toplev.c (flag_btr_bb_exclusive): New variable.
17808         (f_options): Add btr-bb-exclusive.
17809         * bt-load.c (augment_live_range): Restore old behaviour if
17810         flag_btr_bb_exclusive is set.
17811         * common.opt: Add entry for -fbtr-bb-exclusive.
17812         * opts.c (common_handle_options): Same.
17813         * doc/invoke.texi: Document -fbtr-bb-exclusive.
17814
17815         * bt-load.c (btrs_live_at_end): New variable.
17816         (compute_defs_uses_and_gen): Compute its pointed-to array.
17817         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
17818         (augment_live_range): When augmenting with a new dominator,
17819         use only its btrs_live_at_end set, but also add in the full set
17820         of the old dominator.
17821         (btr_def_live_range): Use btrs_live_at_end.
17822         (move_btr_def): Set other_btr_uses_before_def, and move new set
17823         to the end of the basic block, if appropriate.
17824         (migrate_btr_defs): Allocate and free btrs_live_at_end.
17825
17826         * bt-load.c (basic_block_freq): Remove outdated comment.
17827
17828 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
17829
17830         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
17831         (PREDICATE_CODES): Remove duplicate.
17832         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
17833         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
17834         (MASK_PROFILE_KERNEL): Adjust define.
17835
17836 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
17837
17838         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
17839         of long string literals from 32 bytes to sizeof (void *) when !-Os
17840         and to 1 with -Os.
17841
17842 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17843
17844         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
17845         constant addresses in the normal mode.
17846
17847 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17848
17849         * system.h (CHAR_BITFIELD): Delete.
17850         (BOOL_BITFIELD): New.
17851         * c-decl.c (c_scope): Use BOOL_BITFIELD.
17852         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
17853
17854 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17855
17856         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
17857         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17858         (TARGET_PROMOTE_PROTOTYPES): Likewise.
17859         (TARGET_STRUCT_VALUE_RTX): Likewise.
17860         (TARGET_RETURN_IN_MEMORY): Likewise.
17861         (arc_return_in_memory): Likewise.
17862         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
17863         (PROMOTE_FUNCTION_RETURN): Likewise.
17864         (RETURN_IN_MEMORY): Likewise.
17865         (STRUCT_VALUE): Likewise.
17866
17867 2004-01-26  Richard Henderson  <rth@redhat.com>
17868
17869         * c-parse.in (extension): Use itype.
17870         (SAVE_EXT_FLAGS): Don't allocate a tree.
17871         (RESTORE_EXT_FLAGS): Don't read a tree.
17872
17873 2004-01-26  Jan Hubicka  <jh@suse.cz>
17874
17875         * cselib.c (discard_useless_values):  Clear out value pointer pointing
17876         to datastructure to be recycled.
17877
17878 2004-01-25  Jan Hubicka  <jh@suse.cz>
17879
17880         * genextract.c (main): Do not output the memset when not checking.
17881
17882 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17883
17884         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
17885         switch statement instead of a chain of if statements.
17886
17887 2004-01-26  Jeff Law  <law@redhat.com>
17888
17889         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
17890         acute accents for Petur Runolfsson's entry.
17891
17892 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17893
17894         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
17895         (TARGET_RETURN_IN_MEMORY): Likewise.
17896         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
17897         (RETURN_IN_MEMORY): Likewise.
17898
17899 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
17900
17901          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
17902          unaligned load/store into smaller loads and stores.
17903
17904 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
17905
17906         * function.c (assign_parms): Do not assign
17907         long long argument to memory in prologue if
17908         is it loaded into register.
17909
17910 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
17911
17912          PR middle-end/13779
17913          * expr.c (emit_group_load): split constant
17914          correctly into register components of PARALLEL insn.
17915
17916 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
17917
17918         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
17919         Use adjust_address_nv directly with appropriate mode.
17920         (restore_stack_nonlocal): Ditto.
17921
17922 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17923
17924         * config/xtensa/xtensa-protos.h: Remove the prototype for
17925         xtensa_builtin_saveregs.
17926         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
17927         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
17928         (TARGET_PROMOTE_PROTOTYPES): Likewise.
17929         (TARGET_STRUCT_VALUE_RTX): Likewise.
17930         (TARGET_RETURN_IN_MEMORY): Likewise.
17931         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
17932         (xtensa_builtin_saveregs): Make it static.
17933         (xtensa_return_in_memory): New.
17934         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
17935         (PROMOTE_FUNCTION_RETURN): Likewise.
17936         (PROMOTE_PROTOTYPES): Likewise.
17937         (STRUCT_VALUE): Likewise.
17938         (RETURN_IN_MEMORY): Likewise.
17939         (EXPAND_BUILTIN_SAVEREGS): Likewise.
17940
17941 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17942
17943         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
17944         (arm_setup_incoming_varargs): Likewise.
17945         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
17946
17947 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17948
17949         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
17950         (cris_setup_incoming_varargs): Likewise.
17951         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
17952
17953 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17954
17955         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
17956         (ns32k_struct_value_rtx): Likewise.
17957         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
17958         NS32K_STRUCT_VALUE_REGNUM.
17959
17960 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17961
17962         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
17963         (TARGET_PROMOTE_PROTOTYPES): Likewise.
17964         (TARGET_STRUCT_VALUE_RTX): Likewise.
17965         (arm_struct_value_rtx): Likewise.
17966         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
17967         (STRUCT_VALUE): Likewise.
17968         (STRUCT_VALUE_REGNUM): Likewise.
17969         (PROMOTE_PROTOTYPES): Likewise.
17970
17971 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
17972
17973         * config/ia64/ia64-protos.h: Remove the prototype for
17974         ia64_setup_incoming_varargs and ia64_return_in_memory.
17975         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
17976         (TARGET_RETURN_IN_MEMORY): Likewise.
17977         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
17978         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
17979         (ia64_setup_incoming_varargs): Adjust the arguments to meet
17980         the requirement of TARGET_SETUP_INCOMING_VARARGS.
17981         (ia64_return_in_memory): Make it static.  Change the return
17982         type to bool from int.  Add an argument.
17983         (ia64_struct_value_rtx): New.
17984         * config/ia64/ia64.h: Remove commented-out definitions of
17985         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
17986         PROMOTE_PROTOTYPES.
17987         (RETURN_IN_MEMORY): Remove.
17988         (STRUCT_VALUE_REGNUM): Likewise.
17989         (STRICT_ARGUMENT_NAMING): Likewise.
17990
17991 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
17992
17993         PR target/13666
17994         * config/sparc/sparc.c (function_arg_union_value): New function.
17995         (function_arg): Use it to deal with unions.
17996         (function_value): Likewise.  Define 'regbase' only for ARCH64.
17997         Replace a conditional statement by a simpler one.
17998
17999 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
18000
18001         * config/mips/mips.c (mips16_optimize_gp): Delete.
18002         (mips_reorg): Don't call it.
18003
18004 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18005
18006         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
18007         (floatunsqihf2): Remove operand 6.
18008         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
18009         fix patterns.
18010         (ldi_conditional, ldf_conditional): Validate operands.
18011
18012 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18013
18014         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
18015         (HAVE_GAS_HIDDEN): Undefine as interim measure.
18016
18017 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18018
18019         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
18020         memory references if TARGET_EXPOSE_LDP nonzero.
18021
18022 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18023
18024         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
18025
18026 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18027
18028         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
18029         invalid operand combinations.
18030
18031 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18032
18033         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
18034         c4x_legitimate_address_p.  Fix post_modify check.
18035
18036         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
18037         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
18038
18039 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18040
18041         * config/pa/pa-protos.h: Remove the prototype for
18042         hppa_builtin_saveregs.  Add a prototype for
18043         pa_return_in_memory.
18044         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
18045         (TARGET_PROMOTE_PROTOTYPES): Likewise.
18046         (TARGET_STRUCT_VALUE_RTX): Likewise.
18047         (TARGET_RETURN_IN_MEMORY): Likewise.
18048         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
18049         (pa_struct_value_rtx): Likewise.
18050         (pa_return_in_memory): Likewise.
18051         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
18052         PA_STRUCT_VALUE_REGNUM.
18053         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
18054         (EXPAND_BUILTIN_SAVEREGS): Remove.
18055         (PROMOTE_PROTOTYPES): Likewise.
18056         (PROMOTE_FUNCTION_RETURN): Likewise.
18057
18058 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18059
18060         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
18061         (TARGET_STRUCT_VALUE_RTX): Likewise.
18062         (vax_struct_value_rtx): Likewise.
18063         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
18064         VAX_STRUCT_VALUE_REGNUM.
18065         (PROMOTE_PROTOTYPES): Remove.
18066
18067 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18068
18069         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
18070
18071 2004-01-25  Chris Demetriou  <cgd@broadcom.com>
18072
18073         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
18074         and MIPS64 have HI/LO interlocks.  Update comment.
18075
18076 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18077
18078         * config/stormy16/stormy16-protos.h: Remove the prototype for
18079         xstormy16_setup_incoming_varargs.
18080         * config/stormy16/stormy16.c
18081         (xstormy16_setup_incoming_varargs): Remove.
18082         (xstormy16_return_in_memory): New.
18083         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
18084         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
18085         (TARGET_PROMOTE_PROTOTYPES): Likewise.
18086         (TARGET_STRUCT_VALUE_RTX): Likewise.
18087         (TARGET_RETURN_IN_MEMORY): Likewise.
18088         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
18089         (PROMOTE_FUNCTION_RETURN): Likewise
18090         (PROMOTE_PROTOTYPES): Likewise
18091         (RETURN_IN_MEMORY): Likewise
18092         (STRUCT_VALUE): Likewise
18093         (SETUP_INCOMING_VARARGS): Likewise
18094
18095 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
18096
18097         * config/mips/mips.c (mips_offset_within_object_p): New function.
18098         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
18099         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
18100         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
18101
18102 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18103
18104         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
18105         (PROMOTE_FUNCTION_RETURN): Likewise.
18106
18107 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18108
18109         * config/mn10300/mn10300-protos.h: Remove the prototype for
18110         mn10300_builtin_saveregs.
18111         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
18112         (TARGET_STRUCT_VALUE_RTX): Likewise.
18113         (TARGET_RETURN_IN_MEMORY): Likewise.
18114         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
18115         (mn10300_return_in_memory): Likewise.
18116         (mn10300_builtin_saveregs): Make it static.
18117         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
18118         (RETURN_IN_MEMORY): Likewise.
18119         (STRUCT_VALUE): Likewise.
18120         (EXPAND_BUILTIN_SAVEREGS): Likewise.
18121
18122 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
18123
18124         PR bootstrap/13853
18125         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
18126
18127 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18128
18129         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
18130         using ccr.
18131
18132 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18133
18134         * config/i860/i860-protos.h: Remove the prototype for
18135         i860_saveregs.
18136         * config/i860/i860.c (i860_saveregs): Make it static.
18137         (i860_struct_value_rtx): New.
18138         (TARGET_STRUCT_VALUE_RTX): Likewise.
18139         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
18140         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
18141         I860_STRUCT_VALUE_REGNUM.
18142         (EXPAND_BUILTIN_SAVEREGS): Remove.
18143
18144 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18145
18146         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
18147         (TARGET_RETURN_IN_MEMORY): Likewise.
18148         (m68hc11_struct_value_rtx): Likewise.
18149         (m68hc11_return_in_memory): Likewise.
18150         * config/m68hc11/m68hc11.h: Remove a commented-out definition
18151         of PROMOTE_PROTOTYPES.
18152         (RETURN_IN_MEMORY): Remove.
18153         (STRUCT_VALUE_REGNUM): Likewise.
18154
18155 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18156
18157         * config/mmix/mmix-protos.h: Remove the prototype for
18158         mmix_setup_incoming_varargs.
18159         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
18160         (TARGET_STRUCT_VALUE_RTX): Likewise.
18161         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
18162         (mmix_setup_incoming_varargs): Make it static.
18163         (mmix_struct_value_rtx): New.
18164         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
18165         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
18166         (STRUCT_VALUE_REGNUM): Remove.
18167         (SETUP_INCOMING_VARARGS): Likewise.
18168
18169 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18170
18171         * config/mips/mips-protos.h: Remove the prototypes for
18172         mips_setup_incoming_varargs and mips_return_in_memory.
18173         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
18174         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
18175         (TARGET_PROMOTE_PROTOTYPES): Likewise.
18176         (TARGET_STRUCT_VALUE_RTX): Likewise.
18177         (TARGET_RETURN_IN_MEMORY): Likewise.
18178         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
18179         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
18180         (mips_setup_incoming_varargs): Match the prototype for
18181         TARGET_SETUP_INCOMING_VARARGS.
18182         (mips_return_in_memory): Make it static.  Add argument fntype.
18183         (mips_strict_argument_naming): New.
18184         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
18185         (PROMOTE_FUNCTION_ARGS): Likewise.
18186         (PROMOTE_FUNCTION_RETURN): Likewise.
18187         (STRUCT_VALUE): Likewise.
18188         (RETURN_IN_MEMORY): Likewise.
18189         (SETUP_INCOMING_VARARGS): Likewise.
18190         (STRICT_ARGUMENT_NAMING): Likewise.
18191
18192 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18193
18194         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
18195         (TARGET_RETURN_IN_MEMORY): Likewise.
18196         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
18197         (ip2k_return_in_memory): Likewise.
18198         (ip2k_setup_incoming_varargs): Likewise.
18199         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
18200         (STRUCT_VALUE): Likewise.
18201         (STRUCT_VALUE_INCOMING): Likewise.
18202         (SETUP_INCOMING_VARARGS): Likewise.
18203
18204 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
18205
18206         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
18207         (TARGET_RETURN_IN_MEMORY): Likewise.
18208         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
18209         (avr_return_in_memory): Remove.
18210         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
18211         (STRUCT_VALUE): Likewise.
18212         (STRUCT_VALUE_INCOMING): Likewise.
18213         (STRICT_ARGUMENT_NAMING): Likewise.
18214
18215 2004-01-25  Jan Hubicka  <jh@suse.cz>
18216
18217         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
18218
18219 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
18220
18221         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
18222         (mips_regno_mode_ok_for_base_p): Declare.
18223         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
18224         (FRAME_POINTER_REGNUM): Renumber to 78.
18225         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
18226         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
18227         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
18228         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
18229         (REG_MODE_OK_FOR_BASE_P): Likewise.
18230         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
18231         entry for 77 to "$arg" and entry for 78 to "$frame".
18232         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
18233         (mips_reg_mode_ok_for_base_p): Remove.
18234         (mips_regno_mode_ok_for_base_p): New function, derived from old
18235         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
18236         restrictions unless we're being strict.
18237         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
18238
18239 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18240
18241         * c-common.h: Fix comment typos.
18242         * c-decl.c: Likewise.
18243         * cgraphunit.c: Likewise.
18244         * combine.c: Likewise.
18245         * et-forest.c: Likewise.
18246         * flow.c: Likewise.
18247         * function.c: Likewise.
18248         * ifcvt.c: Likewise.
18249         * integrate.c: Likewise.
18250         * jump.c: Likewise.
18251         * postreload.c: Likewise.
18252         * varray.c: Likewise.
18253
18254 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18255
18256         * doc/frontends.texi: Update copyright.
18257         * doc/gcov.texi: Likewise.
18258         * doc/gty.texi: Likewise.
18259         * doc/sourcebuild.texi: Likewise.
18260         * doc/standards.texi: Likewise.
18261
18262 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
18263
18264         PR target/12978
18265         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
18266         Remove movstrqi_small because it conflicts with movstrqi_large.
18267
18268 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18269
18270         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
18271         (TARGET_STRUCT_VALUE_RTX): Likewise.
18272         (cris_struct_value_rtx): Likewise.
18273         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
18274         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
18275         STRUCT_VALUE_REGNUM.
18276         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
18277
18278 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
18279
18280         PR bootstrap/13848
18281         * cse.c (cse_cc_succs): Change the mode of the source expression
18282         as soon as decide we need a new mode.  Don't permit changing modes
18283         if we found a match in a successor block.
18284         (cse_condition_code_reg): Save original mode of source expression
18285         so that we know whether we have to change the mode in other
18286         insns.
18287
18288 2004-01-24  Jan Hubicka  <jh@suse.cz>
18289
18290         * emit-rtl.c (change_address, adjust_address_1, offset_address,
18291         widen_memory_access):  Return early when there is nothing to change.
18292
18293 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
18294
18295         * simplify-rtx.c (simplify_relational_operation): Don't
18296         simplify address == constant into address + -constant == 0.
18297
18298 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18299
18300         * gcc.c (process_command): Don't internationalize the
18301         Copyright message.
18302         * mips-tfile.c (main): Likewise.
18303
18304 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
18305
18306         * cse.c: (cse_cc_succs) Fix comparison warning.
18307
18308 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18309
18310         * config/h8300/h8300.md: Remove extraneous USE in expanders.
18311
18312 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18313
18314         * config/h8300/h8300-protos.h: Provide prototypes for
18315         h8300_legitimate_constant_p and h8300_legitimate_address_p.
18316         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
18317         (h8300_rtx_ok_for_base_p): Likewise.
18318         (h8300_legitimate_address_p): Likewise.
18319         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
18320         h8300_legitimate_constant_p.
18321         (RTX_OK_FOR_BASE_P): Remove.
18322         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
18323
18324 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18325
18326         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
18327         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
18328         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
18329         (REG_OK_FOR_BASE_STRICT_P): Likewise.
18330         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
18331         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
18332         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
18333         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
18334
18335 2004-01-24  Jan Hubicka  <jh@suse.cz>
18336
18337         * cselib.c (remove_useless_values):  Do not access discarded values.
18338
18339 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
18340
18341         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
18342         arrays.
18343
18344 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
18345
18346         * recog.c: Fix a typo in copyright.
18347
18348 2004-01-23  Andrew Pinski  <apinski@apple.com>
18349
18350         * config/rs6000/rs6000.md (call): Fix misappiled patch.
18351         (call_value): Likewise.
18352
18353 2004-01-23  Richard Henderson  <rth@redhat.com>
18354
18355         PR opt/12941
18356         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
18357         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
18358         if SHIFT_COUNT_TRUNCATED is set.
18359
18360 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
18361
18362         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
18363         separate real and imaginary parts.
18364         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
18365
18366 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
18367
18368         PR target/13674
18369         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
18370         loading into GPR.
18371
18372 2004-01-23  Jan Hubicka  <jh@suse.cz>
18373
18374         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
18375         change.
18376
18377         * alloc-pool.c (align_four): Kill.
18378         (create_alloc_pool): Align size to eight.
18379         (free_alloc_pool, free_pool): Invalidate deallocated data.
18380
18381 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
18382
18383         PR gcc/1532
18384         * cse.c (cse_change_cc_mode): New static function.
18385         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
18386         (cse_condition_code_reg): New function.
18387         * rtl.h (cse_condition_code_reg): Declare.
18388         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
18389         * target.h (struct gcc_target): Add fixed_condition_code_regs and
18390         cc_modes_compatible.
18391         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
18392         (TARGET_CC_MODES_COMPATIBLE): Define.
18393         (TARGET_INITIALIZER): Add new initializers.
18394         * targhooks.c (default_cc_modes_compatible): New function.
18395         * targhooks.c (default_cc_modes_compatible): Declare.
18396         * hooks.c (hook_bool_intp_intp_false): New function.
18397         * hooks.h (hook_bool_intp_intp_false): Declare.
18398         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
18399         (TARGET_CC_MODES_COMPATIBLE): Define.
18400         (ix86_fixed_condition_code_regs): New static function.
18401         (ix86_cc_modes_compatible): Likewise.
18402         * doc/tm.texi (Condition Code): Document new hooks.
18403
18404 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
18405
18406         * fixinc/inclhack.def (bad_lval): Renamed to ...
18407         (alpha_bad_lval): ... this.
18408         Removed file list.
18409         Restrict to alpha*-dec-osf*.
18410         * fixinc/fixincl.x: Regenerate.
18411         * fixinc/tests/base/dirent.h: Remove, moving test ...
18412         * fixinc/tests/base/testing.h: ... here, reflecting new name.
18413
18414 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
18415
18416         PR c/13814
18417         * c-decl.c (diagnose_mismatched_decls): Also discard a
18418         built-in if we encounter an old-style definition with the
18419         same name.
18420
18421 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
18422
18423         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
18424         set to default{32,64}.
18425
18426 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
18427
18428         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
18429         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
18430
18431 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
18432             Olivier Hainque  <hainque@act-europe.fr>
18433
18434         * fold-const.c (fold_binary_op_with_conditional_arg): Only
18435         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
18436
18437 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
18438
18439         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
18440         size for minipool references.
18441
18442 2004-01-23  Roger Sayle  <roger@eyesopen.com>
18443
18444         * real.c (real_floor, real_ceil): Tweak to allow input and output
18445         arguments to overlap.
18446         (real_round): New function to implement round(3m) semantics.
18447         * real.h (real_round): Prototype here.
18448         * builtins.c (fold_builtin_round): New function to constant fold
18449         round, roundf and roundl.
18450         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
18451
18452 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
18453
18454         PR optimization/13819
18455         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
18456         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
18457         (sh_handle_sp_switch_attribute): Remove warning.
18458
18459 2004-01-23  Jan Hubicka  <jh@suse.cz>
18460
18461         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
18462
18463 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
18464
18465         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
18466         may or may not return non-NIL.
18467         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
18468         check CANNOT_CHANGE_MODE_CLASS
18469
18470 2004-01-23  Jan Hubicka  <jh@suse.cz>
18471
18472         * basic-block.h (PROP_POSTRELOAD): New macro.
18473         (CLEANUP_LOG_LINKS): New.
18474         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
18475         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
18476
18477         * cselib.c (value_pool): New.
18478         (new_cselib_val): Use pool.
18479         (cselib_init): Initialize value_pool
18480         (cselib_finish): Free pool.
18481
18482 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
18483
18484         * config/sparc/sparc.c (scan_record_type): New function.
18485         (function_arg_slotno): Use it to determine which kinds of
18486         registers the record can be passed in.
18487
18488 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
18489
18490         * config/pa/fptr.c: Fix old-style definition.
18491
18492 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
18493
18494         PR optimization/13724
18495         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
18496         represents the zero bits produced by a ZERO_EXTEND operation.
18497
18498 2004-01-22  Roger Sayle  <roger@eyesopen.com>
18499
18500         PR optimization/13821
18501         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
18502         correctly calculate the lowpart offset of the contracted subreg.
18503
18504 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
18505
18506         * doc/invoke.texi (Optimize Options): Note that --param arguments
18507         are subject to change without notice.
18508
18509 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
18510
18511         * config.gcc (mips-sgi-irix6*o32): Removed.
18512         * config/mips/iris6-o32-as.h: Likewise.
18513         * config/mips/iris6-o32-gas.h: Likewise.
18514         * config/mips/iris6-o32.h: Likewise.
18515
18516 2004-01-22  Jan Hubicka  <jh@suse.cz>
18517
18518         * cfgcleanup.c (first_pass): New static variable.
18519         (try_forward_edges):  Add work limiting check for threading.
18520         (try_crossjump_bb):  Add work limiting check for crossjumping.
18521         (try_optimize_cfg):  Maintain first pass variable.
18522
18523 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
18524
18525         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
18526         handles complex and vector modes.
18527
18528 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
18529
18530         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
18531         (REG_OK_FOR_BASE_P_STRICT): Likewise.
18532         (STRICT): Likewise.
18533
18534 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
18535
18536         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
18537         (genrtl_for_stmt): Remove emit_nop calls.
18538
18539 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18540
18541         PR target/13713
18542         PR target/13324
18543         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
18544         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
18545         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
18546
18547 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
18548
18549         * config/arm/arm.c: Include "debug.h".
18550         (thumb_pushpop): Take two new arguments.  Add some commentary.
18551         Output frame information when pushing.
18552         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
18553         thumb_pushpop.
18554         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
18555         offset, and pass it to thumb_pushpop.  Output CFI information.
18556         (thumb_expand_prologue): Add some frame-related markers and notes.
18557
18558 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
18559
18560         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
18561         for TARGET_64BIT.
18562         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
18563         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
18564
18565 2004-01-22  Roger Sayle  <roger@eyesopen.com>
18566             Paolo Bonzini  <bonzini@gnu.org>
18567
18568         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
18569         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
18570         * rtl.h (subreg_lsb_1): Prototype here.
18571         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
18572         sign extensions.
18573
18574 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
18575
18576         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
18577         macro need not be defined if jump-tables should contain
18578         relative addresses only when -fPIC or -fPIC is in effect.
18579
18580 2004-01-22  Jan Hubicka  <jh@suse.cz>
18581
18582         * alias.c (reg_base_value): Turn into varray.
18583         (reg_base_value_size): Kill.
18584         (old_reg_base_value): New deletable varray.
18585         (alias_invariant_size): New variable.
18586         (REG_BASE_VALUE): Update to use varray.
18587         (find_base_value): Likewise.
18588         (record_set): Likewise.
18589         (record_base_value): Likewise.
18590         (memrefs_conflict_p): Likewise.
18591         (record_set): Likewise
18592         (record_base_value): Likewise.
18593         (memrefs_conflict_p): Use alias_invariant_size.
18594         (init_alias_analysis): Use varray; set alias_invariant_size;
18595         rescale other arrays to be sized by maxreg.
18596         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
18597
18598 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
18599
18600         * config/sparc/sparc.c (function_arg_slotno): Use
18601         FLOAT_TYPE_P to detect FP fields in structures.
18602         (function_arg_record_value_1): Likewise.
18603         (function_arg_record_value_2): Likewise.
18604
18605 2004-01-22  Jan Hubicka  <jh@suse.cz>
18606
18607         * function.c (allocate_struct_function): Do not initialize expr, emit
18608         and varasm.
18609         (prepare_function_start): Do it here.
18610         * c-parse.in (maybe_type_qual): Do not produce line number notes.
18611
18612 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
18613
18614         PR target/13559
18615         * config/sparc/sparc.c (function_arg_record_value_3): Revert
18616         to 'word_mode' once the first slot has been filled.
18617
18618 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
18619
18620         * config/sparc/sparc.c (function_arg_record_value_1): Fix
18621         computation of the number of integer registers required.
18622
18623 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
18624
18625         * config/i386/i386.md: Simplify certain comparisons of
18626         const_int.
18627
18628 2004-01-21  Andrew Pinski  <apinski@apple.com>
18629
18630         PR target/13785
18631         * config/rs6000/rs6000.md (call_value): Force operand
18632         1 not operand 0 into a register.
18633
18634 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
18635
18636         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
18637         unwind-dw2-fde.h: Update copyright.
18638
18639 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18640
18641         * pa-protos.h: Update copyright.
18642         * pa.h: Likewise.
18643         * pa.md: Likewise.
18644
18645 2004-01-21  Caroline Tice  <ctice@apple.com>
18646
18647         PR target/12308
18648         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
18649         flags register.
18650         (fix_truncdfdi2): Likewise.
18651         (fix_truncsfdi2): Likewise.
18652         (*fix_truncdi_1): Likewise.
18653         (fix_truncxfsi2): Likewise.
18654         (fix_truncdfsi2): Likewise.
18655         (fix_truncsfsi2): Likewise.
18656         (*fix_truncsi_1): Likewise.
18657         (fix_truncxfhi2): Likewise.
18658         (fix_truncdfhi2): Likewise.
18659         (fix_truncsfhi2): Likewise.
18660         (*fix_trunchi_1): Likewise.
18661
18662 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
18663
18664         * alias.c, basic-block.h, c-common.c, c-common.h,
18665         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
18666         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
18667         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
18668         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
18669         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
18670         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
18671         genautomata.c, genconditions.c, genemit.c, genflags.c,
18672         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
18673         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
18674         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
18675         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
18676         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
18677         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
18678         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
18679         unwind.h, varray.c, varray.h: Update copyright.
18680
18681 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
18682
18683         * config/h8300/coff.h: Update copyright.
18684         * config/h8300/elf.h: Likewise.
18685         * config/h8300/h8300-protos.h: Likewise.
18686         * config/h8300/h8300.c: Likewise.
18687         * config/h8300/h8300.h: Likewise.
18688         * config/h8300/h8300.md: Likewise.
18689
18690 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18691
18692         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
18693         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
18694         ultrix_unistd): New hacks.
18695         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
18696         ULTRIX_CONST2_CHECK): Add checks.
18697         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
18698         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
18699         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
18700         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
18701         * fixinc/tests/base/locale.h: New file.
18702         * fixinc/fixincl.x: Rebuilt.
18703
18704 2004-01-21  Andreas Jaeger  <aj@suse.de>
18705             Michael Matz  <matz@suse.de>
18706
18707         * doc/extend.texi (Extended Asm): Clarify memory clobber.
18708
18709 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
18710
18711         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
18712         _Jv_RegisterClasses through a function pointer.
18713
18714 2004-01-21  Falk Hueffner  <falk@debian.org>
18715
18716         PR target/12898
18717         * config/alpha/alpha.c (alpha_emit_set_const_1): If
18718         no_new_pseudos, use gen_rtx_SET directly for SImode constants
18719         which need multiple instructions to emit.
18720
18721 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
18722
18723         * config/m32r/m32r.h (CPP_SPEC): Define.
18724
18725 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
18726
18727         * c-decl.c (merge_decls): Kill different_binding_level and
18728         different_tu arguments; simplify throughout.
18729         (duplicate_decls): Likewise.
18730         (pushdecl, merge_translation_unit_decls): Update calls to
18731         duplicate_decls.
18732
18733 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18734
18735         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
18736         $(SYSTEM_H).
18737         (print-rtl1.o): Depend on $(SYSTEM_H).
18738
18739 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
18740
18741         PR bootstrap/12730
18742         * configure.ac: Delete definition and subsitution of docdir.
18743         Add info, man, srcman and srcinfo to target hooks. Create doc/
18744         directory.
18745         * configure: Regenerate.
18746         * Makefile.in: Don't substitute docdir and delete all references
18747         throughout.
18748         (MAKEINFOFLAGS): Define.
18749         (stmp-docobjdir): Delete.
18750         (INFOFILES, MANFILES): Define.
18751         (info): Call lang.info, srcinfo and lang.srcinfo.
18752         (generated-manpages): Call lang.man, srcman and lang.srcman.
18753         (srcinfo, srcman): New rules to copy back files to source directory.
18754         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
18755         (install-man): Revamp rule.
18756         (clean): Update dvi directory.
18757         (distclean): Delete TAGS from front end directorys.
18758         (maintainer-clean): Delete all document files in source directory.
18759
18760         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
18761         (objc.srcman, objc.srcinfo): Likewise.
18762
18763 2004-01-20  Bruce Korb  <bkorb@gnu.org>
18764
18765         * fixinc/inclhack.def(math_exception): bypass only for glibc.
18766         (matherr_decl): rename & relocate as exception_structure.
18767         This fix must precede the math_exception fix.
18768
18769 2004-01-20  Roger Sayle  <roger@eyesopen.com>
18770
18771         * fold-const.c (fold_convert): Rename to fold_convert_const.
18772         (fold_convert_const): Change arguments to take a tree_code,
18773         a type and the operand/expression to be converted.  Return
18774         NULL_TREE if no simplification is possible.  Add support for
18775         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
18776         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
18777         Adjust call to fold_convert to match new fold_convert_const.
18778         Avoid modifying the tree passed to fold in-place.
18779
18780 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
18781
18782         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
18783         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
18784         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
18785
18786 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18787
18788         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
18789         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
18790         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
18791         (emit_move_sequence): Check scratch_reg first in various if statements.
18792         Extend source simplification to handle all 64-bit CONST_INTs.
18793         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
18794         frame size.
18795         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
18796         frame offset calculations.
18797         * pa.h (NEW_HP_ASSEMBLER): Add comment.
18798         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
18799         LEGITIMATE_64BIT_CONST_INT_P): Define.
18800         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
18801         any CONST_INT as legitimate during and after reload.
18802         (VAL_32_BITS_P, INT_32_BITS): Define.
18803         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
18804
18805 2004-01-20  Jan Hubicka  <jh@suse.cz>
18806
18807         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
18808         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
18809         containing hard regs are shared.
18810         (gen_hard_reg_clobber): New function.
18811         (hard_reg_clobbers): New array.
18812         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
18813         (copy_rtx): Do not copy clobbers containing hard regs.
18814         * rtl.h (gen_hard_reg_clobber): Declare.
18815
18816 2004-01-20  Jan Hubicka  <jh@suse.cz>
18817
18818         * varray.c:  Include hashtab.h
18819         (varray_descriptor): New structure.
18820         (hash_descriptor, eq_descriptor, varray_descriptor,
18821         print_statistics): New static functions
18822         (varray_init, varray_grow): Update statistics
18823         (dump_varray_statistics): New function.
18824         * varray.h (dump_varray_statistics): Declare.
18825         * toplev.c (finalize): Call it.
18826         * Makefile.in (varray.o): Add dependency.
18827
18828 2004-01-20  Jan Hubicka  <jh@suse.cz>
18829
18830         * cselib.c: Include alloc-pool.h
18831         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
18832         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
18833         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
18834         unchain_one_elt_loc_list_pool, unchain_one_value,
18835         new_cselib_val): Simplify using allocpool.
18836         (cselib_init): Initialize allocpools.
18837         (cselib_finish): Finish allocpools.
18838         * Makefile.in (cselib.o): Depend on alloc-pool.h
18839
18840 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
18841
18842         * config/mips/mips.c (mips_load_call_address): Make the call insn
18843         use $gp if it could be calling a lazy binding stub.
18844
18845 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
18846
18847         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
18848         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
18849         (TARGET_STRUCT_VALUE_RTX): Likewise.
18850         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
18851         (PROMOTE_FUNCTION_RETURN): Remove.
18852         (STRUCT_VALUE): Remove.
18853
18854 2004-01-20  Denis Chertykov  <denisc@overta.ru>
18855
18856         PR bootstrap/13735
18857         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
18858         register as pointer after reload.
18859
18860 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18861
18862         PR optimization/12440
18863         * loop.c: Include ggc.h.
18864         (loop_optimize): Run garbage collector between optimization of loops.
18865         * Makefile.in (loop.o): Add GGC_H dependency.
18866
18867 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
18868
18869         * gcc/config/rs6000/rs6000.c (function_arg) Handle
18870         vector register special in function without prototype.
18871         (function_arg_advance): Vector parameters get always
18872         GPRs allocated for the linux64 target.
18873
18874 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18875
18876         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
18877         not TARGET_M32RX_MASK.
18878
18879 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
18880
18881         PR target/13557
18882         * config/sparc/sparc.c (function_arg): Reorder the cases.
18883
18884 2004-01-19  Per Bothner  <per@bothner.com>
18885
18886         Move cpp_reader's line_maps field to a shared global.
18887         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
18888         and change the type to a pointer rather than a struct.
18889         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
18890         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
18891         Likewise.
18892         * cppfiles.c (validate_pch):  Likewise.
18893         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
18894         Likewise.
18895         * cpperror.c (print_location):  Likewise.
18896         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
18897         * cppinit.c (cpp_create_reader):  Handle new parameter.
18898         (cpp_destroy):  Don't free line_maps - that's no longer our job.
18899         * input.h (line_table):  New variable.
18900         * toplev.c (line_table):  Declare variable.
18901         (general_init):  Initialize line_table.
18902         * c-opts.c (c_common_init_options):  Pass line_table to
18903         cpp_create_reader.
18904         * fix-header.c (read_scan_file):  New local variable line_table.
18905         Initialize, and pass it to cpp_create_reader.
18906         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
18907         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
18908
18909 2004-01-19  Per Bothner  <per@bothner.com>
18910
18911         Implement a cache for linemap_lookup.
18912         * line-map.h (struct_line_maps):  Add cache field.
18913         * line-map.c (linemap_init):  Zero cache field.
18914         (linemap_add):  Set cache field to offset of newly allocated map.
18915         (linemap_lookup):  Use and set cache field.
18916
18917 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
18918
18919         PR optimization/13567
18920         * cse.c (cse_basic_block): Call cse_insn with a non-null
18921         libcall_insn for the last SET insn of a no-confilict block.
18922
18923 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
18924
18925         * Makefile.in (target_noncanonical, program_transform_name): Use
18926         immediate define instead of deferred.
18927         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
18928         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
18929         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
18930         deferred backquote.
18931
18932 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
18933
18934         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
18935         true unconditionally.
18936         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
18937         Remove.
18938         (build_unary_op, build_modify_expr): Don't handle extended
18939         lvalues.
18940         (build_component_ref, build_conditional_expr): Call non_lvalue
18941         instead of pedantic_non_lvalue.
18942         (build_c_cast): Don't condition use of non_lvalue on pedantic.
18943         * fold-const.c (fold): Don't check pedantic directly for
18944         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
18945         passed to pedantic_non_lvalue.
18946         * doc/extend.texi: Remove documentation of extended lvalues.
18947
18948 2004-01-19  Roger Sayle  <roger@eyesopen.com>
18949
18950         PR optimization/5263
18951         * simplify-rtx.c (associative_constant_p): Delete.
18952         (simplify_associative_operation): Rewrite to linearize terms, and
18953         attempt to simplify new term against both left and right subterms.
18954         (simplify_binary_operation): Call swap_commutative_operands_p on
18955         op0 and op1, not trueop0 and trueop1.  Move the initialization of
18956         trueop0 and trueop1 down to where first needed.
18957         (simplify_relational_operation): Likewise.
18958         * rtlanal.c (commutative_operand_precedence): Also order constant
18959         operands using avoid_constant_pool_reference.
18960
18961 2004-01-19  Richard Henderson  <rth@redhat.com>
18962
18963         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
18964         don't check memory mode.
18965         (unaligned_memory_operand): Likewise.
18966         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
18967         abort for op0 not MEM.
18968
18969         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
18970         is not a reg, copy to a scratch first.
18971         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
18972         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
18973         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
18974         (reload_inqi, reload_inhi): Fix mode of op0.
18975         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
18976         reload_outhi_help): Likewise.  Use define_insn_and_split.
18977
18978         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
18979         as well as $29 dead.
18980
18981 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
18982
18983         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
18984         "tls_object" for thread-local objects.
18985         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
18986         "#tls" for thread-local sections.
18987         * configure.ac (thread-local checks): Specify --fatal-warnings in
18988         every binutils-specific checks.  For sparc*-*-*, test whether the
18989         OS is Solaris and the tools are native and act accordingly.
18990         * configure: Rebuild.
18991
18992 2004-01-19  Jeff Law  <law@redhat.com>
18993
18994         * contrib.texi: Update Paolo Carlini's entry.  New entries for
18995         Jerry Quinn and Petur Runolfsson.
18996
18997 2004-01-19  Roger Sayle  <roger@eyesopen.com>
18998
18999         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
19000         size, don't use the larger zero-extending loads.
19001
19002 2004-01-19  Richard Henderson  <rth@redhat.com>
19003
19004         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
19005         * alpha.md (UNSPEC_NT_LDA): Remove.
19006         (UNSPEC_CVTLQ, cvtlq): New.
19007         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
19008         (extendsidi2_fix): Remove.
19009         (extendsidi2 splitter): Use cvtlq.
19010         (extendsidi2 fp peepholes): Remove.
19011         (cvtql): Use SFmode instead of SImode.
19012         (fix_trunc?fsi): Update to match.
19013         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
19014         (movsi): Rename from movsi_nofix, remove f alternatives.
19015         (movsi_nt_vms): Similarly.
19016         (movsi_fix, movsi_nt_vms_fix): Remove.
19017         (nt_lda): Remove.
19018         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
19019
19020 2004-01-19  Jan Hubicka  <jh@suse.cz>
19021
19022         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
19023         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
19024         list.
19025         (cgraph_remove_unreachable_nodes): New function
19026         (cgraph_decide_inlining_of_small_function): Fix pasto.
19027         (cgraph_decide_inlining_incrementally): Fix pasto.
19028         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
19029
19030 2004-01-19  Steven Bosscher  <stevenb@suse.de>
19031
19032         * gengtype.c (header_file): Make it static.
19033         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
19034         * gengtype.h (header_file): No longer extern.
19035
19036 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
19037
19038         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
19039         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
19040         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
19041
19042 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
19043
19044         * stmt.c (HAVE_casesi): Define it not already defined.
19045         (HAVE_tablejump): Likewise.
19046         (expand_end_case_type): Resort to the binary tree method if
19047         neither casesi or tablejump is available.
19048
19049 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
19050
19051         * final.c (final_scan_insn): Make non-static again.
19052         * output.h (final_scan_insn): Re-add prototype.
19053         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
19054         to final_scan_insn call.
19055         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
19056         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
19057         * config/pa/pa.c (output_lbranch, output_call): Likewise.
19058         * config/sh/sh.c (print_slot): Likewise.
19059         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
19060         (output_sibcall, sparc_flat_function_epilogue): Likewise.
19061
19062 2004-01-18  Jan Hubicka  <jh@suse.cz>
19063
19064         * basic-block.h (try_redirect_by_replacing_jump): Declare.
19065         * cfgcleanup.c (try_optimize_cfg): Use it.
19066         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
19067         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
19068         Kill hack.
19069         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
19070
19071         Revert:
19072         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
19073
19074                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
19075                 even after reload, just don't remove the actual jump tables.
19076
19077 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
19078
19079         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
19080
19081 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
19082
19083         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
19084         the size of a pointer in bytes.
19085
19086 2004-01-18  Roger Sayle  <roger@eyesopen.com>
19087
19088         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
19089         live "next" variable, which could lead to an infinite loop.
19090
19091 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
19092
19093         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
19094         block.
19095
19096         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
19097         Check for NULL in the chain and remove repeated code.
19098
19099 2004-01-18  Jan Hubicka  <jh@suse.cz>
19100
19101         * coverage.c (checksum_string): Rename to ...
19102         (coverage_checksum_string): ... this one, Use crc32_string; recognize
19103         names containing random number and zero the number out in order to get
19104         match.
19105
19106 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
19107
19108         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
19109
19110 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
19111
19112         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
19113         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
19114         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
19115         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
19116         doc/trouble.texi: Remove trailing whitespace.
19117
19118 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
19119
19120         PR target/7618
19121         * config/mips/mips.c: Include cfglayout.h.
19122         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
19123         (mips_unspec_offset_high): Add temporary register argument.
19124         (mips_load_call_address): New function, split out from...
19125         (mips_expand_call): ...here.
19126         (mips_output_cplocal): New function.
19127         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
19128         (mips_emit_loadgp): New function, split out from...
19129         (mips_expand_prologue): ...here.
19130         (mips_output_mi_thunk): New function.
19131
19132 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
19133
19134         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
19135         mcpu32): Remove redundant checks for implied target predefines.
19136
19137 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
19138
19139         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
19140         Return type is unsigned int not int.
19141         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
19142         Likewise.
19143
19144 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
19145
19146         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
19147         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
19148         "GNU/Linux" and "Microsoft Windows" terminology.
19149
19150 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
19151
19152         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
19153         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
19154         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
19155         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
19156         @smallexample instead of @example.
19157
19158 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
19159
19160         * objc/objc-act.c (build_objc_method_call): Use target
19161         hooks instead of macros to determine if ..._stret
19162         dispatchers should be used (NeXT runtime only).
19163
19164 2004-01-17  Roger Sayle  <roger@eyesopen.com>
19165
19166         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
19167         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
19168
19169 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
19170
19171         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
19172         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
19173         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
19174         macros.
19175         * reload1.c (emit_reload_insns): Use them.
19176         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
19177         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
19178         for NULL PATTERN.
19179
19180 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
19181
19182         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
19183         (final_scan_insn): Update to take an additional SEEN argument.  Emit
19184         a line note after the prologue.  Make static.
19185         (line_note_exists): Remove.
19186         (final): Don't initialize line_note_exists.  Update call to
19187         final_scan_insn.
19188         * output.h (final_scan_insn): Remove prologue.
19189         * function.c (set_insn_locators): Update comment.
19190         (thread_prologue_and_epilogue_insns): Add a comment.
19191
19192 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
19193
19194         PR target/10781
19195         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
19196         Prototype.
19197         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
19198         New function.
19199         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
19200         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
19201         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
19202
19203 2004-01-17  Jan Hubicka  <jh@suse.cz>
19204
19205         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
19206         commit.
19207
19208         * toplev.c (HAVE_conditional_execution): Provide default.
19209         (rest_of_handle_reorder_blocks): For conditional_execution target
19210         update liveness once after all transformations
19211         (rest_of_compilation): Do crossjumping before ce3.
19212
19213 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
19214
19215         * alias.c (new_alias_set): Mark last_alias_set for PCH.
19216         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
19217         for PCH.
19218         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
19219         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
19220         (get_TOC_alias_set): Mark 'set' for PCH.
19221
19222 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
19223
19224         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
19225         even after reload, just don't remove the actual jump tables.
19226
19227 2004-01-17  J. Brobecker  <brobecker@gnat.com>
19228
19229         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
19230         Remove checks for is_ada() and TREE_UNSIGNED.
19231         (subrange_type_die): Emit a byte_size attribute if the subrange
19232         type size is different from the base type size.
19233         (modified_type_die): Replace call to is_ada_subrange_type() by
19234         call to is_subrange_type().
19235
19236 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
19237
19238         * config/sh/sh.c: Include ggc.h.
19239
19240 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
19241
19242         * Makefile.in (MD5_H): New.
19243         (fold-const.o): Depend on md5.h.
19244         (dwarf2out.o): Likewise.
19245         (cppfiles.o): Likewise.
19246         * cppfiles.c: Include md5.h.
19247         (should_stack_file): Check against list read from PCH file.
19248         (struct pchf_data): New.
19249         (pchf): New variable.
19250         (struct pchf_adder_info): New.
19251         (pchf_adder): New.
19252         (pchf_save_compare): New.
19253         (_cpp_save_file_entries): New.
19254         (_cpp_read_file_entries): New.
19255         (struct pchf_compare_data): New.
19256         (pchf_compare): New.
19257         (check_file_against_entries): New.
19258         * cpphash.h (_cpp_save_file_entries): Prototype.
19259         (_cpp_read_file_entries): Prototype.
19260         * cpppch.c (cpp_write_pch_state): Write the list of headers.
19261         (cpp_read_state): Read the list of headers.
19262
19263 2004-01-17  Jan Hubicka  <jh@suse.cz>
19264
19265         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
19266         builtin_expect specially.
19267         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
19268         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
19269         * invoke.texi (max-inline-insns-single): Set to 100.
19270         (large-function-insns): Set to 3000.
19271
19272 2004-01-16  Eric Christopher  <echristo@redhat.com>
19273             Chandrakala Chavva <cchavva@redhat.com>
19274
19275         * cppcharset.c (one_iso88591_to_utf8): New function.
19276         (convert_iso88591_utf8): Ditto. Use.
19277         (conversion_tab): Use.
19278         (_cpp_input_to_utf8): New function.
19279         (_cpp_init_iconv_buffer): Ditto.
19280         (_cpp_close_iconv_buffer): Ditto.
19281         * cpphash.h: Prototype new functions.
19282         (cpp_buffer): Add input_cset_desc.
19283         * cppinit.c: Add input_charset default.
19284         * cpplib.c (cpp_push_buffer): Support init and
19285         close of iconv.
19286         * cpplib.h (cpp_options): Add input_charset.
19287
19288 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
19289
19290         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
19291         * config/alpha/unicosmk.h: Remove a commented-out definition
19292         of ASM_OUTPUT_SECTION_NAME.
19293         * config/stormy16/stormy16.h: Likewise.
19294
19295 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
19296
19297         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
19298         (alpha___extern_prefix_sys_stat): ... this.
19299         Apply to <sys/mount.h>, too.
19300         Tweak to match more variations.
19301         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
19302
19303         * fixinc/inclhack.def (alpha___extern_prefix,
19304         alpha___extern_prefix_standards): New hacks to obey
19305         __PRAGMA_EXTERN_PREFIX.
19306         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
19307         test.
19308         * fixinc/tests/base/standards.h: Likewise.
19309
19310         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
19311         variations.
19312         New testcase.
19313         * fixinc/tests/base/pthread.h: Handle it.
19314
19315         * fixincl/inclhack.def (bad_lval): Sort file list.
19316         Add many missing files up to Tru64 UNIX V5.1B.
19317         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
19318         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
19319         order.
19320
19321         * fixinc/fixincl.x: Regenerate.
19322
19323 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
19324
19325         * version.c (version_string): Change to 3.5.0.
19326         * doc/include/gcc-common.texi (version-GCC): Likewise.
19327
19328 2004-01-16  Jan Hubicka  <jh@suse.cz>
19329
19330         * i386.md (load_tp_di): Fix pasto.
19331
19332         PR opt/13608
19333         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
19334
19335         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
19336         pp_c_character_constant, pp_c_floating_constant,
19337         pp_c_additive_expression, pp_c_shift_expression,
19338         pp_c_equality_expression, pp_c_and_expression,
19339         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
19340         pp_c_logical_and_expression): Remove inline modifier.
19341         * dwarf2out.c (get_AT): Likewise.
19342         * et-forest.c (et_splay): Likewise.
19343         * ra.h (ra_alloc, ra_calloc): Likewise
19344
19345 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
19346
19347         * config/frv/frv-protos.h: Fix comment formatting.
19348         * config/frv/frv.c: Likewise.
19349         * config/frv/frv.h: Likewise.
19350         * config/frv/frv.md: Likewise.
19351         * config/frv/frvbegin.c: Likewise.
19352         * config/frv/frvend.c: Likewise.
19353
19354 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
19355
19356         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
19357         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
19358         LINKER_DOES_NOT_WORK_WITH_DWARF2.
19359         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
19360
19361 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
19362
19363         PR 11864
19364         * postreload.c (reload_cse_simplify_operands): Don't remove
19365         implicit extension from LOAD_EXTEND_OP.
19366
19367 2004-01-16  Jan Hubicka  <jh@suse.cz>
19368
19369         PR opt/11350
19370         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
19371         after reload.
19372         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
19373         rtl_try_redirect_by_replacing_branch): Likewise.
19374
19375 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
19376
19377         PR pch/13689
19378         * alias.c (struct alias_set_entry): Mark for GC.
19379         (alias_sets): Make static, mark for GC.
19380         (record_alias_subset): Use GC to allocate alias structures.
19381         * varray.c (element): Make generic varrays GCed.
19382
19383         PR pch/13361
19384         * c-typeck.c (constructor_asmspec): Delete.
19385         (struct initializer_stack): Delete field 'asmspec'.
19386         (start_init): Delete saving of asmspec.
19387         (finish_init): Don't update constructor_asmspec.
19388         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
19389         * stmt.c (expand_asm): Duplicate strings from tree.
19390         (expand_asm_operands): Likewise.
19391         * tree.c (tree_size): Update computation of size of STRING_CST.
19392         (make_node): Don't make STRING_CST nodes.
19393         (build_string): Allocate string with tree node.
19394         * tree.def (STRING_CST): Update comment.
19395         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
19396         (tree_string): Place contents of string in tree node.
19397         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
19398         from tree.
19399
19400         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
19401         altivec operands.
19402
19403 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19404
19405         * c-common.h: Fix comment formatting.
19406         * c-cppbuiltin.c: Likewise.
19407         * c-pragma.c: Likewise.
19408         * calls.c: Likewise.
19409         * collect2.c: Likewise.
19410         * cppcharset.c: Likewise.
19411         * cpptrad.c: Likewise.
19412         * dbxout.c: Likewise.
19413         * defaults.h: Likewise.
19414         * dwarf2out.c: Likewise.
19415         * fold-const.c: Likewise.
19416         * genautomata.c: Likewise.
19417         * genconditions.c: Likewise.
19418         * genflags.c: Likewise.
19419         * gengtype.c: Likewise.
19420         * integrate.c: Likewise.
19421         * loop.c: Likewise.
19422         * predict.c: Likewise.
19423         * sdbout.c: Likewise.
19424
19425 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
19426
19427         * config/ia64/ia64.md (*movti_internal): C output template
19428         extracted to ia64.c.
19429         (*movti_internal_reg): Delete.
19430         (reload_inti, reload_outti): Use the correct mode on operand 2
19431         in the first place, don't fix it up in the output template.
19432         (movtf, reload_ointf, reload_outtf): New expanders.
19433         (*movtf_internal): New define_insn_and_split.
19434         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
19435         make static; do not hand TFmode CONST_DOUBLEs to split_double.
19436         (ia64_split_tmode_move): New function, body mostly pulled
19437         from ia64.md:*movti_internal.
19438         (ia64_function_arg_words): New function, extracted common
19439         logic from ia64_function_arg et seq.
19440         (ia64_function_arg_offset): Likewise.  Handle correctly the
19441         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
19442         (ia64_function_arg, ia64_function_arg_partial_nregs)
19443         (ia64_function_arg_advance): Use ia64_function_arg_words and
19444         ia64_function_arg_offset.
19445         (ia64_function_value): TCmode does not go in float regs.
19446         (ia64_secondary_reload_class): Also handle TFmode.
19447         * config/ia64/ia64-protos.h: Remove prototype for
19448         ia64_split_timode; add prototype for ia64_split_tmode_move.
19449
19450 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
19451
19452         * Makefile.in (MAINT): Make it an immediate assignment.
19453
19454 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19455
19456         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
19457
19458 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19459
19460         * config/h8300/coff.h: Replace Hitachi with Renesas.
19461         * config/h8300/elf.h: Likewise.
19462         * config/h8300/h8300-protos.h: Likewise.
19463         * config/h8300/h8300.c: Likewise.
19464         * config/h8300/h8300.h: Likewise.
19465         * config/h8300/h8300.md: Likewise.
19466         * config/h8300/lib1funcs.asm: Likewise.
19467
19468 2004-01-15  Andrew Pinski  <apinski@apple.com>
19469
19470         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
19471         around it.
19472
19473 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19474
19475         * config/h8300/h8300.c (h8300_return_in_memory): New.
19476         (TARGET_STRUCT_VALUE_RTX): Likewise.
19477         (TARGET_RETURN_IN_MEMORY): Likewise.
19478         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
19479         (RETURN_IN_MEMORY): Likewise.
19480
19481 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
19482
19483         PR optimization/13375
19484         * gcse.c (handle_avail_expr): Just return if the source is not a
19485         single set.
19486
19487 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
19488             Daniel Jacobowitz  <drow@mvista.com>
19489
19490         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
19491         (EQUIV): Define.
19492         (ARM_FUNC_ALIAS): New macro.
19493         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
19494         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
19495
19496 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19497
19498         PR optimization/12372
19499         * calls.c (expand_call): Add call_fusage data for stack arguments in
19500         constant calls.
19501
19502 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
19503
19504         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
19505         (rs6000_elf_declare_function_name): Formatting.
19506         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
19507
19508 2004-01-15  Jan Hubicka  <jh@suse.cz>
19509
19510         PR bootstrap/13692
19511         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
19512         previous patch.
19513
19514 2004-01-15  Richard Henderson  <rth@redhat.com>
19515
19516         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
19517         integer regs of the same call-savedness.
19518
19519 2004-01-15  Andreas Schwab  <schwab@suse.de>
19520
19521         PR bootstrap/13562
19522         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
19523         status for NOTB/NOTW/NEGW methods.
19524
19525 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19526
19527         * doc/invoke.texi: Update dump file names.  Fix a typo.
19528
19529 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19530
19531         * builtins.c (expand_builtin_va_end): Don't use
19532         EXPAND_BUILTIN_VA_END.
19533         * system.h (EXPAND_BUILTIN_VA_END): Poison.
19534         * config/d30v/d30v.h: Remove a commented-out definition of
19535         EXPAND_BUILTIN_VA_END.
19536         * config/stormy16/stormy16.h: Likewise.
19537
19538 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19539
19540         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
19541         * targhooks.c (default_struct_value_rtx): Don't use
19542         STRUCT_VALUE_INCOMING_REGNUM.
19543
19544 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
19545
19546         PR bootstrap/12744
19547         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
19548         GENINSRC and not parsedir.  Define srcextra as a langhook.
19549         * configure: Regenerate.
19550         * Makefile.in: Suppress default .l.c rule.  Don't substitute
19551         parsedir and delete all references throughout.  Conditionally define
19552         rule for srcextra dependent on GENINSRC.
19553         (stmp-docobjdir): Delete.
19554         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
19555         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
19556         and gengtype-yacc.h back to source directory.
19557         (maintainer-clean): Delete all parse files in source directory.
19558         (distclean): Delete generated files.
19559
19560         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
19561         (objc-parse.c, objc-parse.y): Don't use parsedir.
19562         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
19563         directory if requested.
19564         (po-generated): Don't use parsedir.
19565         (objc.maintainer-clean): Delete above files from source directory.
19566
19567 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19568
19569         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
19570
19571 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19572
19573         * doc/tm.texi: Replace RETURN_IN_MEMORY with
19574         TARGET_RETURN_IN_MEMORY.
19575
19576 2004-01-15  Jan Hubicka  <jh@suse.cz>
19577
19578         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
19579         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
19580         functions accepting SSE arguments
19581         (function_arg): Warn only when asked to warn.
19582         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
19583
19584 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
19585
19586         * c-parse.in (stmts_and_decls): Make label at end of compound
19587         statement a hard error.
19588
19589 2004-01-14  Jan Hubicka  <jh@suse.cz>
19590
19591         * cgraph.c (create_edge): Use local.redefined_extern_inline.
19592         * cgraph.h (cgraph_local_info): Sort fields by size; add
19593         redefined_extern_inline
19594         (cgraph_global_info): Sort fields by size.
19595         (cgraph_node): Likewise.
19596         * cgraphunit.c (cgraph_finalize_function): Se
19597         local.redefined_extern_inline on redefinition.
19598         (cgraph_analyze_function): Use it; fix formating.
19599
19600 2004-01-14  Jan Hubicka  <jh@suse.cz>
19601
19602         PR c++/10776
19603         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
19604         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
19605         bitmaps
19606         (cache_size): New variable
19607         (add_dependence): Update use; canonize early memory locations
19608         (sched_analyze_1): Likewise.
19609         (sched_analyze_2): Likewise.
19610         (init_dependency_caches): Initialize bitmaps.
19611         (free_dependency_caches): Free bitmaps
19612
19613 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19614
19615         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
19616         targetm.calls.strict_argument_naming().
19617         * target.h: Likewise.
19618
19619 2004-01-14  Richard Henderson  <rth@redhat.com>
19620
19621         PR debug/13231
19622         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
19623         instructions.
19624
19625 2004-01-14  Richard Henderson  <rth@redhat.com>
19626
19627         PR c++/12491
19628         * except.c (struct eh_region): Add u.fixup.resolved.
19629         (resolve_one_fixup_region): Split out from ...
19630         (resolve_fixup_regions): ... here.
19631
19632 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19633
19634         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
19635
19636 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19637
19638         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
19639         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
19640         (STRUCT_VALUE): Remove.
19641
19642 2004-01-14  Steven Bosscher  <stevenb@suse.de>
19643
19644         * system.h: Poison PROMOTED_MODE
19645         * integrate.c (expand_inline_function): Don't mention the
19646         PROMOTED_MODE.
19647         * loop.c (update_giv_derive): Same.
19648         * tree.h (DECL_RTL): Same.
19649
19650 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
19651
19652         PR target/9365
19653         * sh.c (gen_block_redirect): Add special handling of RETURN.
19654         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
19655         far branch target (i.e. it's a return).
19656
19657 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19658
19659         * regrename.c (find_oldest_value_reg): Fix a warning.
19660
19661 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
19662
19663         PR bootstrap/12527
19664         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
19665         Move linux-gas.h and linux-elf.h before aout.h.
19666         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
19667         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
19668
19669 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19670
19671         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
19672         (CONST_INT, VOIDmode, ...).
19673
19674 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
19675
19676         * regrename.c (find_oldest_value_reg): If the replacement uses
19677         multiple hard registers, check that all of them are in CLASS.
19678
19679 2004-01-14  Jan Hubicka  <jh@suse.cz>
19680
19681         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
19682         impossible.
19683
19684 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
19685
19686         * Makefile.in: Define MAINT from --enable-maintainer-mode.
19687
19688 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
19689
19690         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
19691         Calculate always vrsave_mask if TARGET_ALTIVEC.
19692         (rs6000_emit_prologue): Emit code for vrsave
19693         only if TARGET_ALTIVEC_VRSAVE.
19694         (rs6000_emit_epilogue): Likewise.
19695
19696 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
19697
19698         * config/sparc/sparc.md (tie_add32): Fix pasto.
19699         (tie_add64): Likewise.
19700
19701 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
19702
19703         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
19704
19705 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19706
19707         * config/iq2000/iq2000-protos.h: Fix comment formatting.
19708         * config/iq2000/iq2000.c: Likewise.
19709         * config/iq2000/iq2000.md: Likewise.
19710
19711 2004-01-14  J. Brobecker  <brobecker@gnat.com>
19712
19713         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
19714         (subrange_type_die): Add handle for nameless subrange types.
19715
19716 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19717
19718         * config/h8300/h8300-protos.h: Replace do_movsi with
19719         h8300_expand_movsi.
19720         * config/h8300/h8300.c (do_movsi): Change to
19721         h8300_expand_movsi.
19722         * config/h8300/h8300.md (movsi): Replace do_movsi with
19723         h8300_expand_movsi.
19724         (movsf): Likewise.
19725
19726 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19727
19728         * config/h8300/h8300.c (dosize): Change to
19729         h8300_emit_stack_adjustment.  Update callers.
19730
19731 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19732
19733         * config/h8300/h8300.md (movstrictqi): Add an alternative with
19734         the source being post_inc.  Tighten the predicate for the
19735         destination to register_operand.
19736         (movstricthi): Likewise.
19737
19738 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19739
19740         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
19741         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
19742         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
19743
19744 2004-01-14  Jan Hubicka  <jh@suse.cz>
19745
19746         Partial fix PR c++/12850
19747         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
19748         at zero nest level.
19749
19750 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
19751
19752         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
19753         pseudo-register.
19754
19755 2004-01-13  Devang Patel <dpatel@apple.com
19756
19757         PR debug/7078
19758         * dbxout.c (dbxout_symbol_name): Emit mangled names for
19759         NAMESPACE_DECL memebers.
19760
19761 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
19762
19763         PR c++/12709
19764         * c-common.c (finish_fname_decls): Use the chain only if the
19765         tree is an expr_stmt.
19766
19767 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
19768
19769         * rtl.def: Add comment about new option in automata_option.
19770
19771         * genautomata.c (PROGRESS_OPTION): New macro.
19772         (progress_flag): New global variable.
19773         (gen_automata_option): Process `progress'.
19774         (transform_insn_regexps, check_unit_distributions_to_automata,
19775         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
19776         expand_automata, write_automata): Print about the progress only if
19777         progress_flag.  Remove fflush.
19778         (initiate_automaton_gen): Process command line flag `-progress'.
19779
19780         * doc/md.texi: Describe the new option.
19781
19782 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
19783
19784         * cfg.c (dump_bb): Dump entry edges.
19785
19786 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
19787
19788         * arm.c (thumb_legitimate_address_p): Only allow constant pool
19789         references from SImode.
19790         * arm.md (thumb_movhi_insn): Don't allow minipool references.
19791
19792 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
19793
19794         * system.h (TEXT_SECTION): Poison.
19795         * varasm.c (text_section): Don't use TEXT_SECTION.
19796         * config/sh/sh.c (sh_file_start): Fix a comment typo.
19797         * doc/tm.texi (TEXT_SECTION): Remove.
19798
19799 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
19800
19801         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
19802
19803 2004-01-12  James E Wilson  <wilson@specifixinc.com>
19804
19805         * unwind-libunwind.c: Delete.
19806
19807 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
19808
19809         PR 13656
19810         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
19811         oldtype is set, set *newtypep or *oldtypep too.  Do not set
19812         them at the very end.
19813         (validate_proto_after_old_defn): Restructure for comprehensibility;
19814         make error messages clearer.
19815
19816 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
19817
19818         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
19819         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
19820         * varray.c: No need to prototype error.
19821         (varray_check_failed): Wrap long string onto two lines.
19822         (varray_underflow): New function.
19823
19824 2004-01-13  Steven Bosscher  <stevenb@suse.de>
19825
19826         PR c++/13376
19827         * function.h (struct function): Kill `name' field.
19828         (current_function_name): Make it an extern function.
19829         * function.c (current_function_name): New function.
19830         * graph.c: Update all uses of current_function_name.
19831         * gcse.c: Likewise.
19832         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
19833         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
19834         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
19835         instead of a strcmp with "main".
19836
19837 2004-01-13  Jan Hubicka  <jh@suse.cz>
19838
19839         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
19840
19841         * cgraphunit.c (cgraph_optimize_function):  Always do
19842         optimize_inline_calls when there is always_inline callee.
19843         (cgraph_decide_inlining): Fix formating.
19844         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
19845         functions.
19846         (expand_call_inline): Likewise.
19847         * toplev.h (sorry): Fix prototype.
19848
19849 2004-01-12  Roger Sayle  <roger@eyesopen.com>
19850
19851         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
19852         conditional jumps that drop through to unconditional jumps or the
19853         end of the sequence.
19854
19855 2004-01-13  Jan Hubicka  <jh@suse.cz>
19856
19857         * alias.c (new_alias_set): Construct the alias_set varray.
19858         (init_alias_once): Don't do it here.
19859
19860 2004-01-12  Marc Espie <espie@openbsd.org>
19861
19862         * system.h: handle YYBYACC like YYBISON.
19863
19864 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
19865
19866         PR target/10847
19867         * config.gcc: No longer includes conflicting header sparc/sol2.h when
19868         building on sparc64-*-openbsd*.
19869
19870 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
19871
19872         PR debug/13539
19873         * dbxout.c (dbxout_type): Protected inheritance is not
19874         private but protected.
19875
19876 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
19877
19878         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
19879
19880 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
19881
19882         PR optimization/12508.
19883         * combine.c (try_combine): Remove a dead set in a parallel
19884         even if its destination is a subreg.
19885
19886         Revert:
19887         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
19888         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
19889         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
19890
19891 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
19892
19893         * real.c: Update copyright date.
19894         * emit-rtl.c: Likewise.
19895         * rtl.h: Likewise.
19896         * dwarf2out.c: Likewise.
19897         * config/rs6000/darwin-ldouble.c: Likewise.
19898         * config/rs6000/rs6000.md: Likewise.
19899
19900 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
19901
19902         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
19903         TFmode to SImode libfuncs.
19904
19905 2004-01-12  Roger Sayle  <roger@eyesopen.com>
19906
19907         PR middle-end/11397
19908         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
19909
19910 2004-01-12  Jan Hubicka  <jh@suse.cz>
19911
19912         PR opt/12826
19913         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
19914         stored.
19915
19916         PR opt/12863
19917         * cfgcleanup.c (label_is_jump_target_p): Move to...
19918         * rtlanal.c (label_is_jump_target_p): ... here.
19919         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
19920         edges unified with branch edges.
19921
19922 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
19923
19924         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
19925         high word of an integral CONST_DOUBLE.
19926
19927 2004-01-12  Paul Brook  <paul@codesourcery.com>
19928
19929         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
19930
19931 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
19932
19933         PR target/13585
19934         * sh-protos.h (check_use_sfunc_addr): Declare.
19935         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
19936         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
19937
19938 2004-01-12  Jan Hubicka  <jh@suse.cz>
19939
19940         * alias.c:  Invlude varray.h
19941         (alias_sets): Turn into varray.
19942         (get_alias_set_entry): Use VARRAY; mark inline.
19943         (mems_in_disjoint_alias_sets_p): Mark inline.
19944         (record_alias_subset): Use varray.
19945         (init_alias_once): Initialize varray.
19946         (new_alias_set): Grow array.
19947         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
19948
19949 2004-01-12  Jan Hubicka  <jh@suse.cz>
19950
19951         Partial fix for PR opt/10776 II
19952         * cselib.c: Include params.h
19953         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
19954         locations.
19955         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
19956         * Makefile.in (cselib.o): Depend on params.h
19957
19958 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
19959
19960         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
19961         simplify_unary_operation if the operand has a known mode.
19962
19963 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
19964
19965         PR target/13534
19966         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
19967         predicate to handle 'ld' conform addresses.
19968         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
19969         contraint.
19970         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
19971         are memory contraints.
19972         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
19973         New prototype.
19974         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
19975         Change 'o' to 'Y' constraint.
19976         (*movdf_softfloat64): Ditto.
19977
19978 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
19979
19980         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
19981         brace-enclosed syntax in all C output statements.
19982
19983 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
19984
19985         PR target/13401
19986         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
19987         Objective-C language type value is 14.
19988
19989 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
19990
19991         PR c/12148
19992         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
19993         `int' in a number of places to make sure we always have a SImode
19994         and not a HImode.  Add a 'L' suffix to a number of constants.
19995
19996 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19997
19998         * pa.c: Don't include obstack.h.
19999
20000         * pa.md: Correct constraint in pattern for loading PIC label address.
20001
20002 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
20003
20004         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
20005          before defining.
20006
20007 2004-01-11  Steven Bosscher  <stevenb@suse.de>
20008
20009         PR fortran/9972
20010         * toplev.c (rest_of_handle_inline): Also consider functions
20011         for deferral if the language is GNU F77.
20012
20013 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
20014
20015         * c-decl.c (diagnose_arglist_conflict): Add missing space to
20016         diagnostic messages.
20017
20018 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
20019
20020         PR middle-end/13392
20021         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
20022         to drop through label.  Don't fall back to SCC even when conditional
20023         jump has not been found.
20024
20025 2004-01-11  Jan Hubicka  <jh@suse.cz>
20026
20027         * invoke.texi: Fix syntax error in previous patch.
20028
20029         Partial fix for PR opt/10776
20030         * Makefile.in (reload.o): Include param.h
20031         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
20032         * reload.c: Include params.h.
20033         (find_equiv_reg): Work limiting check.
20034         * invoke.texi: Document.
20035
20036 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
20037
20038         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
20039         out-of-bounds accesses to string constants.  Simplify mips16
20040         case accordingly.
20041
20042 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
20043
20044         PR optimization/13469
20045         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
20046         reload_cse_regs (-fnon-call-exceptions only).
20047
20048 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
20049
20050         * config/mcore/lib1.asm: Fix comment formatting.
20051         * config/mcore/mcore-elf.h: Likewise.
20052         * config/mcore/mcore.c: Likewise.
20053         * config/mcore/mcore.h: Likewise.
20054         * config/mcore/mcore.md: Likewise.
20055
20056 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
20057
20058         * c-decl.c (duplicate_decls): Break apart into...
20059         (diagnose_arglist_conflict, validate_proto_after_old_defn)
20060         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
20061         ... these new functions.  Restructure for comprehensibility.
20062         Remove various archaic special cases.  Always report the
20063         location of the previous declaration when a diagnostic is issued.
20064         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
20065         (match_builtin_function_types): Delete unnecessary forward declaration.
20066
20067 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
20068
20069         * genautomata.c (make_automaton, NDFA_to_DFA):
20070         Print progress bars with '.' characters instead of '*'.
20071         (build_automaton): Change notes to match.
20072
20073 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
20074
20075         * config/m32r/m32r.md: Use define_constants for unspec and
20076         unspec_volatile.
20077
20078 2004-01-10  Jan Hubicka  <jh@suse.cz>
20079
20080         PR opt/11635
20081         * expr.c (expand_expr_real):  More curefully expand union casts.
20082
20083 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
20084
20085         * config/m32r/m32r.md (flush_icache): Use 1 for
20086         unspec_volatile.
20087
20088 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
20089             James E Wilson  <wilson@specifixinc.com>
20090
20091         PR debug/12860
20092         * dbxout.c (dbxout_symbol): Remove initialization of
20093         current_sym_code, current_sym_value, and current_sym_addr.
20094         (dbxout_symbol_location): Same.
20095         (dbxout_prepare_symbol): Zero current_sym_code,
20096         current_sym_value, and current_sym_addr.
20097
20098 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
20099
20100         * tree.c (get_unwidened): Reorder conditions so that the null pointer
20101         check is done first.
20102
20103 2004-01-09  Eric Christopher  <echristo@redhat.com>
20104
20105         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
20106         if we're running mark_constant_function.
20107
20108 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
20109
20110         PR target/12561
20111         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
20112
20113 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
20114
20115         PR debug/11231
20116         * dbxout.c (dbxout_type_fields): Return if any item is
20117         error_mark_node or the type is error_mark_node.
20118
20119 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
20120
20121         * config/rs6000/darwin-ldouble.c: Add big comment explaining
20122         exactly what is expected as a 'long double'.
20123         (_xlqadd): When a value to be returned is representable as a
20124         'double', just return it directly, do not construct it using a union.
20125         Also, correct final fixup.
20126         (_xlqmul): Likewise.
20127         (_xlqdiv): Likewise.
20128         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
20129
20130         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
20131
20132 2004-01-09  Richard Henderson  <rth@redhat.com>
20133
20134         * recog.c (constrain_operands): Validate mem operands.
20135
20136 2004-01-09   James E Wilson  <wilson@specifixinc.com>
20137
20138         * gcc.c (init_spec): Remove -lunwind from shared case.
20139         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
20140
20141 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
20142
20143         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
20144         * configure: Regenerate
20145
20146 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
20147
20148         PR c/11234
20149         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
20150         between function and object pointers.
20151         (digest_init): When comparing a pointer to function type to the
20152         target type, only apply TREE_TYPE once to the pointer to function
20153         type.
20154         * except.c (for_each_eh_label_1): Treat data as a pointer to a
20155         function pointer rather than casting it to a function pointer.
20156         (for_each_eh_label): Update caller.
20157         * recog.h (struct insn_data): Use a struct or union for output.
20158         * genoutput.c (output_insn_data): Update.
20159         * final.c (get_insn_template): Update.
20160
20161 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
20162
20163         * expr.h (expand_expr): Make it a macro, not a function.
20164         (expand_expr_real): New function.
20165         * expr.c (store_expr): Adjust logic for deciding whether or not to
20166         copy the value returned by expand_expr.
20167         (expand_expr): Rename to ...
20168         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
20169         calls to language hooks.
20170         * c-common.h (c_expand_expr): Adjust prototype.
20171         * c-common.c (c_expand_expr): Add alt_rtl parameter.
20172         * langhooks-def.h (lhd_expand_expr): Change prototype.
20173         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
20174         * langhooks.h (lang_hooks): Change type of expand_expr.
20175         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
20176         (last_expr_alt_rtl): Likewise.
20177         (expand_expr_stmt_value): Set last_expr_alt_rtl.
20178         (clear_last_expr): Clear it.
20179         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
20180         (expand_end_bindings): Save and restor last_expr_alt_rtl.
20181         * tree.def (RTL_EXPR): Give it an additional operand.
20182         * tree.h (RTL_EXPR_ALT_RTL): New macro.
20183
20184 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
20185
20186         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
20187         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
20188
20189 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
20190
20191         PR target/13380.
20192         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
20193         or (ne:SI (reg:CC 17) (const_int 0)).
20194         Be specific about modes wherever possible.
20195
20196 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
20197
20198         * config/m32r/m32r.c (m32r_expand_block_move): Call
20199         gen_movestrsi_internal with two more arguments.
20200         (m32r_output_block_move): Adjust operand numbers.
20201         Properly update the source and destination pointers.
20202         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
20203         'r+'.  Change the set detinations to match_operand.
20204
20205 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
20206
20207         * final.c (FIRST_INSN_ADDRESS): Remove.
20208         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
20209         * system.h (FIRST_INSN_ADDRESS): Poison.
20210         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
20211         * config/m32r/m32r-protos.h: Remove the prototype for
20212         m32r_first_insn_address.
20213         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
20214         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
20215         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
20216
20217 2004-01-09  J. Brobecker  <brobecker@gnat.com>
20218
20219         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
20220         we just created.
20221         (is_ada_subrange_type): DIEs for enumeration subtypes should be
20222         emitted as subrange types too.
20223         (subrange_type_die): Add handling of enumeration subtypes.
20224
20225 2004-01-08  Richard Henderson  <rth@redhat.com>
20226
20227         PR opt/12441
20228         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
20229         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
20230         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
20231         (ix86_address_cost): Be prepared for SUBREGed registers.
20232         (legitimate_address_p): Accept SUBREGed registers.
20233
20234 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
20235
20236         * Makefile.in: Rename configure.in to configure.ac
20237         * doc/sourcebuild.texi: Likewise.
20238         * configure: Regenerate.
20239         * config.in: Regenerate.
20240
20241 2004-01-08  Stuart Hastings  <stuart@apple.com>
20242
20243         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
20244
20245 2004-01-08  Jan Hubicka  <jh@suse.cz>
20246
20247         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
20248
20249 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
20250
20251         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
20252         (UNSPEC_FIX_TRUNC_TF): New constant.
20253         (movtf_internal): Make splitter active only when insn is active.
20254         (extenddftf2): Rewrite to properly load zero into low part.
20255         (extenddftf2_internal): New.
20256         (extendsftf2): Rewrite.
20257         (truncdftf2): Correct length.
20258         (floatditf2): Delete.
20259         (fix_trunc_helper): New.
20260         (fix_trunctfdi2): Use fix_trunc_helper.
20261         (fix_trunctfsi2): Likewise.fix_trunc
20262         (fix_trunctfsi2_internal): New.
20263
20264         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
20265         addresses are legitimate on Darwin even when flag_pic.
20266         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
20267         non-offsettable addresses for loads of TFmode constants.
20268
20269 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
20270
20271         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
20272         variables in the appropriate bss section.
20273
20274 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
20275
20276         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
20277         target_flags has MASK_POWERPC64 when -m64.
20278         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
20279         to 620, 630, power3, power4 and rs64a entries.
20280         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
20281
20282 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
20283
20284         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
20285         floating-point constants.
20286
20287 2004-01-08  J. Brobecker  <brobecker@gnat.com>
20288
20289         * dwarf2out.c (subrange_type_die): Add context_die parameter.
20290         Create the subrange_type DIE using the given context DIE.
20291         (modified_type_die): Update call to subrange_type_die.
20292
20293 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
20294
20295         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
20296         Add multiple-include guard.
20297
20298 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
20299
20300         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
20301         all vector constant loadable by vsplt*.
20302         (output_vec_const_move): Likewise.
20303
20304 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
20305
20306         PR c/6024
20307         * c-typeck.c (comptypes): Only treat enumerated types in the same
20308         translation unit as compatible with each other when they are the
20309         same type.
20310         * doc/extend.texi: Update.
20311
20312 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
20313
20314         PR c/12165
20315         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
20316         array type from the array element type.
20317
20318 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
20319
20320         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
20321         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
20322         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
20323         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
20324         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
20325
20326 2004-01-06  Eric Christopher  <echristo@redhat.com>
20327
20328         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
20329         (DWARF2_DEBUGGING_INFO): Define.
20330         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
20331         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
20332         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
20333         for irix as.
20334         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
20335         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
20336         * config/mips/iris5gas.h: Ditto.
20337         (DBX_DEBUGGING_INFO): Remove.
20338         (DWARF2_DEBUGGING_INFO): Ditto.
20339         (MIPS_DEBUGGING_INFO): Ditto.
20340         (PREFERRED_DEBUGGING_TYPE): Ditto.
20341         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
20342         (PREFERRED_DEBUGGING_TYPE): Ditto.
20343         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
20344         * config/mips/elf64.h: Ditto.
20345
20346 2004-01-06  Jan Hubicka  <jh@suse.cz>
20347
20348         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
20349         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
20350
20351 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
20352
20353         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
20354         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
20355         * config/rs6000/darwin-ldouble.c: New.
20356
20357         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
20358         for constants.
20359         (constant_subword): Delete.
20360         * rtl.h (constant_subword): Delete prototype.
20361         (immed_double_const): Is not in varasm.c.
20362         * simplify-rtx.c (simplify_immed_subreg): New.
20363         (simplify_subreg): Use simplify_immed_subreg.
20364
20365         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
20366         than trying to generate RTL directly.
20367         (fix_trunctfsi2): Use expand_fix rather than trying to generate
20368         RTL directly.
20369
20370         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
20371
20372 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
20373
20374         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
20375         function into a separate macro.
20376         (read_only_data_section): Add void argument.
20377         (private_data_section): Same.
20378         (read_only_private_data_section): Same.
20379         (toc_section): Same.
20380
20381 2004-01-06  Jan Hubicka  <jh@suse.cz>
20382
20383         * invoke.texi:  Remove typo in last change.
20384
20385         PR target/10301
20386         * config.gcc: Accept opteron and athlon-64 as variants
20387         of k8.
20388         * i386.c (override_options): Likewise.
20389         * invoke.texi (i386 -mtune): Expand documentation.
20390
20391 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
20392
20393         * alias.c: Fix comment typos.
20394         * builtins.c: Likewise.
20395         * cfg.c: Likewise.
20396         * df.c: Likewise.
20397         * dominance.c: Likewise.
20398         * dwarf2out.c: Likewise.
20399         * emit-rtl.c: Likewise.
20400         * expr.c: Likewise.
20401         * final.c: Likewise.
20402         * fold-const.c: Likewise.
20403         * gcse.c: Likewise.
20404         * genattrtab.c: Likewise.
20405         * genrecog.c: Likewise.
20406         * gensupport.c: Likewise.
20407         * ggc-zone.c: Likewise.
20408         * integrate.c: Likewise.
20409         * local-alloc.c: Likewise.
20410         * loop.c: Likewise.
20411         * recog.c: Likewise.
20412         * regmove.c: Likewise.
20413         * reg-stack.c: Likewise.
20414         * reorg.c: Likewise.
20415         * rtlanal.c: Likewise.
20416         * rtl.h: Likewise.
20417         * sched-ebb.c: Likewise.
20418         * simplify-rtx.c: Likewise.
20419         * toplev.c: Likewise.
20420         * varasm.c: Likewise.
20421
20422 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
20423
20424         * doc/install.texi: Fix typos.
20425         * doc/invoke.texi: Likewise.
20426         * doc/md.texi: Likewise.
20427
20428 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
20429
20430         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
20431
20432 2004-01-06  Jan Hubicka  <jh@suse.cz>
20433
20434         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
20435         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
20436         of MMX_REGPARM.
20437         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
20438         add MMX_REGPARM.
20439         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
20440         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
20441         (MMX_REGPARM_MAX): Similarly for -mmmx.
20442
20443 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20444
20445         * config/sh/linux.h: Fix comment formatting.
20446         * config/sh/netbsd-elf.h: Likewise.
20447         * config/sh/sh.c: Likewise.
20448         * config/sh/sh.h: Likewise.
20449         * config/sh/vxworks.h: Likewise.
20450
20451 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20452
20453         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
20454         * toplev.c (output_file_directive): Don't use
20455         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
20456
20457 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
20458
20459         * toplev.c: Fix broken checkin of 2003-12-30.
20460
20461 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
20462
20463         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
20464         (USING_MMAP): We don't support non-mmap.
20465         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
20466         large objects.
20467         (struct page_entry): Remove bytes_free.
20468         (struct page_table_chain): Remove.
20469         (struct globals): Remove page_table member.
20470         (loookup_page_table_entry): Function deleted.
20471         (set_page_table_entry): Ditto.
20472         (ggc_allocated_p): No longer need page table lookups.
20473         (ggc_marked_p): Ditto.
20474         (alloc_small_page): Don't care about bytes_free anymore.
20475         (alloc_large_page): Round up size.
20476         (ggc_alloc_zone_1): Mark large objects as such, and calculate
20477         their size the new way.
20478         Remove page table lookups and setting.
20479         (ggc_get_size): Calculate large object size the new way.
20480         (sweep_pages): Redo to account for fact that we no longer have
20481         bytes_free.
20482         (ggc_collect): No longer need to reincrement bytes_free.
20483         (ggc_pch_alloc_object): Handle new large objects properly.
20484         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
20485
20486 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20487
20488         * doc/invoke.texi: Remove a page break.
20489
20490 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20491
20492         * config/avr/avr.c (avr_output_function_prologue): Remove an
20493         extra pair of curly braces.
20494
20495 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20496
20497         * config/mn10300/mn10300.c: Fix comment formatting.
20498         * config/mn10300/mn10300.h: Likewise.
20499
20500 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20501
20502         * tree.h: Update documentation on nothrow_flag.
20503         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
20504         types.
20505
20506 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
20507
20508         * doc/invoke.texi: Remove traces of dead ports.
20509
20510 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
20511
20512         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
20513         option.
20514
20515 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
20516
20517         PR target/12945
20518         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
20519         counter labels.
20520         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
20521         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
20522         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
20523         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
20524         (mips_symbol_insns): Don't trust the local/global classification.
20525         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
20526         (override_options): Make -mabicalls -fno-unit-at-a-time imply
20527         -mno-explicit-relocs.
20528         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
20529         between local and global symbols.
20530
20531 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
20532
20533         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
20534         (mips_preferred_reload_class): Declare.
20535         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
20536         (EXTRA_CONSTRAINT): Update accordingly.
20537         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
20538         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
20539         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
20540         mips_dangerous_for_la25_p.
20541         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
20542         if mips_dangerous_for_la25_p.
20543
20544 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
20545
20546         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
20547         warning.
20548
20549 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
20550
20551         * configure.ac: Use AC_PROG_CPP_WERROR.
20552         * configure: Regenerate.
20553
20554 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
20555
20556         * .cvsignore: Add autom4te.cache.
20557
20558 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
20559
20560         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
20561         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
20562         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
20563         then architecture options, then ABI options.  General rewording.
20564
20565 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
20566
20567         PR c/3414
20568         * doc/extend.texi: Clarify definition of malloc attribute.
20569
20570 2004-01-04  Jan Hubicka  <jh@suse.cz>
20571
20572         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
20573         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
20574         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
20575         (cgraph_inline_p): Add extra argument reason.
20576         * cgraphunit.c: Minor formating fixes.
20577         cgraph_first_inlined_callee): New functions.
20578         (record_call_1): Record builtins too.
20579         (cgraph_analyze_function): Update inline_failed messages.
20580         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
20581         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
20582         (cgraph_check_inline_limits): Likewise; Add argument reason.
20583         (cgraph_set_inline_failed): New static function.
20584         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
20585         reasons.
20586         (cgraph_inline_p): Add new argument reason.
20587         * tree-inline.c (expand_call_inline):  Update warning.
20588
20589 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
20590
20591         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
20592         with modern equivalents.
20593         * configure: Regenerate.
20594
20595         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
20596         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
20597         * configure: Regenerate.
20598
20599         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
20600
20601         * configure.in: Rename to configure.ac.
20602         * configure.ac: Renamed from configure.in; make minimum necessary
20603         changes for autoconf 2.5x.
20604         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
20605         * configure: Regenerate with autoconf 2.57.
20606
20607 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
20608
20609         * config/mips/linux.h: Fix comment formatting.
20610         * config/mips/mips.c: Likewise.
20611         * config/mips/mips.h: Likewise.
20612         * config/mips/mips.md: Likewise.
20613         * config/mips/netbsd.h: Likewise.
20614         * config/mips/windiss.h: Likewise.
20615
20616 2004-01-02  Richard Henderson  <rth@redhat.com>
20617
20618         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
20619         for sse and 387; add suppression for mmx.
20620
20621 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
20622
20623         * loop.c (loop_optimize): Free all loops_info's mems.
20624
20625         * c-typeck.c (finish_init): Free spelling_base before
20626         setting it again.
20627
20628         * cfgloop.c (flow_loops_find): Always free the sbitmap
20629         headers.
20630
20631         * predict.c (estimate_probability): Free bbs after being
20632         done with it.
20633
20634 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
20635
20636         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
20637         const_8bit_operand and call_address_operand.
20638
20639 2004-01-02  Jan Hubicka  <jh@suse.cz>
20640
20641         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
20642         when there is nothing to inline but warnings are requested.
20643         (cgraph_decide_inlining):  Fix memory leak.
20644
20645 2004-01-02  Jan Hubicka  <jh@suse.cz>
20646
20647         * expr.c (store_constructor):  Fix pasto in previous patch.
20648
20649 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
20650
20651         * config/i386/cygming.h: Fix comment formatting.
20652         * config/i386/djgpp.h: Likewise.
20653         * config/i386/gthr-win32.c: Likewise.
20654         * config/i386/i386-interix.h: Likewise.
20655         * config/i386/i386.c: Likewise.
20656         * config/i386/i386.h: Likewise.
20657         * config/i386/openbsd.h: Likewise.
20658         * config/i386/winnt.c: Likewise.
20659         * config/i386/xm-mingw32.h: Likewise.
20660
20661 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
20662
20663         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
20664         copyright and last modification dates.
20665
20666 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
20667
20668         * doc/install.texi (Specific): Mention x86_64.
20669
20670 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
20671
20672         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
20673         Call force_operand on plus_constant result.
20674
20675 2004-01-01  Jan Hubicka  <jh@suse.cz>
20676
20677         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
20678         * expr.c (store_constructor): Use vec_init pattern.
20679         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
20680         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
20681         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
20682         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
20683         New patterns.
20684         (sse2_unpc?pd): Fix pattern.
20685         (sse2_movlpd): Kill.
20686         (sse2_movsd): Deal with movlpd too.
20687         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
20688         (ix86_expand_vector_init): New.
20689         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
20690         * md.texi (vec_set, vec_extract): Document
20691
20692 2003-12-31  Jan Hubicka  <jh@suse.cz>
20693
20694         PR opt/13473
20695         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
20696         ASM input operands
20697
20698         PR opt/12617
20699         * toplev.c (dump_file_index): Reorder ce3 and bbro.
20700         (dump_file): Likewise.
20701         (rest_of_compilation): Likewise.
20702
20703         PR debug/13367
20704         * cgraph.c (cgraph_function_possibly_inlined):  Even with
20705         flag_really_no_inline we inline always_inline functions.
20706         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
20707         for non-always_inline functions when there is flag_really_no_inline.
20708         (cgraph_decide_inlining): Limit work done when not inlining.
20709         (cgraph_decide_inlining_incrementally): Likewise.
20710         (cgraph_optimize_function): Check whether something got inlined.
20711         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
20712         extern inline functions when not inlining.
20713
20714         * opts.c (decode_options):  Disable crossjumping at -O1
20715         * invoke.texi (-O1): Document change.
20716
20717 See ChangeLog.10 for earlier changes.