OSDN Git Service

* rtl.c (currently_expanding_to_rtl): New.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-07-29  Steven Bosscher  <stevenb@suse.de>
2
3         * rtl.c (currently_expanding_to_rtl): New.
4         * rtl.h (currently_expanding_to_rtl): Export it.
5         * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit.
6
7         * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
8         inliner hack.
9         * config/sh/sh.c: Replace rtx_equal_function_value_matters
10         with currently_expanding_to_rtl.
11         * config/sh/sh.md: Likewise.
12         * config/ia64/ia64.c (got_symbolic_operand): Likewise.
13
14 2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
15
16         Introduce sh2a support.
17         2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
18         * config.gcc: Build multilibs for sh2a and sh2a-single by
19         default.
20         * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
21         default.  Split their tests out of the corresponding SH4
22         multilibs.
23         * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
24         multilibs for SH2a.
25         2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
26         * config.gcc: Handle sh2a multilibs and cpu selection.
27         * config/sh/sh.h: Likewise.  Handle sh2a command line flags.
28         * config/sh/t-mlib-sh2a: New.
29         * config/sh/t-mlib-sh2a-nofpu: New.
30         * config/sh/t-mlib-sh2a-single: New.
31         * config/sh/t-mlib-sh2a-single-only: New.
32         2004-07-09  Nick Clifton  <nickc@redhat.com>
33         Issue 43400
34         * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if
35         -ml and -m2a are used together.
36         2004-03-23  DJ Delorie  <dj@redhat.com>
37         * config/sh/sh.c (sh_builtin_saveregs): Use the double code only
38         when we have a double-sized FPU.
39         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
40         * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__
41         is set.
42         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu,
43         -msh2a-single and -msh2a-single-only
44         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
45         * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__
46         is set.
47         2004-02-20  DJ Delorie  <dj@delorie.com>
48         * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu.
49         2004-02-20  Fred Fish <fnf@redhat.com>,
50         Corinna Vinschen <vinschen@redhat.com>
51         * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu.
52         (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a.
53         2004-02-18  DJ Delorie  <dj@redhat.com>
54         * config/sh/sh.c (broken_move): Add support for movi20.
55         * config/sh/sh.h: Likewise.
56         (SHIFT_COUNT_TRUNCATED): Set for sh2a.
57         * config/sh/sh.md (udivsi3_sh2a): New.
58         (udivsi3): Call it.
59         (divsi3_sh2a): New.
60         (divsi3): Call it.
61         (mul_r): New.
62         (ashlsi3_sh2a): New.
63         (ashrsi3_sh2a): New.
64         (lshrsi3_sh2a): New.
65         (movsi_i): Disable for sh2a.
66         (movsi_ie): Add movi20.
67         (movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable
68         sh2a, for -m2a-nofpu mode.
69         2004-02-13  DJ Delorie  <dj@redhat.com>
70         * config/sh/lib1funcs.asm: Handle double vs single better.
71         * config/sh/sh.h: Likewise.
72         2004-02-09  DJ Delorie  <dj@redhat.com>
73         * config/sh/crt1.asm: Add support for sh2a.
74         * config/sh/elf.h: Likewise.
75         * config/sh/lib1funcs.asm: Likewise.
76         * config/sh/sh.c: Likewise.
77         * config/sh/sh.md: Likewise.
78         * config/sh/sh.h: Likewise.
79         * config/sh/t-sh: Likewise.
80
81 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
82
83         * config/frv/frv.md (movqi_internal, movhi_internal,
84         movsi_internal): Add backup alternatives for memory inputs.
85
86 2004-07-28  Matt Austern  <austern@apple.com>
87
88         * config/darwin.c (darwin_one_byte_bool): New global variable.
89         * config/darwin.h (darwin_one_byte_bool): Declare.
90         (SUBTARGET_OPTIONS): Define macro.  (for -mone-byte-bool flag.)
91         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on
92         value of darwin_one_byte_bool.
93         * doc/invoke.texi: Document -mone-byte-bool flag.
94         
95 2004-07-28  Eric Christopher  <echristo@redhat.com>
96
97         * c-common.c (c_common_unsafe_for_reeval): Delete.
98         * c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use.
99         * c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case.
100         * calls.c (fix_unsafe_tree): Delete.
101         (expand_call): Delete code which used above.
102         * dojump.c (do_jump): Delete UNSAVE_EXPR case.
103         * expr.c (expand_expr_real_1): Ditto.
104         * fold-const.c (non_lvalue): Ditto.
105         * langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
106         (lhd_unsafe_for_reeval): Ditto.
107         * langhooks.c (lhd_unsafe_for_reeval): Ditto.
108         * langhooks.h (unsafe_for_reeval): Ditto.
109         (unsave_expr_now): Adjust comment.
110         * tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits.
111         (estimate_num_insns_1): Ditto.
112         * tree-pretty-print.c (dump_generic_node): Ditto.
113         * tree.c (expr_align): Ditto.
114         (unsave_expr): Delete.
115         (unsafe_for_reeval): Ditto.
116         * tree.h (unsafe_for_reeval, unsave_expr): Ditto.
117         * tree.def (UNSAVE_EXPR): Delete.
118         * objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
119
120 2004-07-28  Zack Weinberg  <zack@codesourcery.com>
121
122         * tree.h (enum tls_model): Move ...
123         * coretypes.h: ... here.
124
125 2004-07-28  Richard Sandiford <rsandifo@redhat.com>
126
127         * config/frv/frv.h (EPILOGUE_USES): New.  Use LR.
128
129 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
130
131         * cse.c (validate_canon_reg): New function, split out from...
132         (canon_reg): ...here.  Use validate_canon_reg for both 'e' and 'E'.
133
134 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
135
136         * tree-ssa-alias.c (maybe_create_global_var): Don't just
137         return if .GLOBAL_VAR has been created.
138
139 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
140
141         * tree-ssa.c (verify_flow_insensitive_alias_info): Process
142         every variable that may have aliases, not just tags.
143
144 2004-07-28  Aldy Hernandez  <aldyh@redhat.com>
145
146         * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to
147         move_from_CR_eq_bit.
148         Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ.
149
150
151         * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
152         e500_flip_eq_bit.
153
154         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
155         output_e500_flip_eq_bit.
156
157         * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to
158         output_e500_flip_eq_bit.
159         (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to
160         output_e500_flip_eq_bit.
161         Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit.
162         (print_operand): case D.  Get to EQ bit.
163
164 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
165
166         * gcov.c (function_summary): Add missing \n.
167
168 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
169
170         Introduce sh4a support.
171         * config.gcc: Handle sh4a multilibs and cpu selection.
172         * config/sh/sh.h: Likewise.  Handle sh4a command line flags.
173         * config/sh/t-mlib-sh4a: New.
174         * config/sh/t-mlib-sh4al: New.
175         * config/sh/t-mlib-sh4a-nofpu: New.
176         * config/sh/t-mlib-sh4a-single: New.
177         * config/sh/t-mlib-sh4a-single-only: New.
178         2004-02-20  DJ Delorie  <dj@redhat.com>
179         * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua".
180         * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support.
181         2003-08-22  Eric Christopher  <echristo@redhat.com>
182         * config/sh/sh4a.md: Update for chip errata.
183         2003-08-07  Eric Christopher  <echristo@redhat.com>
184         * config/sh/sh4a.md: New file. sh4a processor description.
185         2003-07-08  Alexandre Oliva  <aoliva@redhat.com>
186         * config/sh/sh.h (TARGET_SWITCHES): Added 4al.  Adjust description
187         of -m4a-nofpu.
188         (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu.
189         * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu.
190         * doc/invoke.texi (SH Options): Document -m4al.
191         2003-07-03  Alexandre Oliva  <aoliva@redhat.com>
192         * config/sh/sh.c (expand_block_move): Remove commented-out code
193         checked in by mistake.
194         (sh_cannot_change_mode_class): Enable SUBREGs to be used to select
195         single elements from SFmode vectors.
196         * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output
197         register.
198         (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER.
199         2003-07-01  Alexandre Oliva  <aoliva@redhat.com>
200         * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int,
201         sh_fsca_int2sf): Remove variable declarations.
202         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
203         sh_fsca_int2sf): New functions.
204         (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx,
205         sh_fsca_int2sf_rtx): New static variables.
206         * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int,
207         sh_fsca_int2sf): Declare.
208         * config/sh/sh.md: Adjust.
209         * doc/invoke.texi (SH Options): Document new options.
210         * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward
211         compatibility from SH4 code.
212         2003-06-27  Alexandre Oliva  <aoliva@redhat.com>
213         * config/sh/sh.c (expand_block_move): Don't emit POST_INC too
214         early.
215         (memory_movsrc_operand): Renamed to...
216         (unaligned_load_operand): ... this.  Simplified.
217         * config/sh/sh.h (PREDICATE_CODES): Adjust.
218         * config/sh/sh.md (movua, extv, extzv): Likewise.  Change movua's
219         input operand to SImode, and adjust the others.  Introduce
220         post-increment by peephole.
221         * config/sh/sh.c (expand_block_move): Give the target address the
222         same mode as the temp reg.
223         * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned
224         copying.
225         2003-06-26  Alexandre Oliva  <aoliva@redhat.com>
226         Introduce support for SH4a.
227         * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if
228         __SH4A__.  Emit 4 4kb blocks and touch all of them otherwise.
229         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
230         sh_fsca_int2sf): New.
231         (sh_init_builtins): Initialize them.
232         (print_operand): Support `d'.
233         (expand_block_move): Use movua if src is misaligned.
234         (memory_movsrc_operand): New.
235         * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__
236         and one of the SH4 macros.
237         (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP,
238         SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A,
239         SELECT_SH4A_SINGLE): New.
240         (TARGET_NONE): Add SH4A_BIT.
241         (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a.
242         (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu.
243         (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare.
244         (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate.
245         (enum processor_type): Added PROCESSOR_SH4A.
246         (PREDICATE_CODES): Add memory_movsrc_operand.
247         * config/sh/sh.md: Removed unused variables.
248         (attr cpu): Add sh4a.
249         (attr type): Add movua, fsrra and fsca.
250         (prefetch): New, for SH4.
251         (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi.
252         (toggle_sz): Set type to fp.
253         (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New.
254         (movua, extv, extzv): New.
255         * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single
256         and 4a-single-only.
257
258 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
259
260         * tree-optimize.c (init_tree_optimization_passes): Schedule
261         pass_may_alias right after the program is renamed into SSA.
262         * tree-pass.h (PROP_alias): Define.
263         * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias.
264         * tree-sra.c (pass_sra): Likewise.
265         * tree-ssa-ccp.c (pass_ccp): Likewise.
266         * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise.
267         * tree-ssa-dce.c (pass_dce): Likewise.
268         * tree-ssa-dom.c (pass_dominator): Likewise.
269         * tree-ssa-dse.c (pass_dse): Likewise.
270         * tree-ssa-forwprop.c (pass_forwprop): Likewise.
271         * tree-ssa-loop-ch.c (pass_ch): Likewise.
272         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
273         * tree-ssa-pre.c (pass_pre): Likewise.
274         * tree-tailcall.c (pass_tail_recursion): Likewise.
275         * tree-ssa.c (pass_redundant_phi): Likewise.
276         * tree-ssa-alias.c (aliases_computed_p): Remove.
277         Update all users.
278         (init_alias_info): Do not mark all type tags for renaming
279         unconditionally.
280         Clear may_aliases from every symbol.
281         (setup_pointers_and_addressables): If a pointer has not been
282         dereferenced and it had a type tag, clear it and mark the old
283         tag for renaming.
284
285 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
286
287         PR tree-optimization/16705
288         * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on
289         .GLOBAL_VAR.
290
291 2004-07-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
292
293         * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error
294         check.
295
296         * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR,
297         don't make another one.
298
299         PR optimization/15077
300         * function.h (struct function): Add field saved_static_chain_decl.
301         Fix comment for static_chain_decl.
302         * tree-inline.c (save_body): Add new arg and handle static_chain_decl.
303         * tree-inline.h (save_body): Add new arg.
304         * tree-optimize.c (tree_rest_of_compilation): Handle saving
305         static_chain_decl.
306
307 2004-07-27  Richard Henderson  <rth@redhat.com>
308
309         * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove.
310         (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use
311         is_gimple_addressable.
312         * tree-gimple.c (is_gimple_addressable): Rename from
313         is_gimple_addr_expr_arg; accept INDIRECT_REF.
314         (is_gimple_lvalue): Don't test INDIRECT_REF directly.
315         * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for
316         rename to is_gimple_addressable.
317
318 2004-07-28  Alan Modra  <amodra@bigpond.net.au>
319
320         * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards.
321
322 2004-07-27  Richard Henderson  <rth@redhat.com>
323
324         * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
325         before rounding.
326
327 2004-07-27  Zack Weinberg  <zack@codesourcery.com>
328
329         * libgcc2.c: Change all conditionals testing
330         LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
331         * libgcc2.h: Likewise.
332         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set
333         TYPE_PRECISION of float80_type to 80.
334         * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION
335         of fpreg_type and float80_type to 80.
336         * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h
337         * config/m68k/netbsd-elf.h:
338         Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE
339         to evaluate to 80 whenever they would formerly have evaluated to 96.
340         * config/i386/sco5.h: Remove unnecessary redefinition of
341         LONG_DOUBLE_TYPE_SIZE.
342         * doc/rtl.texi: Clarify uses of XFmode and TFmode.
343         * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for
344         XFmode, with a bitsize of 80.  Update commentary.
345         * config/ia64/ia64-modes.def: Likewise.
346         * config/m68k/m68k-modes.def: Likewise.
347
348 2004-07-27  Steven Bosscher  <stevenb@suse.de>
349
350         * cfgexpand.c (tree_expand_cfg): Fix comment.
351
352         * calls.c (expand_call): Ignore rtx_equal_function_value_matters.
353         * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets):
354         Remove.
355         (prepare_function_start): Don't set rtx_equal_function_value_matters.
356         * integrate.c (copy_rtx_and_substitute): Don't test for it.
357         * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets.
358         Don't set rtx_equal_function_value_matters.  Don't register RTL hooks
359         here again.  Update leading comment.
360         * rtl.c (rtx_equal_function_value_matters): Remove.
361         (rtx_equal_p): Don't test for it.
362         * simplify-rtx.c (simplify_binary_operation, simplify_subreg):
363         Likewise.
364
365         * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND.
366         * rtl.c (note_insn_name): Likewise.
367         * emit-rtl.c (remove_unnecessary_notes): Don't handle it.
368         * final.c (final_scan_insn): Likewise.
369
370         * except.c (finish_eh_generation): Don't call cfg_cleanup from here.
371         * passes.c (rest_of_handle_eh): Do it here.
372
373         * stmt.c (struct nesting): Remove struct nesting block member.
374         (struct stmt_status): Remove x_block_start_count field.
375         (current_block_start_count): Remove.
376
377 2004-07-27  Brian Booth  <bbooth@redhat.com>
378
379         * tree-optimize.c (register_one_dump_file): Update condition that uses
380         static_pass_number.
381         (dup_pass_1): Replace with...
382         (next_pass_1): This.
383         (NEXT_PASS): Call next_pass_1.
384         (DUP_PASS): Remove.
385         (init_tree_optimization_passes): Remove uses of DUP_PASS.
386         (execute_one_pass): Update condition that uses
387         static_pass_number.
388         * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed
389         integer.
390
391 2004-07-27  Nick Clifton  <nickc@redhat.com>
392
393         * config/m32r/m32r.c: Include integrate.h in order to get the
394         prototype for get_hard_reg_initial_val().
395
396         * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r"
397         and tidy up indentation.
398         (final_presence_set): Use absence_set instead, so that if there is
399         nothing in the "o" pipe the "s" pipe can be scheduled.
400
401 2004-07-27  Diego Novillo  <dnovillo@redhat.com>
402
403         * tree-ssa-alias.c (create_name_tags): Ignore pointers that
404         don't have PT_VARS nor PT_MALLOC set.
405         Clear name tag from pointers that have not been dereferenced.
406         (set_pt_anything, set_pt_malloc): Forward declare.
407         * tree-ssa-copy.c (may_propagate_copy): Compare alias sets,
408         not type compatibility when determining if a pointer can be
409         copy propagated.
410
411 2004-07-27  Richard Sandiford  <rsandifo@redhat.com>
412
413         * expr.h (canonicalize_condition, get_condition): Add an int argument.
414         * gcse.c (fis_get_condition): Reimplement using get_condition, leaving
415         it to check whether the condition is still valid at the jump insn.
416         * ifcvt.c (noce_get_condition): Likewise.
417         (noce_get_alt_condition): Update call to canonicalize_condition.
418         * loop-iv.c (simplify_using_initial_values): Update call to
419         get_condition.  Remove FIXME.
420         (check_simple_exit): Update call to get_condition.
421         * loop-unswitch.c (may_unswitch_on): Likewise.
422         * loop.c (check_dbra_loop): Likewise.
423         (canonicalize_condition, get_condition): Add an argument to say whether
424         the condition must still be valid at INSN.
425         (get_condition_for_loop): Update call to get_condition.  Require that
426         the condition be valid at INSN.
427         * predict.c (estimate_probability): Update call to get_condition.
428         Remove unused earliest parameter.
429         (expected_value_to_br_prob): Update call to canonicalize_condition.
430
431 2004-07-26  Eric Christopher  <echristo@redhat.com>
432
433         * tree-dfa.c (add_referenced_var): Register initializers of global
434         variables.
435
436 2004-07-26  Paolo Bonzini  <bonzini@gnu.org>
437
438         * config/i386/i386.c (function_arg): Always treat 8-
439         and 16-byte wide vectors the same, even if MMX/SSE
440         are disabled.
441         (contains_128bit_aligned_vector_p): Add comment.
442
443 2004-07-26  J"orn Rennecke <joern.rennecke@superh.com>
444
445         * ra.h (enum node_type): Rename to:
446         (enum ra_node_type).
447         * ra-colorize.c: Likewise.
448
449 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
450
451         * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag
452         after simplifying the jump.
453
454 2004-06-26  Richard Henderson  <rth@redhat.com>
455
456         * calls.c (combine_pending_stack_adjustment_and_call): Make
457         preferred_unit_stack_boundary argument unsigned.  Make
458         unadjusted_alignment unsigned.
459         (expand_call): Make preferred_stack_boundary and
460         preferred_unit_stack_boundary variables unsigned.
461         * function.c (assign_stack_local_1): Make alignment unsigned.
462         * function.h (struct function): Make stack_alignment_needed,
463         preferred_stack_boundary unsigned.
464         * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned.
465         (ix86_compute_frame_layout): Make stack_alignment_needed,
466         preferred_alignment variables unsigned.
467         * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned.
468
469 2004-07-26  Tom Tromey  <tromey@redhat.com>
470
471         * tree.h: Fix typo in comment.
472
473 2004-07-26  Daniel Jacobowitz  <dan@debian.org>
474
475         PR bootstrap/12804
476         * ggc-zone.c (struct alloc_chunk): Remove attribute packed.
477         (MAX_FREE_BIN_SIZE): Increase on 64-bit targets.
478         (ggc_free): Remove incorrect freeing.
479         (sweep_pages): Advance PP for large pages.  Fix indentation.
480
481 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
482
483         PR rtl-optimization/16643
484         * cfglayout.h (cfg_layout_initialize): Add a flags parameter.
485         * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
486         * basic-block.h (reorder_basic_blocks): Add a flags parameter.
487         * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
488         (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
489         * function.c (thread_prologue_and_epilogue_insns): Likewise.
490         * rtl.h (tracer): Add a flags parameter.
491         * tracer.c (tracer): Pass it to cfg_layout_initialise.
492         * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
493         (rest_of_handle_reorder_blocks): Update calls to tracer and
494         reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
495         (rest_of_handle_tracer): Pass 0 to tracer.
496         (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.
497
498 2004-07-25  David Edelsohn  <edelsohn@gnu.org>
499
500         PR target/16239
501         * config/rs6000/rs6000.md (movdi_internal64): Further disparage
502         f->f.
503
504 2004-07-24  Nathan Sidwell  <nathan@codesourcery.com>
505
506         * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree).
507         (BINFO_BASE_ACCESS): Adjust.
508         (BINFO_BASE_ACCESS_APPEND): New.
509         (struct tree_binfo): Make base_accesses a VEC(tree) pointer.
510         * dbxout.c (dbxout_type): Adjust binfo access accessing.
511         * dwarf2out.c (gen_member_die): Likewise.
512         * tree-dump.c (deque_and_dump): Likewise.
513
514 2004-07-26  Falk Hueffner  <falk@debian.org>
515
516         * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div
517         costs.
518
519 2004-07-25  Roger Sayle  <roger@eyesopen.com>
520
521         * config/i386/i386.c (output_fp_compare): Use ffreep to pop top
522         value off of the stack if TARGET_USE_FFREEP.
523
524 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
525
526         * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC ().
527         * gengtype-yacc.y: Likewise.  Replace free() with XDELETE ().
528         * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer
529         check on invocation of XRESIZEVEC ().
530
531 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
532
533         * c-common.c (disable_builtin_function): Rename variable n to
534         new_disabled_builtin.
535         * c-decl.c (duplicate_decls): Rename parameter decl to new_decl.
536         Rename local variable old to old_decl.
537         * gensupport.c (shift_output_template): Rename parameter old to src.
538         * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to
539         old_rtx and newx to new_rtx.
540
541 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
542
543         * Makefile.in (C_PRAGMA_H): New variable to track dependencies
544         of c-pragma.h.
545         * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to
546         enum cpp_ttype.
547         * c-lex.c: Likewise.
548
549 2004-07-25  Roger Sayle  <roger@eyesopen.com>
550
551         * fold-const.c (constant_boolean_node): Make extern.
552         (make_range): Wrap long lines.
553         (fold_cond_expr_with_comparison): Remove unnecessary call to
554         pedantic_non_lvalue.  Add missing calls to fold_convert.
555         (fold_truthop): Add missing calls to fold_convert.
556         (fold): Likewise.
557         * tree.h (constant_boolean_node): Add prototype here.
558         * builtins.c (expand_builtin_strncmp): Add missing calls to
559         fold_convert.
560         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
561         Call fold_convert and constant_boolean_node to correct types.
562         * tree-ssa-forwprop.c (substitute_single_use_vars): Add
563         missing call to fold_convert to correct types.
564
565 2004-07-26  Niall Douglas  <s_fsfeurope2@nedprod.com>
566             Brian Ryner  <bryner@brianryner.com>
567
568         PR c++/9283
569         PR c++/15000
570         * c-common.c (c_common_attribute_table): Allow
571         handle_visibility_attribute to be called for types.
572         (handle_visibility_attribute) When given a type, set the visibility
573         bits on the TYPE_NAME.  When given a decl, don't set no_add_attrs
574         so that we can check later whether the attribute was present. Added
575         warning if attribute applied to non class type.
576         * c-decl.c (diagnose_mismatched_decls): Updated rules for merging
577         decls and checking that they are consistent.
578         * common.opt: Added -fvisibility.
579         * c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
580         * c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
581         * flags.h, tree.h: Added assorted support defines for overall patch
582         * opts.c: Added parsing support for -fvisibility.
583         * tree.c (build_decl): Set visibility for all decls to be whatever
584         is in force at that time.
585         * varasm.c (default_binds_local_p_1): Reworked logic determining
586         when to make a symbol locally bound.
587         * doc/invoke.texi: Added documentation for -fvisibility and
588         -fvisibility-inlines-hidden.
589
590 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
591
592         * basic-block.h (reorder_block_def): Rename to reorder_block_def_p.
593         * c-common.c: Add missing casts from void * to other types.
594         * c-decl.c: Likewise.
595         * c-format.c: Likewise.
596         * c-lex.c: Likewise.
597         * c-pragma.c: Likewise.
598         * c-typeck.c: Likewise.
599         * defaults.h: Likewise.
600         * genconstants.c: Likewise.
601         * gengtype-lex.l: Likewise.
602         * genmodes.c: Likewise.
603         * read-rtl.c: Likewise.
604         * rtl.c: Likewise.
605
606 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
607
608         * bitmap.c: Use type-safe memory allocation macros from libiberty.
609         * c-common.c: Likewise.
610         * c-decl.c: Likewise.
611         * c-lang.c: Likewise.
612         * c-lex.c: Likewise.
613         * c-opts.c: Likewise.
614         * c-parse.in: Likewise.
615         * c-typeck.c: Likewise.
616         * genconditions.c: Likewise.
617         * gengtype-lex.l: Likewise.
618         * gengtype-yacc.y: Likewise.
619         * gengtype.c: Likewise.
620         * genmodes.c: Likewise.
621         * gensupport.c: Likewise.
622         * read-rtl.c: Likewise.
623         * read-rtl.c (read_constants): Use INSERT instead of TRUE in call to
624         htab_find_slot().
625
626 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
627
628         * c-decl.c (groktypename, groktypename_in_param_context): Rename
629         variable typename to type_name.
630         * c-lex.c (interpret_float): Likewise.
631
632 2004-07-25  Roger Sayle  <roger@eyesopen.com>
633
634         * convert.c (convert_to_real, convert_to_integer,
635         convert_to_complex): Replace calls to build with calls to buildN.
636         * coverage.c (tree_coverage_counter_ref): Likewise.
637         * dojump.c (do_jump): Likewise.
638         * dwarf2out.c (loc_descriptor_from_tree): Likewise.
639         * emit-rtl.c (component_ref_for_mem_expr,
640         set_mem_attributes_minus_bitpos): Likewise.
641         * explow.c (update_nonlocal_goto_save_area): Likewise.
642         * expmed.c (expand_shift, make_tree, const_mult_add_overflow_p,
643         expand_mult_add): Likewise.
644         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall,
645         store_constructor, get_inner_reference, expand_expr_real_1,
646         try_casesi, try_tablejump): Likewise.
647         * function.c (expand_function_start): Likewise.
648         * stmt.c (emit_case_bit_tests, expand_end_case_type,
649         node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise.
650         * stor-layout.c (place_union_field, layout_type): Likewise.
651         * tree.c (substitute_in_expr, tree_fold_gcd): Likewise.
652         * varasm.c (copy_constant): Likewise.
653
654 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
655
656         * c-common.c: Rename all identifiers named `new'.
657         * c-decl.c: Likewise.
658         * gensupport.c: Likewise.
659         * simplify-rtx.c: Likewise.
660         * c-common.c (disable_builtin_function): Replace a call to xmalloc()
661         with XNEW().
662         * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc()
663         with XNEWVEC().
664
665 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
666
667         PR c/15360
668         * c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized
669         declarations until after calling pushdecl.
670         (grokdeclarator): Set DECL_EXTERNAL for variables based on use of
671         "extern" and not on whether the declaration is initialized.
672
673 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
674
675         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
676         (sparc-*-solaris2*): Include sol2.o and sol2-protos.h.
677         * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h",
678         "cpplib.h", "c-pragma.h", "c-common.h".
679         (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini)
680         (solaris_register_pragmas): New functions.
681         * config/sol2-protos.h: New file.
682         * config/sol2.c: New file.
683         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE)
684         (REGISTER_TARGET_PRAGMAS): New macros.
685         (solaris_pending_aligns, solaris_pending_inits)
686         (solaris_pending_finis): New variables.
687         * config/t-sol2 (sol2-c.o): Update dependencies.
688         (sol2.o): New rule.
689         * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of
690         SUBTARGET_INSERT_ATTRIBUTES.
691         (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE.
692         * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
693         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
694         * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
695         * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
696         * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
697         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
698         * config/sparc/sparc.c (sparc_attribute_table): New.
699         (TARGET_INSERT_ATTRIBUTES): Define in terms of
700         SUBTARGET_INSERT_ATTRIBUTES.
701         (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE
702         is defined.
703         * doc/extend.texi (Solaris Pragmas): New section.
704
705 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
706
707         * c-common.c: Rename all identifiers named `class' to `cl'.
708         * c-common.h: Likewise.
709         * c-parse.in: Likewise.
710         * c-typeck.c: Likewise.
711         * genmodes.c: Likewise.
712         * real.c: Likewise.
713         * real.h: Likewise.
714         * recog.c: Likewise.
715         * recog.h: Likewise.
716         * regrename.c: Likewise.
717         * tree.h: Likewise.
718         * c-common.c (builtin_function_2): Change type of 5th parameter from
719         int to enum built_in_function. Change type of 8th parameter from int
720         to bool.
721         * c-decl (builtin_function): Replace call to ggc_alloc_cleared ()
722         with GGC_CNEW().
723         * c-typeck.c (convert_arguments): Change type of formal_prec from
724         int to unsigned int.
725         * genmodes.c (blank_mode): Make a few negative constants unsigned.
726         (complete_all_modes, calc_wider_mode, emit_insn_modes_h,
727         emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size,
728         emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner,
729         emit_mode_base_align, emit_class_narrowest_mode): Pass an integer
730         iterator to for_all_modes () instead of an enum because enums can't
731         be incremented in C++.
732
733
734 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
735
736         * regmove.c (optimize_reg_copy_1): Don't try to replace call-used
737         hard registers.
738
739 2004-07-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
740
741         * tree-ssa-operands.c (get_stmt_operands, get_expr_operands):
742         Handle ARRAY_RANGE_REF like ARRAY_REF.
743
744 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
745
746         * c-typeck.c (digest_init): Don't allow arrays of signed or
747         unsigned variants of wchar_t to be initialized by wide string
748         constants.  Do allow arrays of enumerated types compatible with
749         wchar_t to be initialized by wide string constants.  Refine tests
750         distinguishing wide and narrow strings and arrays.  Give specific
751         error for arrays of other integer types initialized by string
752         constants.
753         (output_init_element, process_init_element): Check for
754         INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when
755         initializing with string constants.
756
757 2004-07-25  Richard Henderson  <rth@redhat.com>
758
759         * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
760         on the RESULT_DECL.
761         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
762         * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
763         DECL_IGNORED_P to new decl.
764
765 2004-07-24  Zack Weinberg  <zack@codesourcery.com>
766
767         * config/ia64/ia64.c (general_xfmode_operand)
768         (destination_xfmode_operand): Delete.
769         * config/ia64/ia64.h (PREDICATE_CODES): Remove them.
770         * config/ia64/ia64.md (*movxf_internal): Use general_operand
771         and destination_operand.
772
773 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
774
775         * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing.
776         (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS.
777
778 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
779             Zack Weinberg  <zack@codesourcery.com
780
781         PR 16684
782         * c-decl.c (diagnose_mismatched_decls): Don't issue a
783         redundant-declaration warning the first time a builtin is
784         declared explicitly.
785
786 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
787
788         * tree.h (staticp): Change return type to bool.
789
790 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
791
792         * c-common.c (c_staticp): Last episode of the staticp saga.
793
794 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
795
796         * c-common.h (c_staticp): Change return type from int to bool.
797         * tree.c (staticp): Likewise.
798         * langhooks.h (staticp): Likewise.
799
800 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
801
802         * langhooks-def.h (lhd_staticp): Change return type from int to
803         bool in prototype to match definition.
804
805 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
806
807         * system.h (bool, true, false): Don't redefine as preprocessor macros
808         in C++.
809
810 2004-07-24  Roger Sayle  <roger@eyesopen.com>
811
812         * expmed.c (init_expmed): A signed modulus by a power of two is
813         considered cheap if its less than or equal to four instructions.
814
815 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
816
817         * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR,
818         GGC_CNEWVAR): New macros.
819
820 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
821
822         * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter
823         lists.
824         * c-decl.c: Likewise.
825         * c-format.c: Likewise.
826         * c-lex.c: Likewise.
827         * c-opts.c: Likewise.
828         * c-pragma.c: Likewise.
829         * c-typeck.c: Likewise.
830         * gencheck.c: Likewise.
831         * genconditions.c: Likewise.
832         * genconfig.c: Likewise.
833         * genflags.c: Likewise.
834         * gengtype.c: Likewise.
835         * gensupport.c: Likewise.
836         * ggc-none.c: Likewise.
837         * langhooks.c: Likewise.
838         * statistics.h: Likewise.
839         * stub-objc.c: Likewise.
840         * java/decl.c: Likewise.
841
842 2004-07-24  Roman Zippel  <zippel@linux-m68k.org>
843
844         * config/m68k/m68k.c (output_scc_di): Fix coding style.
845         (symbolic_operand): Fix prototype.
846         * config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand.
847         * config/m68k/m68k.md: Add constants for registers a0 and sp and
848         use them, change from the "{...}" syntax to the simpler {...}
849         syntax.
850         (*cfv4_extendqisi2): Fix destination predicate.
851         * config/m68k/m68k-protos.h: Remove various declarations also
852         generated via PREDICATE_CODES.
853
854 2004-07-23  Mike Stump  <mrs@apple.com>
855
856         * c-typeck.c (convert_for_assignment): Tightened up pointer
857         converstions that differ in signedness.
858
859 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
860
861         * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED.
862
863 2004-07-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
864
865         * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'.
866         * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New.
867
868         * gimplify.c (gimplify_compound_lval): Check for no handled
869         operations, rather than checking for explicit list of nodes.
870         (is_gimple_addr_expr_arg_or_indirect): New function.
871         (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove
872         redundant setting of TREE_INVARIANT.
873         (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval.
874         * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p.
875
876 2004-07-23  Diego Novillo  <dnovillo@redhat.com>
877
878         PR tree-optimization/16688
879         PR tree-optimization/16689
880         * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
881         unnecessary initialization of 'tag'.
882         (get_tmt_for): Check that the new type tag has the same alias
883         set as the pointed-to type.
884         (group_aliases): Only regular variables need to be removed
885         from the alias set of a name tag.
886         * tree-ssa-copy.c (may_propagate_copy): Do not allow copy
887         propagation if the two types are not compatible.
888         (merge_alias_info): Rename from replace_ssa_names_ann.
889         Add more checking.
890         (replace_exp_1): If both arguments are SSA_NAMEs, check that
891         the propagation can be done.
892         Only call merge_alias_info on pointers.
893         (propagate_value): Likewise.
894         * tree-ssa-copyrename.c: Include langhooks.h.
895         (copy_rename_partition_coalesce): Call replace_ssa_name_symbol
896         to do the merging.
897         Do not coalesce variables with incompatible types.
898         (rename_ssa_copies): Call replace_ssa_name_symbol.
899         * tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has
900         the same type as the underlying _DECL.
901         * tree-ssanames.c (replace_ssa_name_symbol): New function.
902         * tree.h (replace_ssa_name_symbol): Declare.
903
904 2004-07-23  Richard Henderson  <rth@redhat.com>
905
906         PR c++/16277
907         * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval;
908         unshare it properly.
909         (gimplify_modify_expr_rhs): Push assignment from a conditional into
910         the conditional for all non-register types.
911
912 2004-07-23  Richard Henderson  <rth@redhat.com>
913
914         * expr.c (expand_expr_real_1): Don't handle non-local variables.
915         * expr.h (fix_lexical_addr): Remove.
916         * function.c (NEED_SEPARATE_AP): Remove.
917         (fix_lexical_addr): Remove.
918         * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC,
919         not null decl_function_context.
920         (create_alias_vars): Likewise.
921         * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels.
922         (simple_goto_p): Likewise.
923         * tree-dfa.c (add_referenced_var): Don't check for non-local variables.
924         * tree-ssa-ccp.c (get_default_value): Likewise.
925         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
926         * tree.c (needs_to_live_in_memory): Likewise.
927         * tree-flow-inline.h (may_be_aliased): Move...
928         * tree-ssa-alias.c (may_be_aliased): ... here.  Enhance check for
929         when TREE_STATIC variables may be addressable.
930
931 2004-07-24  Jakub Jelinek  <jakub@redhat.com>
932
933         * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp.
934
935 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
936
937         * print-rtl.c (print_rtx <case 'b'>): Don't attempt to print
938         bitmap contents if GENERATOR_FILE is defined.
939         * Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o.
940         ($(BUILD_PREFIX_1)bitmap.o): Delete rule.
941
942 2004-07-23  Joseph S. Myers  <jsm@polyomino.org.uk>
943
944         * c-decl.c (start_function): Form composite type of function types
945         rather than copying type from previous prototype declaration.
946
947 2004-07-23  Janis Johnson  <janis187@us.ibm.com>
948
949         * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove
950         the const qualifier for the second argument in the C++ functions.
951
952         * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use
953         specific pointer types.
954
955         * config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm,
956         vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used
957         for vector bool and/or vector pixel, add C++ and C missing support.
958         (vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh,
959         vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh,
960         vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum,
961         vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws,
962         vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add
963         missing C++ and C support for vector bool and/or vector pixel.
964         (vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw,
965         vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw,
966         vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw,
967         vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub,
968         vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix
969         C++ and C types used for vector bool and/or vector pixel.
970         (vec_st, vec_stl): Add C++ support for vector pixel.
971         (vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool.
972         (vec_all_ne): Add C++ support for vector pixel.
973
974         * config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name.
975         (vec_vmulesb): Add missing C++ function.
976         (vec_perm): Fix type of third argument in C++ function.
977         (vec_vsum4shs): Fix C++ function name.
978         (vec_any_ge): Remove C++ functions for unsupported arg combinations.
979         (vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the
980         argument passed to the error handler in C macro.
981         (vec_nmsub): Remove extra parens around argument names in C macro.
982         (vec_packpx): Add missing parens in C macro.
983
984 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
985
986         * machmode.def: Remove vector modes.
987         * config/alpha/alpha-modes.def: Add supported vector modes.
988         * config/arm/arm-modes.def: Likewise.
989         * config/frv/frv-modes.def: Likewise.
990         * config/i386/i386-modes.def: Likewise.
991         * config/rs6000/rs6000-modes.def: Likewise.
992         * config/sh/sh-modes.def: Likewise.
993
994 2004-07-23  Matthias Klose  <doko@debian.org>
995
996         * intl.c (gcc_init_libintl): Use PACKAGE for the text domain.
997         * configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE.
998         * config.h: Regenerate.
999         * configure: Likewise.
1000
1001 2004-07-22  Mark Mitchell  <mark@codesourcery.com>
1002
1003         * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on
1004         generated SYMBOL_REFs for labels.
1005         * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr):
1006         Change prototype.
1007         (machopic_stub_name): Remove.
1008         (machopic_indirection_name): New function.
1009         (machopic_mcount_stub_name): Likewise.
1010         (machopic_classify_name): Remove.
1011         (machopic_function_base_sym): New function.
1012         (machpoic_classify_symbol): Likewise.
1013         (machopic_classify_ident): Remove.
1014         (machopic_define_ident): Likewise.
1015         (machopic_define_name): Likewise.
1016         (machopic_name_defined_p): Likewise.
1017         (machopic_ident_defined_p): Likewise.
1018         (darwin_strip_name_encoding): Likewise.
1019         (machopic_define_symbol): New function.
1020         * config/darwin.c (hashtab.h): Include.
1021         (machopic_defined_list): Remove.
1022         (machopic_classify_ident): Likewise.
1023         (machopic_classify_name): Likewise.
1024         (machopic_ident_defined_p): Likewise.
1025         (machopic_define_ident): Likewise.
1026         (machopic_define_name): Likewise.
1027         (machopic_symbol_defined_p): New function.
1028         (machopic_classify_symbol): Likewise.
1029         (machopic_data_defined_p): Use machopic_classify_symbol.
1030         (machopic_define_symbol): New function.
1031         (machopic_function_base_sym): New function.
1032         (machopic_non_lazy_pointers): Remove.
1033         (machopic_non_lazy_ptr_name): Likewise.
1034         (machopic_stubs): Likewise.
1035         (machopic_stub_name): Likewise.
1036         (NON_LAZY_POINTER_SUFFIX): New macro.
1037         (STUB_SUFFIX): Likewise.
1038         (machopic_indirection): New structure.
1039         (machopic_indirections): New variable.
1040         (machopic_indirection_hash): New function.
1041         (machopic_indirection_eq): Likewise.
1042         (machopic_indirection_name): Likewise.
1043         (machopic_mcount_stub_name): New function.
1044         (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use
1045         hash table.
1046         (machopic_indirect_data_reference): Rework to use new functions.
1047         (machopic_indirect_call_target): Likewise.
1048         (machopic_legitimize_pic_address): Likewise.
1049         (machopic_output_indirection): New function.
1050         (machopic_finish): Use it.
1051         (machopic_operand_p): Rework to use new functions.
1052         (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS.
1053         (darwin_strip_name_encoding): Remove.
1054         (update_non_lazy_ptrs): Remove.
1055         (update_stubs): Likewise.
1056         (darwin_non_lazy_pcrel): Use new functions.
1057         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise.
1058         (ASM_OUTPUT_LABELREF): Likewise.
1059         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
1060         (MACHO_SYMBOL_FLAG_VARIABLE): New macro.
1061         (MACHO_SYMBOL_FLAG_DEFINED): Likewise.
1062         (TARGET_STRIP_NAME_ENCODING): Do not use
1063         darwin_strip_name_encoding.
1064         (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use
1065         darwin_strip_name_encoding.
1066         * config/i386/darwin.h (FUNCTION_PROFILER): Use
1067         machopic_mcount_stub_name.
1068         * config/i386/i386.c (x86_output_mi_thunk): Use
1069         machopic_indirection_name, not machopic_stub_name.
1070         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use
1071         machopic_function_base_sym.
1072         (print_operand): Use machopic_classify_symbol.
1073         (rs6000_emit_prologue): Use machopic_function_base_sym.
1074         (output_profile_hook): Do not use machopic_stub_name.
1075         (macho_branch_isalnds): Do not use darwin_strip_name_encoding.
1076
1077 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
1078
1079         PR c/7284
1080         * fold-const.c (extract_muldiv_1): Do not treat signed left shift
1081         as multiplication.
1082
1083 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
1084
1085         * doc/implement-c.texi: New file.
1086         * doc/extend.texi (C Implementation): Move to there.
1087         * doc/gcc.texi: Include implement-c.texi.
1088         * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi.
1089
1090 2004-07-22  Jason Merrill  <jason@redhat.com>
1091
1092         * integrate.c (copy_decl_for_inlining): Remove invisible reference
1093         handling.
1094         * tree-inline.c (setup_one_parameter): Likewise.
1095
1096 2004-07-22  Brian Booth  <bbooth@redhat.com>
1097
1098         * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
1099         (substitute_and_fold): Propigate into VUSE operands when possible.
1100         (visit_phi_node): Handle UNKNOWN_VAL latticevalue.
1101         (cp_lattice_meet): Handle merging of latticevalues when
1102         UNKNOWN_VAL is present.
1103         (visit_stmt): Visit assignments with V_MUST_DEFs.
1104         (visit_assignment): Gather ccp information for V_MUST_DEF operands.
1105         (ccp_fold): Deal with RHS' that are constant and virtual.
1106         (evaluate_stmt): Handle UNKNOWN_VAL likely values.
1107         (dump_lattice_value): Dump UNKNOWN_VAL latticevalues.
1108         (initialize): Mark statements with V_MUST_DEFs as VARYING only if the
1109         V_MUST_DEF operand is VARYING. Fix comment and include VOPS when
1110         computing immediate uses.
1111         (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state
1112         transition.
1113         (replace_vuse_in): New function.
1114         (likely_value): Add check of vuse operands.
1115         (get_default_value): Set the default value of virtually defined
1116         variables to UKNOWN_VAL instead of VARYING.
1117
1118 2004-07-22  Richard Henderson  <rth@redhat.com>
1119
1120         * expr.c (emit_push_insn): Don't use set_mem_attributes.
1121
1122 2004-07-22  Richard Henderson  <rth@redhat.com>
1123
1124         * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used
1125         variables due to conditional compilation.
1126
1127 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
1128
1129         * tree-into-ssa.c (set_livein_block): Fix typo in comment.
1130         (rewrite_ssa_into_ssa): Start iterating over SSA names at 1.
1131         Release SSA names that have been re-renamed.
1132         * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the
1133         variable.
1134         * tree-ssa-alias.c (init_alias_info): If aliases have been
1135         computed before, clear existing alias information.
1136         (create_name_tags): Do no fixup PT_ANYTHING pointers.
1137         If the new name tag for a pointer is different than the one it
1138         had before, mark the old tag for renaming.
1139         (replace_may_alias): New function.
1140         (group_aliases): Call it.
1141         (setup_pointers_and_addressables): Always call get_tmt_for.
1142         (maybe_create_global_var): Don't create .GLOBAL_VAR more than
1143         once.
1144         (set_pt_anything): New local function.
1145         (set_pt_malloc): New local function.
1146         (merge_pointed_to_info): Don't merge pointed-to variables from
1147         the original pointer if the destination is pointing to an
1148         unknown location.
1149         (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc.
1150         (add_pointed_to_var): Do not add a variable to the points-to
1151         set if the pointer is already pointing to anywhere.
1152         (collect_points_to_info_r): If the defining statement is a PHI
1153         node, only merge pointed-to information if the argument has
1154         already been visited.
1155         (get_tmt_for): Only create a new tag if the pointer didn't
1156         have one already.
1157         (dump_alias_info): Emit more information.
1158         (dump_points_to_info_for): Likewise.
1159         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't
1160         try to get the annotation of an SSA_NAME.
1161         * tree-ssa-operands.c (add_stmt_operand): Only check for empty
1162         alias sets when checking is enabled.
1163         * tree-ssa-pre.c (need_eh_cleanup): New local variable.
1164         (eliminate): Mark basic blocks that will need
1165         EH information cleaned up.
1166         (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one
1167         predecessor.
1168         Initialize need_eh_cleanup.
1169         (fini_pre): Call tree_purge_all_dead_eh_edges and
1170         cleanup_tree_cfg if needed.
1171         Free need_eh_cleanup.
1172         * tree-ssa.c (verify_ssa_name): New function.
1173         (verify_def): Call it.
1174         Re-arrange to avoid printing too many error messages.
1175         (verify_use): Likewise.
1176         (verify_phi_args): Likewise.
1177         (verify_flow_insensitive_alias_info): New function.
1178         (verify_flow_sensitive_alias_info): New function.
1179         (verify_alias_info): New function.
1180         (verify_ssa): Call verify_alias_info.
1181         Clear TREE_VISITED on all the SSA_NAMEs before scanning the
1182         program.
1183         Re-arrange to avoid printing too many error messages.
1184         * tree-ssanames.c (make_ssa_name): Clear
1185         SSA_NAME_IN_FREE_LIST.
1186         (release_ssa_name): Never release a default definition.
1187         (release_defs): New function.
1188         * tree.h: Declare it.
1189         * tree-ssa-dce.c (remove_dead_stmt): Call it.
1190
1191 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
1192
1193         * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS.
1194         If true, do a depth-first search.  Do a breadht-first search,
1195         otherwise.
1196         (walk_use_def_chains): Add new argument IS_DFS.
1197         Update all users.
1198         * tree-flow.h (walk_use_def_chains): Update prototype.
1199
1200 2004-07-22  Hans-Peter Nilsson  <hp@axis.com>
1201
1202         * config/cris/cris.md: Tweak formatting.
1203         (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi)
1204         (mover2side, moverside, movemside, movei, op3, andu): Replace
1205         live define_peephole:s with define_peephole2 near-equivalents.
1206         Delete the rest.
1207         ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap".  Match all
1208         word-size modes.
1209         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
1210         Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and
1211         "*mov_sidesi_mem" respectively.
1212
1213 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
1214
1215         * tree-cfg.c (gimplify_val): Move from tree-complex.c.
1216         (gimplify_build1): Move from tree-complex.c do_unop.
1217         (gimplify_build2): Move from tree-complex.c do_binop.
1218         (gimplify_build3): New.
1219         * tree-complex.c (gimplify_val, do_unop, do_binop): Remove.
1220         Adjust throughout to call the functions above.
1221         * tree-flow.h: Declare the functions above.
1222         * tree-nested.c (gimplify_val): Rename to...
1223         (tsi_gimplify_val): ... this.
1224
1225         * Makefile.in (tree_complex.o): Update dependencies.
1226         (stor-layout.o): Depend on regs.h.
1227         * c-common.c (handle_vector_size_attribute): Update for
1228         vector types without corresponding vector modes.
1229         * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if
1230         a corresponding vector mode is not available.
1231         * print-tree.c (print_node): Print nunits for vector types
1232         * regclass.c (have_regs_of_mode): New.
1233         (init_reg_sets_1): Initialize it and use it instead
1234         of allocatable_regs_of_mode.
1235         * regs.h (have_regs_of_mode): Declare it.
1236         * stor-layout.c (layout_type): Pick a mode for vector types.
1237         * tree-complex.c (build_word_mode_vector_type, tree_vec_extract,
1238         build_replicated_const, do_unop, do_binop, do_plus_minus,
1239         do_negate, expand_vector_piecewise, expand_vector_parallel,
1240         expand_vector_addition, expand_vector_operations_1,
1241         expand_vector_operations, tree_lower_operations,
1242         pass_lower_vector_ssa, pass_pre_expand): New.
1243         (expand_complex_operations, pass_lower_complex): Remove.
1244         * tree-optimize.c (init_tree_optimization_passes): Adjust
1245         pass ordering for changes in tree-complex.c.
1246         * tree-pass.h: Declare new passes.
1247         * tree.c (finish_vector_type): Remove.
1248         (make_vector_type): New.
1249         (build_vector_type_for_mode, build_vector_type): Rewritten.
1250         * tree.def (VECTOR_TYPE): Document where the number of
1251         subparts is stored.
1252         * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
1253         (make_vector): Remove declaration.
1254
1255 2004-07-21  Richard Henderson  <rth@redhat.com>
1256
1257         * gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE,
1258         TREE_THIS_VOLATILE, may_aliases, or optimization level.
1259         (remove_useless_vars): Dump debugging info.
1260         (expand_used_vars): Move ...
1261         * cfgexpand.c (expand_used_vars): ... here.  Make static.
1262         * tree-flow-inline.h (set_is_used): New.
1263         (set_default_def): Use get_var_ann.
1264         * tree-flow.h: Update decls.
1265         * tree-ssa-live.c (mark_all_vars_used_1, mark_all_vars_used): New.
1266         (create_ssa_var_map): Use it.
1267         * tree-ssa.c (set_is_used): Remove.
1268
1269 2004-07-22  Ben Elliston  <bje@au.ibm.com>
1270
1271         * gdbinit.in: Set a breakpoint on internal_error.
1272
1273 2004-07-21  Richard Henderson  <rth@redhat.com>
1274
1275         * cfgexpand.c (expand_gimple_tailcall): Fix case where we need
1276         to create a new basic block.
1277
1278 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
1279
1280         PR c/15052
1281         * c-decl.c (grokdeclarator): Only pedwarn for qualified void
1282         return type on function definitions.  Move other warnings for
1283         qualified return type to -Wreturn-type.  Do not condition any such
1284         warnings on -pedantic.  Update comments.
1285         (start_function): Only copy function type from previous prototype
1286         declaration if return types are compatible.
1287         * c-typeck.c (function_types_compatible_p): Don't condition
1288         warning for incompatibility of volatile qualifiers on the return
1289         type on -pedantic.  Update comment.
1290         * doc/invoke.texi (-Wreturn-type, -Wextra): Update.
1291
1292 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
1293
1294         * c-typeck.c (set_init_index): Require designator to be of integer
1295         type.
1296
1297 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
1298
1299         PR c/11250
1300         * c-parse.in (init): Change to exprtype.
1301         (primary): Set original_code for STRING to STRING_CST.
1302         Call maybe_warn_string_init for compound literals.
1303         (initdcl, notype_initdcl): Call maybe_warn_string_init.
1304         (initval): Update.
1305         * c-tree.h (maybe_warn_string_init): New.
1306         (pop_init_level, process_init_element): Use struct c_expr.
1307         (struct c_expr): Update comment.
1308         * c-typeck.c (maybe_warn_string_init): New function.
1309         (digest_init): Call it.  Additional parameter strict_string.  All
1310         callers changed.
1311         (output_init_element): Likewise.
1312         (struct constructor_stack): Use struct c_expr for
1313         replacement_value.
1314         (really_start_incremental_init, push_init_level): Update.
1315         (pop_init_level): Update.  Return struct c_expr.
1316         (process_init_level): Update.  Take struct c_expr argument.
1317
1318 2004-07-21  David S. Miller  <davem@nuts.davemloft.net>
1319
1320         * config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous
1321         commit.
1322
1323 2004-07-21  Eric Christopher  <echristo@redhat.com>
1324
1325         * builtins.c (expand_builtin_setjmp_receiver): Fix comment for code
1326         removal.
1327         * c-decl.c (pop_scope): Ditto.
1328         * calls.c (expand_call): Remove call to current_nesting_level,
1329         update comment accordingly. Remove calls to expand_start_target_temps
1330         and expand_end_target_temps.
1331         * cfgexpand.c (construct_init_block): Remove call to
1332         expand_start_bindings_and_block.
1333         (construct_exit_block): Remove call to expand_end_bindings.
1334         * expr.c (safe_from_p): Remove BIND_EXPR handling.
1335         (expand_expr_real_1): Ditto. Fix formatting.
1336         (expand_vars): Delete.
1337         * stmt.c (POPSTACK): Remove block_stack.
1338         (stmt_status): Remove x_block_stack.
1339         (block_stack): Delete.
1340         (expand_start_bindings_and_block): Ditto.
1341         (expand_start_target_temps): Ditto.
1342         (expand_end_target_temps): Ditto.
1343         (current_nesting_level): Ditto.
1344         (warn_about_unused_variables): Ditto.
1345         (expand_end_bindings): Ditto.
1346         * tree.h: Remove declarations for above.
1347
1348 2004-07-21  Steven Bosscher  <stevenb@suse.de>
1349
1350         * rtl.h (insn_note): Remove NOTE_INSN_PREDICTION.
1351         * rtl.c (note_insn_name): Likewise.
1352         * print-rtl.c (print_rtx): Don't print it.
1353         * cfgrtl.h (can_delete_note_p): Don't handle it.
1354         (rtl_delete_block): Likewise.
1355         * passes.c (rest_of_handle_guess_branch_prob): Remove.
1356         (rest_of_compilation): Don't call it.
1357         * predict.c (process_note_predictions, process_note_prediction,
1358         note_prediction_to_br_prob): Remove.
1359         * basic-block.c (note_prediction_to_br_prob): Remove prototype.
1360         * stmt.c (return_prediction): Remove.
1361         (expand_value_return): Don't call it.  Don't add prediction
1362         notes for return statements.
1363
1364 2004-07-21  Josef Zlomek  <zlomekj@suse.cz>
1365
1366         * var-tracking.c (vt_find_locations): Set the in_pending bitmap at
1367         once.
1368
1369 2004-07-21  Paolo Bonzini  <bonzini@gnu.org>
1370
1371         * c-common.c (vector_types_convertible_p): Use vector types'
1372         TYPE_SIZE and TREE_TYPE instead of their mode.
1373         * convert.c (convert_to_integer): Likewise.
1374         (convert_to_vector): Likewise.
1375         * fold-const.c (fold_convert): Likewise.
1376         * varasm.c (output_constant): Likewise.
1377         * expr.c (store_constructor): Split ARRAY_TYPE and VECTOR_TYPE.
1378         Allow a VECTOR_TYPE initializer to be made of several vectors.
1379         For ARRAY_TYPEs and VECTOR_TYPES, simplify a bit the handling
1380         of cleared and need_to_clear, and use fold_convert.
1381         * c-typeck.c (build_binary_op): Do not use RDIV_EXPR for
1382         integer vectors.
1383
1384 2004-07-20  Richard Henderson  <rth@redhat.com>
1385
1386         * cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Split,
1387         (expand_gimple_basic_block): out from here.  Renamed from expand_block.
1388
1389 2004-07-20  David S. Miller  <davem@nuts.davemloft.net>
1390
1391         * config/sparc/sparc.c (sparc_rtx_costs case MULT): Emit
1392         enormous cost if not TARGET_HARD_MUL.
1393
1394 2004-07-20  Andrew Pinski  <apinski@apple.com>
1395
1396         PR target/16557
1397         * config/i386/darwin.h (CC1_SPEC): Move the -g SPECs from ...
1398         (ASM_SPEC): here.
1399
1400 2004-07-21  Paul brook  <paul@codesourcery.com>
1401
1402         * config/arm/arm.c (thumb_expand_prologue): Remove bogus GEN_INT.
1403
1404 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1405
1406         * fold-const.c (operand_equal_p): Temporarily support NULL args.
1407         (operand_equal_p, case ARRAY_REF): Compare args 2 and 3.
1408         (operand_equal_p, case COMPONENT_REF): Likewise, for arg 2.
1409
1410 2004-07-20  Zack Weinberg  <zack@codesourcery.com>
1411
1412         * rtl.h (plus_constant): Delete.
1413         (plus_constant_wide): Rename to plus_constant.
1414         (plus_constant_for_output_wide): Delete vestigial prototype.
1415         (GEN_INT): Remove unnecessary cast.
1416         * tree.h (build_int_2, size_int_type): Delete.
1417         (build_int_2_wide): Rename to build_int_2.
1418         (size_int_wide): Rename to size_int_kind.
1419         (size_int_type_wide): Rename to size_int_type.
1420         (size_int, ssize_int, bitsize_int, sbitsize_int): Use size_int_kind.
1421         Remove unnecessary cast.
1422         * tree.c (build_int_2_wide): Rename build_int_2; update comment.
1423         * explow.c (plus_constant_wide): Rename plus_constant; update comment.
1424         * fold-const.c (size_int_wide): Rename size_int_kind. Use size_int_type.
1425         (size_int_type_wide): Rename size_int_type.
1426         (int_const_binop): Use size_int_type.
1427         * c-lex.c (interpret_integer): Use build_int_2.
1428         * final.c (split_double): Remove unnecessary casts.
1429         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use build_int_2.
1430
1431 2004-07-20  Richard Henderson  <rth@redhat.com>
1432
1433         * gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c.
1434         (gimplify_compound_lval): Use is_gimple_tmp_reg.
1435         * tree-gimple.c (is_gimple_tmp_var): Move from gimplify.c.
1436         (is_gimple_tmp_reg): New.
1437         * tree-gimple.h (is_gimple_tmp_reg): Declare.
1438
1439 2004-07-20  Richard Henderson  <rth@redhat.com>
1440
1441         * tree-pretty-print.c (dump_generic_node): Dump
1442         CALL_EXPR_HAS_RETURN_SLOT_ADDR.
1443
1444 2004-07-20  Frank Ch. Eigler  <fche@redhat.com>
1445
1446         * tree-mudflap.c (mf_set_options_fndecl): New tree.
1447         (mudflap_init): Set it.
1448         (mudflap_register_call): Remove __mf_init call.
1449         (mudflap_finish_file): Emit call to __mf_init here.  Emit a call to
1450         to pass "-ignore-reads" option to libmudflap if needed.
1451
1452 2004-07-20  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
1453
1454         PR c++/14607
1455         * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY): Define.
1456         (MAKE_DECL_ONE_ONLY): Undefine.
1457         * pa-protos.h (som_text_section_asm_op, one_only_readonly_data_section,
1458         readonly_data, one_only_data_section, forget_section): New prototypes.
1459         * pa.c (pa_init_machine_status, som_text_section_asm_op): New
1460         functions.
1461         (pa_select_section): Add one-only (COMDAT) support.
1462         * pa.h (struct machine_function): Define.
1463         * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete.
1464         (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op.
1465         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
1466         ONE_ONLY_TEXT_SECTION_ASM_OP, ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
1467         ONE_ONLY_DATA_SECTION_ASM_OP): New defines.
1468         (EXTRA_SECTIONS): Add in_one_only_readonly_data and in_one_only_data.
1469         (EXTRA_SECTION_FUNCTIONS): Rework to use individual function macros.
1470         (READONLY_DATA_FUNCTION, ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
1471         ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New defines
1472         for EXTRA_SECTION_FUNCTIONS.
1473         * doc/install.texi: Update binutils requirements.
1474
1475 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
1476
1477         * vec.h (VEC_T_length, VEC_T_index, VEC_T_iterate, VEC_T_truncate,
1478         VEC_T_replace, VEC_T_quick_insert, VEC_T_safe_insert,
1479         VEC_T_ordered_remove, VEC_T_unordered_remove): Use unsigned, not
1480         size_t.
1481         (struct VEC): Use unsigned for num and alloc.
1482         * vec.c (struct vec_prefix): Likewise.
1483         (vec_o_reserve): Adjust.
1484
1485         * dbxout.c (dbxout_type): Fix printf format.
1486
1487         * tree.h (binfo_member): Remove.
1488         * tree.c (binfo_member): Remove.
1489
1490 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
1491
1492         * tree.h: Include vec.h
1493         (DEF_VEC_P(tree)): New type.
1494         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): Adjust.
1495         (BINFO_BASE_APPEND, BINFO_BASE_ITERATE): New.
1496         (BINFO_LANG_SLOT): Remove.
1497         (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF): New.
1498         (struct tree_binfo): Turn base_binfos into a trailing
1499         VEC(tree). Add vtt_subvtt, vtt_vptr, primary fields.
1500         (binfo_lang_slots): Remove.
1501         * tree.c (binfo_lang_slots): Remove.
1502         (make_tree_binfo_stat): Take a base binfo count, not a
1503         lang slot count.  Adjust.
1504         * Makefile.in (TREE_H): Add vec.h
1505         * alias.c (record_component_aliases): Adjust BINFO access.
1506         * dbxout.c (dbxout_type): Likewise.
1507         * dwarf2out.c (gen_member_die): Likewise.
1508         * sdbout.c (sdbout_one_type): Likewise.
1509         * tree-dump.c (deque_and_dump): Likewise.
1510         * config/i386/i386.c (classify_argument,
1511         contains_128bit_aligned_vector_p): Likewise.
1512         * config/sh/symbian.c (symbian_export_vtable_and_rtti_p): Likewise.
1513         * doc/c-tree.texi (Classes): Update BINFO documentation.
1514
1515 2004-07-20  Steven Bosscher  <stevenb@suse.de>
1516
1517         * c-common.h (check_case_value): Remove prototype.
1518         (c_add_case_label): Adjust prototype.
1519         * c-common.c (check_case_value): Make static.
1520         (check_case_bounds): New function.
1521         (c_add_case_label): Use it.  Take new argument orig_type.
1522         * c-typeck.c (struct c_switch): New orig_type field.
1523         (c_start_case): Set it.
1524         (do_case): Pass it to c_add_case_label.
1525         * expr.c (expand_expr_real_1): Don't warn for out-of-bounds
1526         cases from here.  Add the labels in reverse order.
1527         * stmt.c (struct case_node): Adjust comment.  Remove balance field.
1528         (add_case_node): Return nothing, don't check for duplicate cases.
1529         Insert new case nodes in a list, not in an AVL tree.
1530         (expand_end_case_type): Don't turn a case tree into a case list.
1531         (case_tree2list): Remove.
1532         * tree.h (add_case_node): Adjust prototype.
1533
1534 2004-07-19  Paolo Bonzini  <bonzini@gnu.org>
1535
1536         * genattr.c (struct range, struct function_unit,
1537         write_units, extend_range, init_range): Remove them.
1538         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
1539         Output "#define INSN_SCHEDULING" here.
1540         * genattrtab.c (struct range, struct function_unit_op,
1541         struct function_unit, struct dimension, enum operator,
1542         operate_exp, expand_units, simplify_knowing,
1543         encode_units_mask, simplify_by_exploding,
1544         find_and_mark_used_attributes, unmark_used_attributes,
1545         add_values_to_cover, increment_current_value,
1546         test_for_current_value, simplify_with_current_value,
1547         simplify_with_current_value_aux, gen_unit,
1548         write_unit_name, write_function_unit_info,
1549         write_complex_function, write_toplevel_expr,
1550         find_single_value, extend_range): Remove.
1551         (write_attr_get): Do not handle common_av->value
1552         being an FFS.
1553         (struct attr_desc): Remove func_units_p and blockage_p.
1554         (write_attr_valueq): Do not handle them.
1555         (find_attr): Do not clear them.
1556         (make_internal_attr): Do not initialize them.
1557         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
1558         * sched-vis.c (init_target_units, insn_print_units,
1559         init_block_visualization, print_block_visualization,
1560         visualize_scheduled_insns, visualize_no_unit,
1561         visualize_stall_cycles, visualize_alloc,
1562         visualize_free, target_units, get_visual_tbl_length,
1563         MAX_VISUAL_LINES, INSN_LEN, n_visual_lines,
1564         visual_tbl_line_length, visual_tbl, n_vis_no_unit,
1565         MAX_VISUAL_NO_UNIT, vis_no_unit): Remove.
1566         * haifa-sched.c (blockage_range, clear_units,
1567         schedule_unit, actual_hazard, potential_hazard,
1568         insn_unit, unit_last_insn, unit_tick,
1569         actual_hazard_this_instance, potential_hazard,
1570         schedule_unit, max_insn_queue_index_value): Remove.
1571         (MAX_INSN_QUEUE_INDEX): Removed, renamed throughout to
1572         max_insn_queue_index.
1573         * rtl.def (DEFINE_FUNCTION_UNIT): Remove.
1574         * doc/md.texi (Processor pipeline description): Remove
1575         references to old pipeline descriptions.
1576         (Automaton pipeline description): Merge with the above.
1577         (Old pipeline description, Comparison of the two descriptions):
1578         Remove.
1579
1580         * bt-load.c (migrate_btr_def): Remove references to
1581         use_pipeline_interface.
1582         * haifa-sched.c (insn_cost, schedule_insn,
1583         schedule_block, advance_one_cycle, sched_init,
1584         queue_to_ready, sched_finish): Likewise.
1585         * modulo-sched.c (sms_schedule, advance_one_cycle,
1586         ps_has_conflicts): Likewise.
1587         * sched-rgn.c (init_ready): Likewise.
1588         (debug_dependencies): Likewise, and remove an "if (1)".
1589         * target.h (use_dfa_pipeline_interface): Remove.
1590         * config/alpha/alpha.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
1591         * config/arc/arc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
1592         * config/arm/arm.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
1593         * config/c4x/c4x.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
1594         * config/frv/frv.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
1595         * config/i386/i386.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
1596         * config/ia64/ia64.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
1597         * config/iq2000/iq2000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
1598         * config/m32r/m32r.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
1599         * config/mcore/mcore.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
1600         * config/mips/mips.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
1601         * config/pa/pa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
1602         * config/rs6000/rs6000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
1603         * config/s390/s390.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
1604         * config/sh/sh.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
1605         * config/sparc/sparc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
1606         * config/v850/v850.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
1607         * config/xtensa/xtensa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
1608         * doc/tm.texi (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
1609
1610 2004-07-19  Roger Sayle  <roger@eyesopen.com>
1611
1612         * rtlanal.c (reg_set_p): Add check for regs_invalidated_by_call.
1613
1614 2004-07-19  Jeff Law  <law@redhat.com>
1615
1616         * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): New.
1617         (get_eq_expr_value): Use it.  Simplify slightly.
1618
1619 2004-07-19  Maciej W. Rozycki  <macro@linux-mips.org>
1620
1621         * config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list.
1622         (umulsidi3_32bit_r4000): Likewise.
1623
1624 2004-07-19  Nathan Sidwell  <nathan@codesourcery.com>
1625
1626         * vec.h: Propagate location information properly.
1627         (VEC_T_iterate): Add result pointer parameter.
1628         (VEC_T_space): New.
1629         (VEC_T_reserve): Use it.
1630
1631 2004-07-19  Daniel Jacobowitz  <dan@debian.org>
1632
1633         * Makefile.in (c-format.o): Depend on c-format.h.
1634         * c-format.h: New file.
1635         (struct format_char_info): Add CHAIN member.
1636         * c-format.c: Move some types and constants to c-format.h.
1637         (format_type_error): Set to -1.
1638         (struct function_format_info): Use an int for format_type.
1639         (decode_format_type): Return an int.  Return format_type_error
1640         on error.
1641         (print_char_table, asm_fprintf_char_table, gcc_diag_char_table)
1642         (gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table)
1643         (scan_char_table, time_char_table, monetary_char_table): Initialize
1644         CHAIN to NULL.
1645         (n_format_types): New variable.
1646         (check_format_info_main): Handle CHAIN in format_char_info.
1647         (handle_format_attribute): Handle TARGET_FORMAT_TYPES and
1648         TARGET_N_FORMAT_TYPES.
1649         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
1650         (sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c.
1651         * config/sol2-c.c: New file.
1652         * config/t-sol2: New file.
1653         * config/sol2.h (TARGET_N_FORMAT_TYPES, TARGET_FORMAT_TYPES): Define.
1654         * config/sparc/elf.h, config/sparc/sp64-elf.h: Undefine
1655         TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES.
1656
1657         * doc/extend.texi (Target Format Checks): New section.
1658         (Function Attributes): Mention it.
1659         * doc/invoke.texi: Mention target format checks.
1660         * doc/sourcebuild.texi: Mention target format checks.
1661         * dc/tm.texi (Misc): Document TARGET_N_FORMAT_TYPES and
1662         TARGET_FORMAT_TYPES.
1663
1664 2004-07-19  Andreas Krebbel  <krebbel1@de.ibm.com>
1665
1666         * config/s390/s390-protos.h (s390_return_address_offset): Prototype
1667         added.
1668         * config/s390/s390.c (regclass_map initializer): Register 35 added to
1669         ADDR_REGS.
1670         (load_multiple_operation, store_multiple_operation): Removed
1671         pointless sanity check.
1672         (s390_decompose_address): Added check for return_address_pointer_rtx.
1673         (s390_return_addr_rtx): Use return_address_pointer_rtx for count == 0.
1674         (s390_return_address_offset): New function.
1675         * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Increased to 36.
1676         (FRAME_REGNO_P): Added check for register 35.
1677         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
1678         REG_ALLOC_ORDER): Appended entry for register 35.
1679         (REG_CLASS_CONTENTS): Adjusted class masks for register 35.
1680         (EH_RETURN_HANDLER_RTX): Use return_address_pointer_rtx.
1681         (RETURN_ADDRESS_POINTER_REGNUM): New macro.
1682         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Return address pointer
1683         is eliminable using stack pointer or hard frame pointer.
1684         (REGISTER_NAMES): Added name for register 35.
1685         * config/s390/s390.md ("load_multiple", "store_multiple"): Removed
1686         pointless sanity check.
1687
1688 2004-07-19  Roger Sayle  <roger@eyesopen.com>
1689
1690         * fold-const.c (tree_expr_nonzero_p): Add function prototype.
1691         (fold) <EQ_EXPR>: Move tree_expr_nonzero_p optimization from
1692         fold_relational_const to here, i.e. "(x | 5) == 0" -> false.
1693         (fold) (UNEQ_EXPR>: Add optimizations for unordered comparisons
1694         of the form "x op x" where op is UNLE, UNGE, UNEQ or LTGT.
1695         (fold_relational_const): Tidy up handling of floating point
1696         comparisons by calling real_compare.  Remove tree_expr_nonzero_p
1697         transformation; fold_relational_const assumes constant operands.
1698
1699 2004-07-19  Gabriel Dos Reis  <gdr@integrable-solution.net>
1700
1701         * doc/sourcebuild.texi: Add libcpp, now that CPP has its own
1702         directory.
1703
1704 2004-07-19  Joseph S. Myers  <jsm@polyomino.org.uk>
1705
1706         * c-tree.h (struct c_expr): Define.
1707         (C_SET_EXP_ORIGINAL_CODE): Remove.
1708         (parser_build_binary_op, build_compound_expr): Update prototypes.
1709         * c-parse.in (%union): Add exprtype.
1710         (FUNC_NAME): Mark as ttype.
1711         (expr, expr_no_commas, cast_expr, unary_expr, primary): Change to
1712         exprtype.
1713         (expr): Update.  Define directly in terms of expr_no_commas
1714         instead of using nonnull_exprlist.
1715         (nonnull_exprlist, unary_expr, cast_expr, expr_no_commas, primary,
1716         offsetof_member_designator, typespec_nonreserved_nonattr, init,
1717         initval, designator, component_declarator,
1718         component_notype_declarator, enumerator, array_declarator,
1719         condition, exexpr, switch_statement, stmt_nocomp, stmt,
1720         nonnull_asm_operands, ivar_declarator, receiver): Update.  Don't
1721         set C_EXP_ORIGINAL_CODE.  Use TREE_NO_WARNING for assignments
1722         where appropriate.
1723         * c-common.h (C_EXP_ORIGINAL_CODE): Remove.
1724         * c-common.c (c_common_truthvalue_conversion): Don't check
1725         C_EXP_ORIGINAL_CODE.
1726         * c-typeck.c (parser_build_binary_op): Use c_expr structures.
1727         Don't use C_EXP_ORIGINAL_CODE.
1728         (default_conversion, default_function_array_conversion): Don't use
1729         C_EXP_ORIGINAL_CODE.  Preserve TREE_NO_WARNING.
1730         (internal_build_compound_expr): Merge into build_compound_expr.
1731         (build_compound_expr): Take two operands instead of a TREE_LIST.
1732         * objc/objc-act.c (get_super_receiver): Update calls to
1733         build_compound_expr.
1734
1735 2004-07-12  Paolo Bonzini  <bonzini@gnu.org>
1736
1737         * config/sh/sh.c (sh_use_dfa_interface): Remove.
1738         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Set to
1739         hook_int_void_1.
1740         * config/sh/sh.md: Extract pipeline descriptions
1741         into separate files.
1742         * config/sh/sh1.md: New file, extracted from sh.md.
1743         * config/sh/sh4.md: New file, extracted from sh.md.
1744         * config/sh/shmedia.md: New file, extracted from sh.md
1745         and rewritten using new-style pipeline description.
1746
1747 2004-07-18  Zack Weinberg  <zack@codesourcery.com>
1748
1749         * config/pa/pa.md: Delete the two remaining define_peephole
1750         patterns.
1751
1752 2004-07-18  Steven Bosscher  <stevenb@suse.de>
1753             Joseph S. Myers  <jsm@polyomino.org.uk>
1754
1755         * c-common.c (c_common_truthvalue_conversion): Don't warn if
1756         TREE_NO_WARNING is set.
1757
1758 2004-07-18  Roger Sayle  <roger@eyesopen.com>
1759
1760         * builtins.c (simplify_builtin_memcmp, simplify_builtin_strcmp,
1761         simplify_builtin_strncmp): Delete.
1762         (fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
1763         Change argument to accept an arglist instead of an "exp".  Assume
1764         that the return type is always integer_type_node.  Copy missing
1765         transformations from their now obsolete simplify_builtin_*
1766         equivalents.
1767         (fold_builtin_1): Pass arglist instead of exp to fold_builtin_memcmp,
1768         fold_builtin_strcmp and fold_builtin_strncmp.
1769         (simplify_builtin): Call fold_builtin_memcmp, fold_builtin_strcmp
1770         and fold_builtin_strncmp instead of simplify_builtin_memcmp,
1771         simplify_builtin_strcmp and simplify_builtin_strncmp respectively.
1772
1773 2004-07-18  Daniel Jacobowitz  <dan@debian.org>
1774
1775         * Makefile.in (tree-alias-common.o): Update dependencies.
1776
1777 2004-07-17  Sebastian Pop  <pop@cri.ensmp.fr>
1778
1779         * cfgloop.c (flow_loop_nested_p): Fix comment.
1780
1781 2004-07-17  Jason Merrill  <jason@redhat.com>
1782
1783         PR c++/16115
1784         * stor-layout.c (relayout_decl): New fn.
1785         * tree.h: Declare it.
1786         (DECL_BY_REFERENCE): New macro.
1787
1788 2004-07-17  Eric Botcazou  <ebotcazou@act-europe.fr>
1789
1790         * libgcc2.c (__enable_execute_stack): New symbol.
1791         * libgcc-std.ver (GCC_3.4.2): New version.  Inherit from GCC_3.4
1792         and declare __enable_execute_stack.
1793         * mklibgcc.in (lib2funcs): Add _enable_execute_stack.
1794         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy.
1795         * config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into
1796         ENABLE_EXECUTE_STACK.
1797         * config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize
1798         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
1799         * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into
1800         ENABLE_EXECUTE_STACK.
1801         * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
1802         * config/i386/i386.c (x86_initialize_trampoline): Conditionalize
1803         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
1804         * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into
1805         ENABLE_EXECUTE_STACK.
1806         * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
1807         * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
1808         * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
1809         * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
1810         * config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize
1811         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
1812         (sparc64_initialize_trampoline): Likewise.
1813         * doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro.
1814
1815 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
1816
1817         * langhooks.h (builtin_function): New langhook.
1818         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION): New.
1819         (LANG_HOOKS_INITIALIZER): Update.
1820         * tree.h (builtin_function): Remove.
1821         * doc/tm.texi: Update.
1822         * c-tree.h (builtin_function): Declare.
1823         * c-common.c, config/alpha/alpha.c, config/arm/arm.c,
1824         config/c4x/c4x.c, config/frv/frv.c, config/i386/i386.c,
1825         config/ia64/ia64.c, config/iq2000/iq2000.c,
1826         config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
1827         config/stormy16/stormy16.c: All callers of builtin_function
1828         changed.
1829
1830 2004-07-17  Andrew Pinski  <pinskia@physics.uc.edu>
1831
1832         PR target/16556
1833         * config/i386/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
1834         Remove white space after the backslash.
1835
1836 2004-07-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
1837
1838         PR rtl-optimization/16294
1839         * resource.c (return_insn_p): New predicate.
1840         (mark_target_live_regs): Use it.  Special-case return insns.
1841         (init_resource_info): Use it.  Don't scan the epilogue past
1842         a return.
1843
1844 2004-07-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1845
1846         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Do not
1847         destroy dominance information.
1848         * passes.c (rest_of_handle_loop2):  Free dominance information.
1849         * tree-cfg.c (cleanup_tree_cfg): Remove unreachable blocks before
1850         jump threading.
1851         (thread_jumps): Update dominance information and remove unreachable
1852         blocks.
1853         * tree-ssa-phiopt.c (replace_phi_with_stmt):  Update dominance
1854         information and remove the unreachable block.
1855
1856 2004-07-17  Graham Stott  <graham.stott@btinternet.com>
1857
1858         * emit-rtl.c (reorder_insns): Don't set BB for a BARRIER insn.
1859
1860 2004-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
1861
1862         * doc/sourcebuild.texi: Remove libf2c entry.
1863
1864 2004-07-17  Paolo Bonzini  <bonzini@gnu.org>
1865
1866         * config/i386/i386.md (movv16qi_internal): Fix typo.
1867
1868 2004-07-17  Steven Bosscher  <stevenb@suse.de>
1869
1870         * final.c (final_scan_insn): Fix broken commit from previous
1871         patch.
1872
1873 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
1874
1875         * c-typeck.c (parser_build_binary_op): Condition warnings for
1876         X<=Y<=Z on -Wparentheses instead of -Wextra.
1877         * doc/invoke.texi: Update.  Document that most of -Wparentheses is
1878         supported for C only.
1879
1880 2004-07-17  Steven Bosscher  <stevenb@suse.de>
1881
1882         * cfgcleanup.c (try_simplify_condjump): Don't remove line
1883         notes to avoid unreachable code warnings.
1884         * toplev.c (backend_init): Don't emit line notes for
1885         unreachable code warnings.
1886
1887         * combine.c (distribute_notes): Don't distribute a
1888         REG_VTABLE_REF note.
1889         * final.c (final_scan_insn): Don't handle it.
1890         * rtl.c (reg_note_name): Remove it.
1891         * rtl.h (enum reg_node): Dito.
1892
1893         * emit-rtl.c (force_line_numbers, restore_line_number_status):
1894         Remove.
1895         * rtl.h (force_line_numbers, restore_line_number_status):
1896         Remove prototypes.
1897
1898         * stmt.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Move...
1899         * tree-eh.c (using_eh_for_cleanups_p): ...here.  Make static.
1900         (using_eh_for_cleanups): Also moved here.
1901
1902         * expr.c (expand_expr_real_1) <CASE_LABEL_EXPR>: Die if we see one.
1903         <SWITCH_EXPR>: Die if we have a non-NULL SWITCH_BODY.  Update calls
1904         to expand_start_case and add_case_node.
1905         * stmt.c (struct nesting): Cleanup unused fields condition_code,
1906         last_unconditional_cleanup, nominal_type, printname, and
1907         line_number_status.
1908         (struct fixup_goto): Remove.
1909         (struct stmt_status): Remove x_goto_fixup_chain field.
1910         (goto_fixup_chain): Remove.
1911         (strip_default_case_nodes, group_case_nodes, emit_jump_if_reachable,
1912         pushcase, pushcase_range): Remove.
1913         (expand_start_bindings_and_block): Don't set unused fields in
1914         the nesting stack.
1915         (expand_start_case, add_case_node): Cleanup unused formal arguments.
1916         (expand_end_case_type): Don't simplify the case-list.  Use emit_jump
1917         instead of emit_jump_if_reachable.
1918         (emit_case_nodes): Likewise.
1919         * tree-cfg.c (group_case_labels, cleanup_dead_labels): No longer
1920         static.
1921         (update_eh_label): Work around left-over exception handing regions.
1922         * tree-flow.h (group_case_labels, cleanup_dead_labels): Add protos.
1923         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): New function.
1924         (pass_cleanup_cfg_post_optimizing): New pass.
1925         (init_tree_optimization_passes): Run the new pass after all
1926         optimizations.
1927         * tree.h (pushcase, pushcase_range): Remove prototypes.
1928         (expand_start_case, add_case_node): Update prototypes.
1929
1930 2004-07-16  Krister Walfridsson  <cato@df.lth.se>
1931
1932         * tree-inline.c (estimate_num_insns_1): Correct increase of count.
1933
1934 2004-07-16  Richard Henderson  <rth@redhat.com>
1935
1936         * builtins.c (std_expand_builtin_va_arg): Remove.
1937         (expand_builtin_va_arg): Remove.
1938         * expr.h: Don't declare them.
1939         * gimplify.c (mark_decls_volatile_r): Remove.
1940         (copy_if_shared_r): Don't call it.
1941         * target-def.h: Don't test EXPAND_BUILTIN_VA_ARG.
1942         * expr.c (expand_expr_real_1): Don't handle VA_ARG_EXPR.
1943         * gimple-low.c (lower_stmt): Likewise.
1944         * tree-cfg.c (cfg_remove_useless_stmts_bb): Likewise.
1945         * tree-gimple.c (is_gimple_tmp_rhs, is_gimple_stmt): Likewise.
1946         * tree-ssa-operands.c (get_expr_operands): Likewise.
1947         * doc/tm.texi (TARGET_GIMPLIFY_VA_ARG_EXPR): Don't mention
1948         EXPAND_BUILTIN_VA_ARG.
1949         * system.h (EXPAND_BUILTIN_VA_ARG): Poison.
1950         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/i386/i386.h,
1951         config/ia64/ia64.h, config/rs6000/rs6000.h, config/s390/s390.h,
1952         config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Remove.
1953
1954 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
1955
1956         * tree-ssa-pre.c (insert_aux): Break out if we hit
1957         a critical edge.
1958
1959 2004-07-16  Richard Henderson  <rth@redhat.com>
1960
1961         * basic-block.h (remove_fake_exit_edges): Declare.
1962         * cfganal.c (remove_fake_predecessors): Rename from
1963         remove_fake_successors; iterate over predecessors.
1964         (remove_fake_exit_edges): New.
1965         * cfgcleanup.c (try_optimize_cfg): Use it.
1966         * gcse.c (one_pre_gcse_pass, store_motion): Likewise.
1967         * predict.c (estimate_probability): Likewise.
1968         (tree_estimate_probability, note_prediction_to_br_prob): Likewise.
1969         * tree-cfg.c (make_edges): Likewise.
1970         * tree-ssa-pre.c (fini_pre): Likewise.
1971         * profile.c (instrument_edges): Don't remove_fake_edges.
1972         (branch_prob): Do it earlier here.
1973
1974 2004-07-16  Richard Henderson  <rth@redhat.com>
1975
1976         * tree-ssa-operands.c (get_expr_operands): Fix 2004-07-15
1977         switchification wrt CONSTRUCTOR.  Document the reason.
1978
1979 2004-07-16  Frank Ch. Eigler  <fche@redhat.com>
1980
1981         * tree-mudflap.c (mf_file_function_line_tree): Correct typo
1982         that prevented descriptive __mf_check source location strings.
1983
1984 2004-07-16  Richard Henderson  <rth@redhat.com>
1985
1986         * tree-def (WITH_SIZE_EXPR): New.
1987         * explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR.
1988         * expr.c (expand_expr_real_1): Likewise.
1989         * gimplify.c (maybe_with_size_expr): New.
1990         (gimplify_arg, gimplify_modify_expr): Use it.
1991         (gimplify_modify_expr_to_memcpy): Take size parameter.
1992         (gimplify_modify_expr_to_memset): Likewise.
1993         (gimplify_expr): Handle WITH_SIZE_EXPR.
1994         * tree-alias-common.c (find_func_aliases): Likewise.
1995         * tree-eh.c (tree_could_trap_p): Likewise.
1996         (tree_could_throw_p): Likewise.
1997         * tree-gimple.c (is_gimple_lvalue): Likewise.
1998         (get_call_expr_in): Likewise.
1999         * tree-inline.c (estimate_num_insns_1): Likewise.
2000         (expand_calls_inline): Likewise.
2001         * tree-nested.c (convert_call_expr): Likewise.
2002         * tree-pretty-print.c (dump_generic_node): Likewise.
2003         * tree-sra.c (sra_walk_expr): Likewise.
2004         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
2005         * tree-ssa-ccp.c (get_rhs, set_rhs): Likewise.
2006         * tree-ssa-operands.c (get_expr_operands): Likewise.
2007         * tree-tailcall.c (find_tail_calls): Likewise.
2008
2009         * calls.c (expand_call): Reset old_stack_allocated after
2010         calling emit_stack_restore.
2011
2012 2004-07-16  Richard Henderson  <rth@redhat.com>
2013
2014         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING,
2015         lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
2016         * langhooks.c (lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
2017         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
2018         copy_res_decl_for_inlining.
2019
2020         * tree-inline.c (declare_return_variable): New modify_dest argument.
2021         Use it as the return value, when possible or manditory.  Handle
2022         TREE_ADDRESSABLE types.
2023         (expand_call_inline): Extract MODIFY_EXPR lhs for call.  Simplify
2024         replacement of CALL_EXPR.
2025
2026 2004-07-16  Richard Henderson  <rth@redhat.com>
2027
2028         * tree-flow.h (struct var_ann_d): Remove has_hidden_use.
2029         * gimple-low.c (expand_var_p): Don't check it.
2030         * tree-ssa-alias.c (setup_pointers_and_addressables): Likewise.
2031         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
2032         * tree-ssa-operands.c (add_stmt_operand): Likewise.
2033         * tree-dfa.c (find_hidden_use_vars, find_hidden_use_vars_r): Kill.
2034         (find_referenced_vars): Don't call them.
2035         * tree-flow-inline.h (has_hidden_use, set_has_hidden_use): Kill.
2036
2037 2004-07-16  Richard Henderson  <rth@redhat.com>
2038
2039         * function.c (pass_by_reference): True for all variable sized types.
2040
2041 2004-07-16  Sebastian Pop  <pop@cri.ensmp.fr>
2042
2043         * Makefile.in (tree-pretty-print.o): Depend on tree-chrec.h.
2044         * tree-pretty-print.c: Include tree-chrec.h.
2045         (dump_generic_node): Pretty print SCEV_KNOWN, SCEV_NOT_KNOWN
2046         and POLYNOMIAL_CHREC nodes.
2047
2048 2004-07-16  Steve Ellcey  <sje@cup.hp.com>
2049
2050         * builtins.c (expand_builtin_stpcpy): Do not create temporary
2051         reg with VOIDmode.
2052
2053 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
2054
2055         * config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi).
2056
2057 2004-07-16  Andreas Krebbel  <krebbel1@de.ibm.com>
2058
2059         * config/s390/s390.md: Changed every occurence of BASE_REGISTER
2060         to BASE_REGNUM.
2061         * config/s390/s390.c: Likewise.
2062         * config/s390/s390.h: Likewise.
2063
2064 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
2065
2066         * config/mips/mips.md (addsi3, adddi3): Remove special handling
2067         of $sp adds.  Remove REGNO checks from mips16 patterns.
2068
2069 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
2070
2071         * config/mips/mips.md: Delete outdated comment.
2072
2073 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
2074
2075         * config/mips/mips.c (get_float_compare_codes): Delete.
2076         (mips_emit_compare): New function, mostly extracted from
2077         get_float_compare_codes and gen_conditional_branch.
2078         (gen_conditional_branch, gen_conditional_move): Use it.
2079
2080 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
2081
2082         * genautomata.c (add_vect): Speedup by using integers as
2083         bit-vectors for walking through the comb_vect and finding
2084         a match.
2085
2086 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
2087
2088         * config/mips/mips.c (mips_zero_if_equal): Only use XORs if the second
2089         operand is an uns_arith_operand; use subtraction otherwise.
2090         * config/mips/mips.md (cmpsi, cmpdi): Allow any nonmemory_operand,
2091         not just arith_operands.
2092
2093 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
2094
2095         * config/mips/mips-protos.h (gen_int_relational): Delete.
2096         (mips_emit_scc): Declare.
2097         * config/mips/mips.c (internal_test): Delete.
2098         (sle_operand, sleu_operand): New functions.
2099         (map_test_to_internal_test, gen_int_relational): Delete.
2100         (mips_emit_binary, mips_relational_operand_ok_p)
2101         (mips_emit_int_relational, mips_zero_if_equal)
2102         (mips_emit_scc): New functions.
2103         (gen_conditional_branch): Rework to use mips_emit_int_relational.
2104         * config/mips/mips.h (PREDICATE_CODES): Add sle_operand and
2105         sleu_operand.
2106         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
2107         (sltu, sleu): Use mips_emit_scc.
2108         (*sge_[sd]i, *sgeu_[sd]i): New patterns.
2109         (*sle_[sd]i, *sle_[sd]i_mips16): Use sle_operand.
2110         (*sleu_[sd]i, *sleu_[sd]i_mips16): Use sleu_operand.
2111
2112 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
2113
2114         * config/mips/mips.md (*sgt_di_mips16): Fix destination constraint.
2115
2116 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
2117
2118         * config/mips/mips.md (*seq_[sd]i): Renamed from seq_[sd]i_zero.
2119         (*sne_[sd]i): Likewise sne_[sd]i_zero.
2120         (*sgt_[sd]i): ...and sgt_[sd]i.
2121         (*slt_[sd]i): ...and slt_[sd]i.
2122         (*sgtu_[sd]i): ...and sgtu_[sd]i.
2123         (*sltu_[sd]i): ...and sltu_[sd]i.
2124         (*sleu_[sd]i): ...and sleu_[sd]i_const.
2125         Name previously unnamed mips16 patterns.  Formatting fixes.
2126
2127 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
2128
2129         * config/mips/mips.c (cmp_operands): Renamed from branch_cmp.
2130         (branch_type): Delete.
2131         (gen_conditional_branch, gen_conditional_move)
2132         (mips_gen_conditional_trap): Update after name change.  Get the
2133         comparison mode from cmp_operands[0].
2134         * config/mips/mips.h (cmp_type, branch_type): Delete.
2135         (cmp_operands): Renamed from branch_cmp.
2136         * config/mips/mips.md (cmpsi, cmpdi, cmpsf, cmpdf): Update after
2137         name change.  Don't set branch_type.
2138         (seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu): Check the
2139         mode class of cmp_operands[0] rather than branch_type.  Update after
2140         name change.
2141
2142 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
2143
2144         * config/mips/mips.c (mips_rtx_costs): In mips16 code, set the cost
2145         of 0...255 to 0 when inside a SET.
2146
2147 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
2148
2149         * config/mips/mips.md: Remove mips16 define_peepholes.
2150
2151 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
2152
2153         * tree-ssa-pre.c (init_pre): Connect infinite loops to exit.
2154         (fini_pre): Remove fake edges.
2155
2156 2004-07-15  Richard Henderson  <rth@redhat.com>
2157
2158         * tree-ssa-operands.c (get_expr_operands): Use a switch.  Split out...
2159         (get_indirect_ref_operands, get_call_expr_operands): ... these.
2160
2161 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
2162
2163         * vec.h (VEC_address): New function.
2164
2165 2004-07-14  Jason Merrill  <jason@redhat.com>
2166
2167         PR middle-end/15885
2168         * gimplify.c (gimplify_arg): New fn, split out from...
2169         (gimplify_call_expr): Here.  Special-case BUILT_IN_VA_START.
2170
2171 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
2172
2173         * config/m68k/m68k.c (output_move_qimode): Abort on an attempt to
2174         generate code which is generated by pushqi1 now
2175         * config/m68k/m68k.h (MOVE_BY_PIECES_P): Remove.
2176
2177 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
2178
2179         * combine.c (simplify_set): match the mode of the constant 0 with
2180         the tested operand to match the compare behaviour and the
2181         simplify_relational_operation() expectation.
2182
2183 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
2184
2185         * config/rs6000/rs6000.md ("bunordered"): Disable for e500.
2186         ("bordered"): Same.
2187
2188 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
2189
2190         * config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow
2191         unconditionally.
2192         * config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove.
2193
2194 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
2195
2196         * config/mips/mips.c (mips_adjust_insn_length): Fix handling of
2197         calls in mips16 code.
2198
2199 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
2200
2201         * config/mips/mips.md: In the mips16 li/neg splitter, use SImode for
2202         the destination of the li as well as for the neg.
2203
2204 2004-07-15  Frank Ch. Eigler  <fche@redhat.com>
2205
2206         g++/15861
2207         * cgraphunit.c (cgraph_build_static_cdtor): Add priority argument.
2208         * cgraph.h: Update declaration.
2209         * c-decl.c (build_cdtor): Update call with default priority.
2210         * coverage.c (create_coverage): Ditto.
2211         * tree-mudflap.c (mf_init_fndecl): New tree.
2212         (mudflap_init): Set it.
2213         (mudflap_register_call): Arrange to call __mf_init before the first
2214         __mf_register call.
2215         (mudflap_finish_file): Mark the mudflap static initializer as extra
2216         high priority, to beat all C++ static constructors.
2217
2218 2004-07-15  Jeff Law  <law@redhat.com>
2219
2220         * loop.c (check_insn_for_givs): Restore check for code labels that was
2221         accidentally deleted by a recent checkin.
2222
2223 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
2224
2225         * vec.h (VEC_T_truncate): Allow truncation of an empty vector.
2226         (VEC_T_quick_insert, VEC_T_ordered_remove): Fix sizeof(T) thinko.
2227
2228 2004-07-14  Richard Henderson  <rth@redhat.com>
2229
2230         * print-tree.c (print_node): Fix casts last change.
2231
2232 2004-07-15  Paul Brook  <paul@codesourcery.com>
2233
2234         * dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO
2235         to TARGET_UNWIND_INFO.
2236         * except.c (output_function_exception_table): Ditto.
2237         * except.h: Ditto.
2238         * opts.c (decode_options): Ditto.
2239         * passes.c (rest_of_handle_final): Ditto.
2240         * final.c (final_start_function): Ditto.
2241         (final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with
2242         target hook.
2243         * targhooks.h (default_unwind_emit): Declare.
2244         * targhooks.c (default_unwind_emit): New function.
2245         * target-def.h: Define and use TARGET_UNWIND_EMIT.
2246         * target.h (struct gcc_target): Add unwind_emit.
2247         * config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define.
2248         * config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO.
2249         Remove IA64_UNWIND_EMIT.
2250         * doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO.
2251
2252 2004-07-14  Richard Henderson  <rth@redhat.com>
2253
2254         * print-tree.c (print_node): Handle SSA_NAME.
2255
2256 2004-07-14  James E Wilson  <wilson@specifixinc.com>
2257
2258         PR target/16325
2259         * config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value
2260         and ! TARGET_64BIT, include REG_PARM_STACK_SPACE.
2261
2262 2004-07-15  Jakub Jelinek  <jakub@redhat.com>
2263
2264         * expr.c (expand_assignment): Reenable bitfield += optimizations.
2265         Use alias set 0 for memory, do proper mode calculations and adjust
2266         address for memories.
2267
2268 2004-07-14  Per Bothner  <per@bothner.com>
2269
2270         * input.h:  If USE_MAPPED_LOCATION, define separate expanded_location
2271         structure with extra column field.
2272         * tree.c (expand_location):  Also fill in column field.
2273         * gengtype-lex.l:  Ignore expanded_location typedef, sinze gengtype
2274         gets confused by the two conditionally-compiled definitions.
2275
2276 2004-07-14  Eric Christopher  <echristo@redhat.com>
2277
2278         * calls.c (expand_call): Fix typo in comment.
2279
2280 2004-07-14  Steve Ellcey  <sje@cup.hp.com>
2281
2282         * config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED
2283         comparision of TFmode.
2284
2285 2004-07-14  Richard Henderson  <rth@redhat.com>
2286
2287         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Move indirect ...
2288         (alpha_gimplify_va_arg): ... handling here.  Use pass_by_reference.
2289         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Use pass_by_reference.
2290         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
2291         * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
2292         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
2293         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
2294         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
2295         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
2296
2297 2004-07-14  Mike Stump  <mrs@apple.com>
2298
2299         * config/darwin.h (WINT_TYPE): Define to be int to match
2300         system header files.
2301
2302 2004-07-14  Bob Wilson  <bob.wilson@acm.org>
2303
2304         * config/xtensa/xtensa.c (function_arg_advance): Check for args
2305         that must be passed in the stack.
2306         (xtensa_gimplify_va_arg_expr): Skip special-case padding for small
2307         arguments if the size is not a constant.
2308
2309 2004-07-14  Per Bothner  <per@bothner.com>
2310
2311         * c-typeck.c (emit_side_effect_warnings):  Use EXPR_HAS_LOCATION
2312         instead of EXPR_LOCUS in a boolean context, which is always true
2313         if --enable-mapped-location.
2314         * stmt.c (warn_if_unused_value):  Likewise.  Also use EXPR_LOCATION.
2315
2316 2004-07-14  Richard Henderson  <rth@redhat.com>
2317
2318         * dominance.c (struct dom_info): Add fake_exit_edge.
2319         (init_dom_info): Allocate it.
2320         (free_dom_info): Free it.
2321         (calc_dfs_tree): Set it.  Handle noreturn and infinite loops
2322         in two passes.
2323         (calc_idoms): Honor fake_exit_edge.
2324
2325 2004-07-13  Jason Merrill  <jason@redhat.com>
2326
2327         * tree-gimple.c (is_gimple_reg_rhs, is_gimple_mem_rhs): New fns.
2328         (rhs_test_for): New fn.
2329         (is_gimple_tmp_rhs): Rename from is_gimple_rhs.
2330         * tree-gimple.h: Declare them.
2331         * gimplify.c (gimplify_modify_expr): Use the new fns.
2332
2333 2004-07-14  Richard Henderson  <rth@redhat.com>
2334
2335         * config/arm/arm-protos.h (arm_va_arg): Remove.
2336         * config/arm/arm.c (arm_va_arg): Remove.
2337         (arm_init_expanders): Fix alignment of arg_pointer_rtx.
2338         * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG): Remove.
2339
2340 2004-07-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2341
2342         * pa.c (fix_range): New function to mark a range(s) of registers as
2343         fixed registers.
2344         (override_options): Call fix_range if the -mfixed-range option string
2345         is not empty.
2346         * pa.h (TARGET_OPTIONS): Add -mfixed-range option.
2347         * doc/invoke.texi (-mfixed-range): Document new option.
2348
2349 2004-07-14  David Edelsohn  <edelsohn@gnu.org>
2350
2351         * config/rs6000/rs6000.c (function_arg_padding): Do not pad SFmode
2352         for TARGET_64BIT.
2353         (rs6000_gimplify_va_arg): Use size_int instead of build_int_2.
2354
2355 2004-07-14  Roger Sayle  <roger@eyesopen.com>
2356
2357         * expmed.c (expand_sdiv_pow2): New function to expand signed division
2358         by a positive power of two, split out from expand_divmod.  Provide
2359         an alternate implementation when shifts are expensive.  Lower the
2360         threshold for using a branchless implementation to BRANCH_COST >= 2.
2361         (expand_divmod): Call expand_sdiv_pow2 for suitable divisions.
2362
2363 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
2364
2365         * tree-dfa.c (make_rename_temp): *Really* work just
2366         like create_tmp_var if called while outside SSA form.
2367
2368 2004-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
2369
2370         * config/s390/s390.md ("udivsi3"): Ensure trap is generated
2371         for division by zero.
2372         ("umodsi3"): Likewise.
2373
2374 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
2375
2376         * config/mips/mips.c (mips_output_move): When generating mips16 code,
2377         force loads of negative constants to be split.
2378         * config/mips/mips.md (*movhi_mips16, *movqi_mips16): Likewise.
2379         Generalize SImode li/neg splitter to cope with other modes.
2380
2381 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
2382
2383         * expmed.c: Remove more references to QUEUED in the comments.
2384         * expr.c: Likewise.
2385
2386 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
2387
2388         Revert:
2389         2004-07-13  Richard Henderson  <rth@redhat.com>
2390         * config/mips/mips.c (mips_pass_by_reference): Handle mode sizes
2391         correctly.
2392
2393 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
2394
2395         * tree-dfa.c (make_rename_temp): Work just like
2396         create_tmp_var if called while outside SSA form.
2397
2398 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
2399
2400         * expr.c (enqueue_insn, finish_expr_for_function,
2401         protect_from_queue, queued_subexp_p, mark_queue,
2402         emit_insns_enqueued_after_mark, emit_queue,
2403         expand_increment): Remove.
2404         (store_constructor): Expand increment as an assignment.
2405         (expand_expr_real_1 <case PREINCREMENT_EXPR,
2406         case PREDECREMENT_EXPR, case POSTINCREMENT_EXPR,
2407         case POSTDECREMENT_EXPR>): Abort.
2408         * expr.h (QUEUED_VAR, QUEUED_INSN, QUEUED_COPY,
2409         QUEUED_BODY, QUEUED_NEXT, finish_expr_for_function,
2410         protect_from_queue, emit_queue, queued_subexp_p): Remove.
2411         * function.h (pending_chain, x_pending_chain): Remove.
2412         * rtl.def (QUEUED): Remove.
2413
2414         * emit-rtl.c (copy_insn_1, copy_most_rtx,
2415         set_used_flags, verify_rtx_sharing): Remove references to QUEUED.
2416         * genattrtab.c (attr_copy_rtx, clear_struct_flag,
2417         encode_units_mask): Likewise.
2418         * local-alloc.c (equiv_init_varies_p): Likewise.
2419         * rtl.c (copy_rtx): Likewise.
2420         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
2421         * simplify-rtx.c (simplify_gen_subreg): Likewise.
2422         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Likewise.
2423
2424         * builtins.c (expand_builtin, expand_builtin_apply,
2425         expand_builtin_mathfn, expand_builtin_mathfn_2,
2426         expand_builtin_mathfn_3, expand_builtin_setjmp_setup):
2427         Remove calls to emit_queue and protect_from_queue.
2428         * calls.c (expand_call, precompute_arguments,
2429         precompute_register_parameters, rtx_for_function_call,
2430         store_one_arg): Likewise.
2431         * dojump.c (do_compare_and_jump, do_jump): Likewise.
2432         * explow.c (memory_address): Likewise.
2433         * expmed.c (clear_by_pieces_1, clear_storage,
2434         clear_storage_via_libcall, emit_group_load,
2435         emit_group_store, emit_store_flag,
2436         expand_expr_real_1, store_by_pieces,
2437         store_constructor, store_expr, try_casesi,
2438         try_tablejump): Likewise.
2439         * function.c (expand_pending_sizes): Likewise.
2440         * optabs.c (emit_cmp_and_jump_insns,
2441         emit_conditional_add, emit_conditional_move,
2442         expand_fix, expand_float, prepare_cmp_insn): Likewise.
2443         * stmt.c (emit_case_bit_tests,
2444         expand_asm_expr, expand_computed_goto,
2445         expand_decl_init, expand_end_case_type,
2446         expand_end_stmt_expr, expand_expr_stmt_value,
2447         expand_return, expand_start_case,
2448         optimize_tail_recursion): Likewise.
2449         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
2450         * config/s390/s390.c (s390_expand_cmpmem): Likewise.
2451
2452 2004-07-14  Ben Elliston  <bje@au.ibm.com>
2453
2454         * vec.h: Comment fix.
2455
2456 2004-07-13  Richard Henderson  <rth@redhat.com>
2457
2458         * target.h (struct gcc_target): Add calls.pass_by_reference.
2459         * target-def.h (TARGET_PASS_BY_REFERENCE): New.
2460         * function.c (pass_by_reference): Use the hook.
2461         * system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison.
2462         * targhooks.c, targhooks.h (hook_pass_by_reference_false): New.
2463         (hook_pass_by_reference_must_pass_in_stack): New.
2464         * config/alpha/alpha.c (function_arg): Don't query pass-by-ref.
2465         (alpha_pass_by_reference): New.
2466         (TARGET_PASS_BY_REFERENCE): New.
2467         * config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
2468         * config/arc/arc.c (arc_pass_by_reference): New.
2469         (TARGET_PASS_BY_REFERENCE): New.
2470         * config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
2471         (FUNCTION_ARG_CALLEE_COPIES): True.
2472         * config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove.
2473         * config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New.
2474         (arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference.
2475         * config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
2476         * config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
2477         * config/cris/cris.c (cris_pass_by_reference): New.
2478         (TARGET_PASS_BY_REFERENCE): New.
2479         * config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref.
2480         (FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise.
2481         (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
2482         * config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New.
2483         * config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
2484         * config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill.
2485         * config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New.
2486         (frv_function_arg_pass_by_reference): Remove.
2487         * config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
2488         * config/i386/i386-protos.h (function_arg_pass_by_reference): Remove.
2489         * config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New.
2490         (ix86_pass_by_reference): Rename from function_arg_pass_by_reference.
2491         * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
2492         * config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill.
2493         * config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New.
2494         (ia64_pass_by_reference): Rename from
2495         ia64_function_arg_pass_by_reference.
2496         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
2497         * config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
2498         * config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill.
2499         * config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New.
2500         (iq2000_pass_by_reference): Rename from function_arg_pass_by_reference.
2501         * config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
2502         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
2503         * config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove.
2504         * config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New.
2505         (m32r_pass_by_reference): Adjust prototype.  Make static.
2506         Handle mode sizes correctly.
2507         * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
2508         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c
2509         (m68hc11_function_arg_pass_by_reference): Remove.
2510         * config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
2511         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
2512         * config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New.
2513         * config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
2514         * config/mips/mips-protos.h (function_arg_pass_by_reference): Remove.
2515         * config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New.
2516         (mips_va_arg): Use pass_by_reference.
2517         (mips_pass_by_reference): Rename from function_arg_pass_by_reference.
2518         Handle mode sizes correctly.
2519         * config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
2520         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
2521         * config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill.
2522         * config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New.
2523         (mmix_pass_by_reference): Rename from
2524         mmix_function_arg_pass_by_reference.
2525         * config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
2526         (FUNCTION_ARG_CALLEE_COPIES): True.
2527         * config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New.
2528         (mn10300_pass_by_reference): New.
2529         * config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
2530         (FUNCTION_ARG_CALLEE_COPIES): True.
2531         * config/pa/pa.c (pa_pass_by_reference): New.
2532         (TARGET_PASS_BY_REFERENCE): New.
2533         * config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
2534         (FUNCTION_ARG_CALLEE_COPIES): True.
2535         * config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill.
2536         * config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New.
2537         (rs6000_pass_by_reference): Rename from function_arg_pass_by_reference.
2538         * config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
2539         * config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill.
2540         * config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New.
2541         (s390_pass_by_reference): Rename from
2542         s390_function_arg_pass_by_reference.
2543         (s390_function_arg_advance): Don't query pass-by-ref.
2544         (s390_function_arg): Likewise.
2545         (s390_gimplify_va_arg): Use pass_by_reference.
2546         (s390_call_saved_register_used): Likewise.
2547         * config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
2548         * config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New.
2549         (shcompact_byref, sh_pass_by_reference): New.
2550         * config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
2551         (SHCOMPACT_BYREF): Remove.
2552         * config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill.
2553         * config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New.
2554         (sparc_pass_by_reference): Rename from function_arg_pass_by_reference.
2555         (sparc_gimplify_va_arg): Use pass_by_reference.
2556         * config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
2557         * config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
2558         * config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New.
2559         (v850_pass_by_reference): New.
2560         * config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
2561         (FUNCTION_ARG_CALLEE_COPIES): True.
2562         * doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from
2563         FUNCTION_ARG_PASS_BY_REFERENCE docs.
2564
2565 2004-07-14  Richard Henderson  <rth@redhat.com>
2566             Richard Sandiford  <rsandifo@redhat.com>
2567
2568         * config/mips/mips-protos.h (mips_va_arg): Delete.
2569         * config/mips/mips.h (EXPAND_BUILTIN_VA_ARG): Delete.
2570         * config/mips/mips.c: Include tree-gimple.h.
2571         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
2572         (mips_arg_info): Remove special handling of must_pass_in_stck args.
2573         (mips_gimplify_va_arg_expr): Rewritten from mips_va_arg.
2574         (function_arg_pass_by_reference): Return true if must_pass_in_stack.
2575
2576 2004-07-13  Bob Wilson  <bob.wilson@acm.org>
2577
2578         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Swap
2579         arguments for COND_EXPR in big-endian adjustment code.
2580
2581 2004-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2582
2583         * pa-64.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Delete.
2584         * pa.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Modify for hppa64.
2585         * pa32-regs.h (REG_ALLOC_ORDER): Reorder caller-saved registers.
2586         * pa64-regs.h (REG_ALLOC_ORDER): Likewise.
2587
2588 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
2589
2590         PR tree-optimization/16443
2591         * tree-ssa-alias.c: Add more description for
2592         CALL_CLOBBERED_VARS and ADDRESSABLE_VARS.
2593         * tree-ssa-operands.c (get_asm_expr_operands): Re-order the
2594         clobbering of call-clobbered and addressable variables.  If
2595         there are any before aliases have been computed, add them.
2596
2597 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
2598
2599         * tree-optimize.c (execute_todo): Flush DUMP_FILE before
2600         verification.
2601
2602 2004-07-13  Ulrich Weigand  <uweigand@de.ibm.com>
2603
2604         * config/s390/s390.c (s390_gimplify_va_arg): Use size_int instead
2605         of build_int_2.  Convert both operands of PLUS_EXPR and MULT_EXPR
2606         to the same type.
2607
2608 2004-07-13  Per Bothner  <per@bothner.com>
2609
2610         * collect2.c (main):  Handle --no-demangle and --demangle flags.
2611
2612 2004-07-13  Sebastian Pop  <pop@cri.ensmp.fr>
2613
2614         * Makefile.in (OBJS-common): Add tree-data-ref.o.
2615         (tree-scalar-evolution.o): Add missing dependences on tree-pass.h flags.h.
2616         (tree-data-ref.o): New rule.
2617         * lambda.h: New file.
2618         * tree-data-ref.c: New file.
2619         * tree-data-ref.h: New file.
2620         * tree.c (int_cst_value, tree_fold_gcd): New functions.
2621         * tree.h (int_cst_value, tree_fold_gcd): Declared here.
2622
2623 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
2624
2625         PR target/13926
2626         * config/sparc/sparc-protos.h (output_ubranch): New prototype.
2627         * config/sparc/sparc.c (output_ubranch): New function.
2628         * config/sparc/sparc.md (jump pattern): Use it.
2629
2630 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
2631
2632         PR target/16494
2633         * config/sparc/sparc.c (output_cbranch): Properly guard
2634         the code handling far branches with TARGET_V9.
2635         * config/sparc/sparc.md (length attribute): Document the
2636         side-effect of having a length greater or equal to 3.
2637
2638 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
2639             Lloyd Parkes  <lloyd@must-have-coffee.gen.nz>
2640
2641         PR target/15186
2642         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass
2643         /usr/ucblib/sparcv9 as -R path when -compat-bsd is specified.
2644
2645 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
2646             Martin Sebor  <sebor@roguewave.com>
2647
2648         PR target/12602
2649         * doc/invoke.texi (SPARC options): Document -threads
2650         and -pthreads on Solaris.
2651
2652 2004-07-13  Richard Henderson  <rth@redhat.com>
2653
2654         * builtins.c (std_gimplify_va_arg_expr): Handle types passed
2655         by reference.
2656         (ind_gimplify_va_arg_expr): Remove.
2657         * tree.h (ind_gimplify_va_arg_expr): Remove.
2658         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Don't use it.
2659         * config/mmix/mmix.c (mmix_function_arg_pass_by_reference): Allow
2660         argsp to be null.
2661
2662         * config/arc/arc.c (arc_gimplify_va_arg_expr): Remove.
2663         (TARGET_GIMPLIFY_VA_ARG_EXPR): Remove.
2664         * config/cris/cris.c, config/fr30/fr30.c, config/frv/frv.c,
2665         config/iq2000/iq2000.c, config/m32r/m32r.c, config/mmix/mmix.c,
2666         config/mn10300/mn10300.c, config/v850/v850.c: Similarly.
2667
2668 2004-07-13  Richard Henderson  <rth@redhat.com>
2669
2670         * function.c (pass_by_reference): New.
2671         (assign_parm_find_data_types): Use it.
2672         * calls.c (initialize_argument_information): Likewise.
2673         (emit_library_call_value_1): Likewise.
2674         * expr.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
2675         * function.h (pass_by_reference): Declare.
2676
2677 2004-07-13  Richard Henderson  <rth@redhat.com>
2678
2679         * target-def.h (TARGET_MUST_PASS_IN_STACK): New.
2680         * target.h (struct gcc_target): Add calls.must_pass_in_stack.
2681         * expr.h (MUST_PASS_IN_STACK): Remove.
2682         * system.h (MUST_PASS_IN_STACK): Poison.
2683         * tree.h (must_pass_in_stack_var_size): Declare.
2684         (must_pass_in_stack_var_size_or_pad): Declare.
2685         * calls.c (must_pass_in_stack_var_size): New.
2686         (must_pass_in_stack_var_size_or_pad): Rename from
2687         default_must_pass_in_stack.
2688         * config/alpha/alpha.c (unicosmk_must_pass_in_stack): New.
2689         (TARGET_MUST_PASS_IN_STACK): New.
2690         * config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove.
2691         * config/fr30/fr30.c (fr30_must_pass_in_stack): New.
2692         (TARGET_MUST_PASS_IN_STACK): New.
2693         * config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove.
2694         * config/frv/frv.c (frv_must_pass_in_stack): New.
2695         (TARGET_MUST_PASS_IN_STACK): New.
2696         * config/frv/frv.h (MUST_PASS_IN_STACK): Remove.
2697         * config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove.
2698         * config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New.
2699         (ix86_must_pass_in_stack): Make static.
2700         * config/i386/i386.h (MUST_PASS_IN_STACK): Remove.
2701         * config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New.
2702         * config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove.
2703         * config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New.
2704         * config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove.
2705         * config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove.
2706         * config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New.
2707         (mcore_must_pass_on_stack): Remove.
2708         * config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove.
2709         * config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New.
2710         * config/mips/mips.h (MUST_PASS_IN_STACK): Remove.
2711         * config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New.
2712         * config/pa/pa.h (MUST_PASS_IN_STACK): Remove.
2713         * config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove.
2714         * config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove.
2715         * config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New.
2716         (TARGET_MUST_PASS_IN_STACK): New.
2717         * config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New.
2718         * config/sh/sh.h (MUST_PASS_IN_STACK): Remove.
2719         * config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New.
2720         * config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove.
2721         * config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New.
2722         * config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove.
2723         * doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from
2724         MUST_PASS_IN_STACK.
2725
2726         * calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h,
2727         config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c,
2728         config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h,
2729         config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c,
2730         config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c,
2731         config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c,
2732         config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
2733         config/xtensa/xtensa.c: Use target hook.
2734
2735 2004-07-13  Anthony Heading  <aheading@jpmorgan.com>
2736
2737         * configure.ac (gcc_cv_as_offsetable_lo10): Fix a typo.
2738         * configure: Rebuilt.
2739
2740 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
2741
2742         * doc/invoke.texi: Remove documentation for MIPS -mrnames option.
2743         * config/mips/mips.h (mips_reg_names): Don't declare.
2744         (MASK_NAME_REGS): Delete.  Shuffle other MASK_* values down.
2745         (TARGET_NAME_REGS): Delete.
2746         (TARGET_SWITCHES): Remove -mrnames.
2747         (REGISTER_NAMES): Initialise with the old contents of mips_reg_names[].
2748         (ADDITIONAL_REGISTER_NAMES): Remove entries for names mentioned
2749         in REGISTER_NAMES.
2750         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Delete.
2751         (override_options): Remove handling of TARGET_NAME_REGS.
2752
2753 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
2754
2755         * config/mips/mips.h (TARGET_*): Boolify.
2756
2757 2004-07-12  Nick Clifton  <nickc@redhat.com>
2758
2759         * config.gcc: Add sh-*-symbianelf target.
2760         * config/sh/sh.c: Add new target macros:
2761         TARGET_ENCODE_SECTION_INFO, TARGET_STRIP_NAME_ENCODING,
2762         TARGET_CXX_IMPORT_EXPORT_CLASS.
2763         (sh_file_start): Create a definition of the .directive section.
2764         (sh_attribute): Add dllimport and dllexport attributes.
2765         * config/sh/symbian-pre.h: New file.
2766         * config/sh/symbian-post.h: New file.
2767         * config/sh/symbian.c: New file. Contains Symbian specific
2768         functions.
2769         * config/sh/sh-protos.h: Add prototypes for new functions
2770         provided by symbian.c.
2771         * config/sh/t-symbian: New file.
2772         * doc/extend.texi: Document support for dllimport and dllexport
2773         attributes by the sh-symbianelf target.
2774
2775 2004-07-12  James E Wilson  <wilson@specifixinc.com>
2776
2777         * Makefile.in (AR): Use @AR@ not ar.
2778         (NM): New.
2779         (AR_FOR_TARGET): Use $(AR) not ar for native.
2780         (NM_FOR_TARGET): Use $(NM) not nm for native.
2781         * configure.ac: Add AC_CHECK_PROG calls for NM and AR.
2782         * configure: Regenerate.
2783
2784 2004-07-12  David S. Miller  <davem@nuts.davemloft.net>
2785
2786         * config/sparc/sparc.md (ashlsi3): Eliminate const 1
2787         special case.
2788         (ashldi3_sp64): Likewise.
2789
2790 2004-07-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2791
2792         PR target/16477
2793         * pa.c (function_arg): Update comment.
2794         * pa.h (BLOCK_REG_PADDING): Define.
2795
2796 2004-07-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2797
2798         PR tree-optimization/16461
2799         * tree-tailcall.c (independent_of_stmt_p): Handle non-SSA name
2800         arguments of phi nodes.
2801
2802 2004-07-12  Devang Patel  <dpatel@apple.com>
2803
2804         * doc/invoke.texi (Darwin Options): Document -gused and -gfull.
2805
2806 2004-07-12  Steve Ellcey  <sje@cup.hp.com>
2807
2808         * function.c (expand_function_start): Ensure r_save is in Pmode.
2809         * calls.c (prepare_call_address): Ensure static_chain_value is
2810         in Pmode.
2811         * builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and
2812         r_save_area are in Pmode.
2813         * config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr,
2814         fnaddr, and static_chain are in Pmode.
2815
2816 2004-07-12  Vladimir Makarov  <vmakarov@redhat.com>
2817
2818         PR target/16445
2819         * config/ia64/ia64.c (bundling): Don't count ignored insns.
2820
2821 2004-07-12  Richard Henderson  <rth@redhat.com>
2822
2823         * target.h (struct gcc_target): Move gimplify_va_arg_expr
2824         next to build_builtin_va_list.
2825         * target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match.
2826         * builtins.c (gimplify_va_arg_expr): Likewise.
2827         * gimplify.c (copy_if_shared_r): Likewise.
2828
2829 2004-07-12  Alexandre Oliva  <aoliva@redhat.com>
2830
2831         * passes.c (rest_of_decl_compilation): Don't defer call of
2832         assemble_variable if its DECL_RTL is already set.
2833
2834 2004-07-12  Sebastian Pop  <pop@cri.ensmp.fr>
2835
2836         * cfgloop.h (struct loop): Add nb_iterations field.
2837         (current_loops): Declare.
2838         * tree-chrec.c (chrec_not_analyzed_yet,
2839         chrec_dont_know, chrec_known, count_ev_in_wider_type,
2840         chrec_contains_symbols_defined_in_loop): Remove the temporary
2841         hooks.
2842         * tree-flow-inline.h (loop_containing_stmt): New function.
2843         * tree-scalar-evolution.c: Add implementation.
2844         * tree-scalar-evolution.h: Add declarations.
2845
2846 2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
2847
2848         PR rtl-optimization/15921
2849         * Makefile.in (global.o): Add recog.h.
2850
2851         * global.c (recog.h): Add the include-clause.
2852         (bb_info): New member earlyclobber.
2853         (allocate_bb_info, free_bb_info): Initialize/finish the new
2854         member.
2855         (earlyclobber_regclass, earlyclobber_regclass_length): The new
2856         global variables.
2857         (check_earlyclobber, regclass_intersect,
2858         mark_reg_use_for_earlyclobber, mark_reg_use_for_earlyclobber_1):
2859         New functions.
2860         (calculate_local_reg_bb_info): Calculate value of earlyclobber.
2861         (make_accurate_live_analysis): Modify pavin.
2862
2863 2004-07-12  Diego Novillo  <dnovillo@redhat.com>
2864
2865         * tree-cfg.c (find_taken_edge): Statically compute the truth
2866         value of a predicate comparing an SSA_NAME to itself.
2867
2868 2004-07-12  Roger Sayle  <roger@eyesopen.com>
2869
2870         * config/rs6000/rs6000.c (rs6000_rtx_costs): Indicate that the
2871         rs6000 doesn't have shift-and-add or shift-and-sub instructions
2872         by returning the cost of a multiplication plus an addition.
2873
2874 2004-07-12  Paolo Bonzini  <bonzini@gnu.org>
2875
2876         PR tree-optimization/14107
2877         * gimplify.c (gimplify_return_expr): Accept a
2878         RETURN_EXPR with an error argument.
2879         * tree-optimize.c (init_tree_optimization_passes):
2880         Run pass_warn_function_return at -O0.
2881
2882 2004-07-12  Roger Sayle  <roger@eyesopen.com>
2883
2884         * doc/invoke.texi: Correct -fasynchronous-unwind-tables option
2885         index entry.
2886
2887 2004-07-12  Richard Sandiford  <rsandifo@redhat.com>
2888
2889         * config/mips/mips.c (mips_use_dfa_pipeline_interface): Delete.
2890         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
2891         * config/mips/3000.md: Add copyright notice.  Remove automota and
2892         function units; use generic ones instead.  Only define reservations
2893         for things that are different from generic.md.  Extend each clause
2894         to include r3900.
2895         * config/mips/{4000,4100,4300,4600,5000,6000,generic}.md: New files.
2896         * config/mips/mips.md: Include them. Remove define_function_units.
2897         (alu, imuldiv): New automata and units.
2898
2899 2004-07-12  Ben Elliston  <bje@au.ibm.com>
2900
2901         * doc/invoke.texi (Optimize Options): Document -frename-registers
2902         not being enabled by default at -O3.
2903
2904 2004-07-11  Roger Sayle  <roger@eyesopen.com>
2905
2906         * fold-const.c (fold) <PLUS_EXPR>: Canonicalize X + -C as X - C for
2907         floating point additions, to keep real immediate constant positive.
2908         <MINUS_EXPR>:  For floating point subtractions, only transform X - -C
2909         into X + C, and leave positive real constants as X - C.
2910
2911 2004-07-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2912
2913         * pa.c (hppa_gimplify_va_arg_expr): Remove comment.
2914
2915 2004-07-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2916
2917         PR tree-optimization/15654
2918         * tree-tailcall.c (eliminate_tail_call): Remove unreachable code.
2919
2920 2004-07-11  Roger Sayle  <roger@eyesopen.com>
2921
2922         * builtins.c (fold_builtin_fputs): Don't bother converting the
2923         return type to integer_type_node, as we've already checked that
2924         the result will be ignored.
2925
2926         * tree-eh.c (tree_could_trap_p): Add support for -ftrapv such
2927         that signed addition, subtraction, multiplication, division,
2928         remainder, negation and absolute value may potentially trap.
2929
2930         * fold-const.c (fold_ignored_result): New function to strip
2931         non-side-effecting tree nodes from an expression whose result
2932         is ignored.
2933         (fold_convert): Call fold_ignored_result when casting a value
2934         to VOID_TYPE.
2935         (omit_one_operand):  Call fold_ignored_result on the "omitted"
2936         operand when building a COMPOUND_EXPR.
2937         (pedantic_omit_one_operand): Likewise.
2938         * tree.h (fold_ignored_result): Prototype here.
2939         * tree-ssa-ccp.c (ccp_fold_builtin): Call fold_ignored_result
2940         when we're going to ignore the result.
2941
2942 2004-07-11  Richard Henderson  <rth@redhat.com>
2943
2944         PR tree-opt/16383
2945         * tree-ssa-ccp.c (fold_stmt_r): Split out...
2946         * tree.c (fields_compatible_p, find_compatible_field): ... new.
2947         * tree.h (fields_compatible_p, find_compatible_field): Declare.
2948         * tree-sra.c (sra_hash_tree): Hash fields by offset.
2949         (sra_elt_eq): Use fields_compatible_p.
2950         (generate_one_element_ref): Use find_compatible_field.
2951
2952 2004-07-11  Richard Henderson  <rth@redhat.com>
2953
2954         PR tree-opt/16422
2955         * tree-sra.c (generate_one_element_init): New.
2956         (generate_element_init): Use it.
2957         (scalarize_init): Push/pop gimplify context around it.
2958         (find_new_referenced_vars_1, find_new_referenced_vars): New.
2959         * gimplify.c (gimplify_expr): Allow SSA_NAME.
2960
2961 2004-07-11  Roger Sayle  <roger@eyesopen.com>
2962
2963         * rtlanal.c (insn_rtx_cost): New function, moved and renamed from
2964         combine.c's combine_insn_cost.
2965         * rtl.h (insn_rtx_cost): Prototype here.
2966         * combine.c (combine_insn_cost): Delete function.
2967         (combine_validate_cost): Update callers of combine_insn_cost to
2968         call insn_rtx_cost instead.
2969         (combine_instructions): Likewise.  Use NONJUMP_INSN_P to avoid
2970         requesting the rtx_cost of call and/or jump instructions.
2971
2972         * ifcvt.c (total_bb_rtx_cost): Use insn_rtx_cost instead of calling
2973         rtx_cost directly.  Don't request/use the cost of call or jump
2974         instructions.  Return -1 if the cost of any instruction can't be
2975         determined (or the BB contains a function call).
2976         (find_if_case_1): Abort transformation if total_bb_rtx_cost returns
2977         -1 (i.e. can't determine the cost of any instruction or the basic
2978         block contains a subroutine call).
2979         (find_if_case_2): Likewise.
2980
2981 2004-07-11  Roger Sayle  <roger@eyesopen.com>
2982
2983         * rs6000.c (struct processor_costs): Change semantics of fields to
2984         include the COST_N_INSNS scaling, and update all initializers.
2985         (rs6000_rtx_costs): Don't use COSTS_N_INSNS on rs6000_cost fields.
2986         Use COSTS_N_INSNS(1) for NOT, SIGN_EXTEND, ZERO_EXTEND and COMPARE.
2987         Use rs6000_cost->fp for both FLOAT_TRUNCATE and UNSPEC_FRSP.  When
2988         optimizing for size, use COSTS_N_INSNS(1) for CALL and IF_THEN_ELSE.
2989
2990 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
2991
2992         * LANGUAGES: Remove obsolete information.
2993
2994 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
2995
2996         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): For SIGSEGV and
2997         SIGBUS signal frames, the PSW address points *to* the faulting
2998         instruction, not after it.
2999
3000 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
3001
3002         * config/s390/s390.c (legitimize_tls_address): Handle constant offsets
3003         added to TLS symbol addresses.
3004
3005 2004-07-11  Richard Henderson  <rth@redhat.com>
3006
3007         * expmed.c (init_expmed): Use stack-local structures for
3008         temporary rtl.  Don't recognize shifts.
3009
3010 2004-07-11  Richard Henderson  <rth@redhat.com>
3011
3012         * expr.c (store_expr): Don't fiddle subreg promotion for types
3013         with precision smaller than the mode.
3014
3015 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
3016
3017         * tree.h (all_types_permanent): Remove.
3018
3019 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
3020
3021         * langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block,
3022         maybe_build_cleanup, update_decl_after_saving): Remove hooks.
3023         * langhooks.c (lhd_clear_binding_stack): Remove.
3024         * langhooks-def.h (lhd_clear_binding_stack,
3025         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
3026         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING,
3027         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL,
3028         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
3029         (LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing.
3030         * system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
3031         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK,
3032         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
3033         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison.
3034         * tree.h (poplevel): Don't declare.
3035         * c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
3036         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
3037         * objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK,
3038         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
3039         Remove.
3040
3041 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
3042
3043         PR tree-optimization/16437
3044         * c-common.c (shorten_compare): Don't mark result of conversion to
3045         narrower signed type as overflowing.
3046         * fold-const.c (decode_field_reference): Determine whether
3047         signedness comes from outer type using precision rather than size.
3048
3049 2004-07-11  Phil Edwards  <phil@codesourcery.com>
3050
3051         * configure.ac:  Alphabetize --enable-checking list, add
3052         missing valgrind entry.
3053         * configure:  Regenerate.
3054
3055 2004-07-11  Phil Edwards  <phil@codesourcery.com>
3056
3057         * doc/install.texi (Testing):  Fix syntax in "make check" example.
3058
3059 2004-07-10  James E Wilson  <wilson@specifixinc.com>
3060
3061         * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp.
3062
3063 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3064
3065         PR rtl-optimization/16001
3066         * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in
3067         niter_expr.
3068
3069 2004-07-10  Geoffrey Keating  <geoffk@apple.com>
3070
3071         * config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt.
3072
3073 2004-07-10  Steve Kargl  <sgk@troutmask.apl.washington.edu>
3074             James Morrison  <phython@gcc.gnu.org>
3075
3076         * doc/contrib.texi (Contributors): Add gfortran contributors and
3077         fix a couple of typos.
3078
3079 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3080
3081         PR rtl-optimization/15387
3082         * calls.c (check_sibcall_argument_overlap_1): Handle pointers
3083         to incoming args space correctly.
3084
3085 2004-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3086
3087         * pa.c (output_indirect_call): Only use %r2 as the link register in
3088         indirect calls with the long PA 2.0 pc-relative branch.
3089
3090 2004-07-10  Daniel Jacobowitz  <dan@debian.org>
3091
3092         * config/i386/i386.c (override_options): Pick a 64-bit CPU
3093         for the default tuning if TARGET_64BIT.
3094
3095 2004-07-10  Richard Henderson  <rth@redhat.com>
3096
3097         * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary
3098         to HOST_WIDE_INT.  Fold pad-args-down arithmetic.
3099
3100 2004-07-10  Jakub Jelinek  <jakub@redhat.com>
3101
3102         * expr.h (store_bit_field, extract_bit_field): Remove last argument.
3103         * expmed.c (store_bit_field, extract_bit_field): Remove last
3104         argument.
3105         * builtins.c (expand_builtin_signbit): Adjust callers.
3106         * optabs.c (expand_vector_binop, expand_vector_unop): Likewise.
3107         * calls.c (store_unaligned_arguments_into_pseudos): Likewise.
3108         * ifcvt.c (noce_emit_move_insn): Likewise.
3109         * stmt.c (expand_return): Likewise.
3110         * expr.c (emit_group_load, emit_group_store, copy_blkmode_from_reg,
3111         store_field, expand_expr_real_1): Likewise.
3112
3113 2004-07-10  Richard Henderson  <rth@redhat.com>
3114
3115         * builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR.
3116
3117 2004-07-09  Mike Stump  <mrs@apple.com>
3118
3119         * config/darwin.c (no_dead_strip): Add.
3120         (HAVE_DEAD_STRIP): Add.
3121         (darwin_emit_unwind_label): Ensure that we don't dead code strip
3122         the .eh label.
3123
3124 2004-07-09  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3125
3126         * tree-ssa-loop-im.c: New file.
3127         * Makefile.in (tree-ssa-loop-im.o): Add.
3128         * cfgloop.c (superloop_at_depth): New function.
3129         * cfgloop.h (superloop_at_depth): Declare.
3130         * common.opt (ftree-lim): New flag.
3131         * expr.c (array_ref_up_bound): New function.
3132         * params.def (PARAM_LIM_EXPENSIVE): New parameter.
3133         * timevar.def (TV_LIM): New timevar.
3134         * tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when
3135         computing immediate uses of a phi node.
3136         * tree-flow.h (struct tree_ann_common_d): Add aux field.
3137         (loop_commit_inserts, for_each_index, tree_ssa_lim): Declare.
3138         * tree-optimize.c (init_tree_optimization_passes): Add pass_lim.
3139         * tree-pass.h (pass_lim): Declare.
3140         * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New
3141         functions.
3142         (pass_lim): New pass structure.
3143         * tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly.
3144         * tree.c (in_array_bounds_p): New function.
3145         * tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs.
3146         (in_array_bounds_p, array_ref_up_bound): Declare.
3147         * doc/invoke.texi (-ftree-lim, --param lim-expensive): Document.
3148         * doc/passes.texi (tree-ssa-loop-im.c): Document.
3149
3150 2004-07-09  Richard Henderson  <rth@redhat.com>
3151
3152         * builtins.c (expand_builtin_stpcpy): Don't modify len.
3153
3154         * tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs
3155         with prejudice.
3156
3157 2004-07-10  Kelley Cook  <kcook@gcc.gnu.org>
3158
3159         * flags.h: Delete redundant prototypes that are being generated
3160         in options.h from common.opt.
3161         * common.opt: Add in the expository comments formerly in flags.h.
3162
3163 2004-07-09  Jan Beulich  <jbeulich@novell.com>
3164
3165         * config/i386/i386.c (init_cumulative_args): Set mmx/sse registers
3166         available for use only when TARGET_MMX/_SSE is set, and check for
3167         variable argument function if any register count is non-zero.
3168         (function_arg): Correctly suppress repeated warnings for passing SSE
3169         vectors are arguments without SSE enabled.
3170         (ix86_function_arg_boundary): Without SSE enabled, the use of what
3171         would be SSE register modes does no longer influence the alignment.
3172
3173 2004-07-09  Richard Henderson  <rth@redhat.com>
3174
3175         * builtins.c (std_gimplify_va_arg_expr): Deny ARGS_GROW_DOWNWARD.
3176         Always align upward to arg boundary.  Use size_in_bytes/round_up.
3177         Maintain type-correctness of constants.
3178         * stor-layout.c (round_up, round_down): Special-case powers of 2.
3179
3180 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
3181
3182         * config/sparc/sparc.c (*_costs): Scale instruction costs
3183         by COSTS_N_INSNS.
3184         (sparc_rtx_costs): Adjust as appropriate.
3185
3186 2004-07-09  Jan Beulich  <jbeulich@novell.com>
3187
3188         * config/i386/mm3dnow.h: New.
3189         * config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64.
3190
3191 2004-07-09  Richard Henderson  <rth@redhat.com>
3192
3193         * simplify-rtx.c (simplify_const_relational_operation): Only
3194         look at bounds of scalar integers.
3195
3196 2004-07-09  Jan Beulich  <jbeulich@novell.com>
3197
3198         * config/i386/i386.md (sse2_clflush): Use correct operand for clflush.
3199
3200 2004-07-09  Andrew Pinski  <apinski@apple.com>
3201
3202         * objc/objc-act.c (build_module_descriptor): Mark UOBJC_MODULES_decl as
3203         always referenced.
3204         (synth_forward_declarations): Likewise for UOBJC_CLASS_decl and
3205         UOBJC_METACLASS_decl.
3206
3207 2004-07-09  James E Wilson  <wilson@specifixinc.com>
3208
3209         PR target/16364
3210         * config/ia64/ia64.c (ia64_function_arg): For a single element HFA,
3211         do return a parallel if hfa_mode == XFmode and mode == TImode.
3212
3213 2004-07-09  Jan Beulich  <jbeulich@novell.com>
3214
3215         * c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes
3216         permissible for unary plus.
3217
3218 2004-07-09  Jan Beulich  <jbeulich@novell.com>
3219
3220         * builtin-types.def (BT_UINT): Rename from BT_UNSIGNED.
3221         (BT_FN_UINT): Rename from BT_FN_UNSIGNED.
3222         (BT_FN_PTR_UINT): Rename from BT_FN_PTR_UNSIGNED.
3223         (BT_ULONG, BT_ULONGLONG, BT_UINTMAX, BT_FN_INT_UINT, BT_FN_INT_ULONG,
3224         BT_FN_INT_ULONGLONG, BT_FN_INT_INTMAX, BT_FN_INT_UINTMAX): New.
3225         * builtins.def (BUILTIN_CLZxxx, BUILTIN_CTXxxx, BUILTIN_PARITYxxx,
3226         BUILTIN_POPCOUNTxxx): Arguments are unsigned.
3227         (BUILTIN_xxxIMAX): New.
3228         * builtins.c (expand_builtin): Handle BUILT_IN_FFSIMAX,
3229         BUILT_IN_CLZIMAX, BUILT_IN_CTZIMAX, BUILT_IN_POPCOUNIMAX, and
3230         BUILT_IN_PARITYIMAX.
3231
3232 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
3233
3234         * config/sparc/sparc.h (processor_costs): Define.
3235         (sparc_costs): Declare.
3236         * config/sparc/sparc.c (cypress_costs, supersparc_costs,
3237         hypersparc_costs, sparclet_costs, ultrasparc_costs,
3238         ultrasparc3_costs): New.
3239         (sparc_override_options): Set sparc_costs as appropriate.
3240         (sparc_rtx_costs): Use sparc_costs instead of messy
3241         conditionals.
3242
3243 2004-07-09  Steven Bosscher  <stevenb@suse.de>
3244
3245         * doc/md.texi (Processor pipeline description): Mention that
3246         the old pipeline description is deprecated.
3247
3248         * config/rs6000/7450.md (automaton ppc7450): Split up, move
3249         mciu_7450 function unit to...
3250         (automaton ppc7450mciu): ...new automaton.
3251
3252         * haifa-sched.c (insert_schedule_bubbles_p): Remove.
3253         (schedule_block): Don't consider inserting bubbles.
3254         (sched_init): Don't initialize DFA bubbles.
3255         * target-def.h (TARGET_SCHED_INIT_DFA_BUBBLES,
3256         TARGET_SCHED_DFA_BUBBLE): Remove.
3257         * target.h (init_dfa_bubbles, dfa_bubble): Remove hooks.
3258         * doc/tm.texi (TARGET_SCHED_INIT_DFA_BUBBLES,
3259         TARGET_SCHED_DFA_BUBBLE): Remove documentation.
3260
3261         * stmt.c (conditional_context): Remove prototype.
3262         * tree.h (conditional_context): Remove.
3263         * tree-cfg.c (pre_insert_on_edge): Remove.
3264
3265         * c-common.h (c_expand_asm_operands): Remove prototype.
3266         * c-typeck.c (c_expand_asm_operands): Remove.
3267
3268 2004-07-09  Jan Beulich  <jbeulich@novell.com>
3269
3270         * config/i386/i386.c (classify_argument): Treat V1xx modes the same as
3271         their base modes. CTImode, TCmode, and XCmode must be passed in memory.
3272         TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode,
3273         and V8QI are class SSE. All sufficiently small remaining vector modes
3274         must be passed in one or two integer registers.
3275         (ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be
3276         returned in memory.
3277         (bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and
3278         __builtin_ia32_pmuludq128 have non-uniform argument and return types
3279         and must thus be handled explicitly.
3280         * config/i386/i386.md (*movdi_1_rex64): Add cases for moving between
3281         MMX and XMM regs.
3282         (movv8qi_internal, movv4hi_internal, movv2si_internal,
3283         movv2sf_internal): Permit moving between MMX and XMM registers (since
3284         MMX areguments and return values are passed in XMM registers).
3285         (sse2_umulsidi3): Correct type and mode.
3286
3287 2004-07-09  Richard Henderson  <rth@redhat.com>
3288
3289         * tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors.
3290
3291 2004-07-09  Eric Christopher  <echristo@redhat.com>
3292
3293         * config/rs6000/40x.md: Split into two automatons.
3294
3295 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
3296             Andrew Pinski  <apinski@apple.com>
3297
3298         * c-opts.c (c_common_post_options): Force unit-at-a-time mode
3299         on when we have more than one input file.
3300         (c_common_parse_file): Restore loop over all input files.
3301         Clarify diagnostic for -dy when YYDEBUG wasn't defined.
3302
3303         * c-decl.c (set_type_context): New function.
3304         (pop_scope): Use it to set context of types.  When we
3305         encounter a TYPE_DECL, set the context of the attached type too.
3306         (pop_file_scope): Don't call cpp_undef_all here.
3307         (diagnose_mismatched_decls): Do not complain about a second
3308         definition of an 'extern inline' function if it's not in the
3309         same translation unit.  Do not complain about inline
3310         declaration after use if the use was in a different
3311         translation unit.
3312         (merge_decls): Don't clobber olddecl's DECL_CONTEXT.
3313         (pushdecl): Do not put DECL_EXTERNAL, !TREE_PUBLIC decls in
3314         the external scope.
3315         (pushdecl_top_level): Likewise.
3316         (grokdeclarator): Clarify what is going on with setting
3317         DECL_EXTERNAL on function types, a little.
3318         (c_write_global_declarations): Don't do anything if
3319         -fsyntax-only or errors have been encountered.
3320
3321 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
3322
3323         * vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument.
3324
3325 2004-07-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3326
3327         PR target/16459
3328         * pa.c (output_indirect_call): Use %r2 as the link register when
3329         calling $$dyncall with a pc-relative branch.
3330
3331 2004-07-08  Gerald Pfeifer  <gerald@pfeifer.com>
3332
3333         * doc/install.texi (Binaries): Mention OpenPKG.
3334
3335 2004-07-09  Diego Novillo  <dnovillo@redhat.com>
3336
3337         Fix PR tree-optimization/15555
3338         * tree-dfa.c (dump_variable): If the variable is a pointer
3339         SSA_NAME, also dump its points-to information.
3340         * tree-flow.h (struct ptr_info_def): Add field
3341         is_dereferenced.
3342         (dump_points_to_info_for): Declare.
3343         (debug_points_to_info_for): Declare.
3344         * tree-optimize.c (init_tree_optimization_passes): Add a
3345         second alias analysis pass after DOM2.
3346         Move pass_del_pta to a later spot.
3347         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Do not
3348         create a name tags when we find a dereferenced pointer.  Just
3349         mark the pointer dereferenced.
3350         (collect_points_to_info_for): Move code to clear points-to
3351         information to create_name_tags.
3352         (create_name_tags): New function.
3353         (compute_flow_sensitive_aliasing): Call it.
3354         (setup_pointers_and_addressables): Mark type tags for renaming
3355         here instead of ...
3356         (create_memory_tag): ... here.
3357         (merge_pointed_to_info): Do not merge PT_MALLOC attributes.
3358         (dump_points_to_info_for): Declare extern.
3359         (debug_points_to_info_for): New function.
3360
3361 2004-07-09  Paolo Bonzini  <bonzini@gnu.org>
3362
3363         * config/arc/arc.md: Switch to DFA-based scheduler description.
3364         * config/arc/arc.c: Switch to DFA-based scheduler description.
3365
3366 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
3367
3368         * arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame
3369         pointer.
3370
3371 2004-07-09  Richard Henderson  <rth@redhat.com>
3372
3373         * config/xtensa/xtensa-protos.h (xtensa_va_arg): Remove.
3374         * config/xtensa/xtensa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
3375         (xtensa_gimplify_va_arg_expr): Rewrite from xtensa_va_arg.
3376         * config/xtensa/xtensa.h (EXPAND_BUILTIN_VA_ARG): Remove.
3377
3378         * config/v850/v850-protos.h (v850_va_arg): Remove.
3379         * config/v850/v850.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
3380         (v850_gimplify_va_arg_expr): Rewrite from v850_va_arg.
3381         * config/v850/v850.h (EXPAND_BUILTIN_VA_ARG): Remove.
3382         (FUNCTION_ARG_PASS_BY_REFERENCE): Handle variable size types.
3383         (FUNCTION_ARG_CALLEE_COPIES): Use FUNCTION_ARG_PASS_BY_REFERENCE.
3384
3385 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
3386
3387         PR target/12133
3388         * arm.c (arm_legitimate_index_p) Allow DFmode for soft-float
3389         and DImode to use +/-4k offset.
3390
3391 2004-07-09  Richard Henderson  <rth@redhat.com>
3392
3393         * config/stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_arg):
3394         Remove.
3395         * config/stormy16/stormy16.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
3396         (xstormy16_gimplify_va_arg_expr): Rewrite from
3397         xstormy16_expand_builtin_va_arg.
3398         * config/stormy16/stormy16.h (EXPAND_BUILTIN_VA_ARG): Remove.
3399
3400         * config/sparc/sparc-protos.h (sparc_va_arg): Remove.
3401         * config/sparc/sparc.c (sparc_gimplify_va_arg): Mark static.
3402
3403         * config/sh/sh-protos.h (sh_va_arg): Remove.
3404         * config/sh/sh.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
3405         (sh_gimplify_va_arg_expr): Rewrite from sh_va_arg.
3406         * config/sh/sh.h (EXPAND_BUILTIN_VA_ARG): Remove.
3407
3408         * config/pa/pa-protos.h (hppa_va_arg): Remove.
3409         * config/pa/pa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
3410         (hppa_gimplify_va_arg_expr): Rewrite from hppa_va_arg.
3411         * config/pa/pa.h (EXPAND_BUILTIN_VA_ARG): Remove.
3412
3413         * config/mn10300/mn10300-protos.h (mn10300_va_arg): Remove.
3414         * config/mn10300/mn10300.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
3415         (mn10300_gimplify_va_arg_expr): Rewrite from mn10300_va_arg.
3416         * config/mn10300/mn10300.h (EXPAND_BUILTIN_VA_ARG): Remove.
3417
3418 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
3419
3420         * config/sparc/sparc.md (return): Rewrite length formula.
3421         * config/sparc/sparc.c (output_return): Pass 1 as 5th
3422         argument to final_scan_insn when in a delay slot.
3423         (output_sibcall): Likewise.
3424
3425 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
3426
3427         * arm.c (arm_cpp_interwork): New variable.
3428         (arm_override_options): Set it if TARGET_INTERWORK was on the command
3429         line.
3430         * arm.h (arm_cpp_interwork): Declare it.
3431         (TARGET_CPU_CPP_BUILTINS): Use it to control definition of
3432         __THUMB_INTERWORK__ in the preprocessor.
3433
3434 2004-07-09  Nathan Sidwell  <nathan@codesourcery.com>
3435
3436         * vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto.
3437
3438 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
3439
3440         PR target/16416
3441         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro.
3442         Override default settings to account for -m32 and -m64.
3443
3444 2004-07-08  Randolph Chung  <tausq@debian.org>
3445
3446         * pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
3447
3448 2004-07-09  Alexandre Oliva  <aoliva@redhat.com>
3449
3450         * builtins.c (fold_builtin_strncpy): Make sure len is a constant
3451         before comparing it as such.
3452
3453 2004-07-08  Richard Henderson  <rth@redhat.com>
3454
3455         * builtins.c (std_gimplify_va_arg_expr): Hoist valist into a
3456         temporary.  Use bit arithmetic to align.
3457
3458 2004-07-08  Jerry Quinn  <jlquinn@optonline.net>
3459
3460         * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p,
3461         nonlocal_set_p, init_alias_analysis): Use, LABEL_P, JUMP_P, CALL_P,
3462         NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P.
3463         * bb-reorder.c (mark_bb_for_unlikely_executed_section,
3464         add_labels_and_missing_jumps, find_jump_block,
3465         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
3466         Likewise.
3467         * bt-load.c (btr_referenced_p, compute_defs_uses_and_gen,
3468         link_btr_uses, move_btr_def): Likewise.
3469         * builtins.c (expand_builtin_longjmp, expand_builtin_nonlocal_goto,
3470         expand_builtin_expect_jump): Likewise.
3471         * caller-save.c (save_call_clobbered_regs, insert_one_insn): Likewise.
3472         * calls.c (expand_call, emit_library_call_value_1): Likewise.
3473         * cfganal.c (forwarder_block_p): Likewise.
3474         * cfgbuild.c (inside_basic_block_p, count_basic_blocks,
3475         make_label_edge, rtl_make_eh_edge, make_edges, find_basic_blocks_1,
3476         find_bb_boundaries): Likewise.
3477         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
3478         merge_blocks_move_predecessor_nojumps,
3479         merge_blocks_move_successor_nojumps, insns_match_p,
3480         flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
3481         try_optimize_cfg): Likewise.
3482         * cfgexpand.c (expand_block, construct_exit_block): Likewise.
3483         * cfglayout.c (skip_insns_after_block, label_for_bb,
3484         record_effective_endpoints, insn_locators_initialize,
3485         fixup_reorder_chain, update_unlikely_executed_notes): Likewise.
3486         * cfgmainloop.c (create_loop_notes): Likewise.
3487         * cfgrtl.c (delete_insn, delete_insn_chain,
3488         create_basic_block_structure, rtl_delete_block, free_bb_for_insn,
3489         update_bb_for_insn, rtl_merge_blocks, rtl_can_merge_blocks,
3490         block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
3491         redirect_branch_edge, force_nonfallthru_and_redirect,
3492         rtl_tidy_fallthru_edge, back_edge_of_syntactic_loop_p,
3493         rtl_split_edge, commit_one_edge_insertion, print_rtl_with_bb,
3494         update_br_prob_note, rtl_verify_flow_info_1, rtl_verify_flow_info,
3495         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
3496         cfg_layout_delete_block, cfg_layout_can_merge_blocks_p,
3497         cfg_layout_merge_blocks, rtl_block_ends_with_call_p,
3498         need_fake_edge_p, rtl_flow_call_edges_add): Likewise.
3499         * combine.c (combine_instructions, can_combine_p, try_combine,
3500         find_split_point, record_dead_and_set_regs, reg_dead_at_p,
3501         distribute_notes, distribute_links, insn_cuid): Likewise.
3502         * cse.c (fold_rtx, cse_insn, cse_around_loop,
3503         invalidate_skipped_block, cse_set_around_loop,
3504         cse_end_of_basic_block, cse_main, cse_basic_block,
3505         cse_condition_code_reg): Likewise.
3506         * cselib.c (cselib_process_insn): Likewise.
3507         * ddg.c (create_ddg): Likewise.
3508         * df.c (df_insn_refs_record, df_bb_rd_local_compute, df_insns_modify):
3509         Likewise.
3510         * dwarf2out.c (dwarf2out_stack_adjust, dwarf2out_frame_debug,
3511         gen_label_die, dwarf2out_var_location): Likewise.
3512         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn,
3513         next_insn, previous_insn, next_nonnote_insn, prev_nonnote_insn,
3514         last_call_insn, active_insn_p, next_label, prev_label,
3515         link_cc0_insns, next_cc0_user, try_split, add_insn_after,
3516         add_insn_before, remove_insn, add_function_usage_to,
3517         reorder_insns, find_line_note, remove_unnecessary_notes,
3518         emit_insn_after_1, classify_insn): Likewise.
3519         * except.c (convert_from_eh_region_ranges_1, emit_to_new_bb_before,
3520         connect_post_landing_pads, sjlj_mark_call_sites,
3521         sjlj_emit_function_enter, sjlj_emit_function_exit, reachable_handlers,
3522         can_throw_internal, can_throw_external, set_nothrow_function_flags,
3523         convert_to_eh_region_ranges): Likewise.
3524         * explow.c (optimize_save_area_alloca): Likewise.
3525         * expr.c (expand_expr_real): Likewise.
3526         * final.c (insn_current_reference_address, compute_alignments,
3527         shorten_branches, final, scan_ahead_for_unlikely_executed_note,
3528         final_scan_insn, output_asm_label, leaf_function_p): Likewise.
3529         * flow.c (first_insn_after_basic_block_note, delete_dead_jumptables,
3530         propagate_block_delete_insn, propagate_one_insn,
3531         init_propagate_block_info, propagate_block, libcall_dead_p,
3532         mark_set_1, attempt_auto_inc, find_auto_inc, try_pre_increment):
3533         Likewise.
3534         * function.c (instantiate_virtual_regs, reorder_blocks_1,
3535         expand_function_start, expand_function_end, contains,
3536         thread_prologue_and_epilogue_insns,
3537         reposition_prologue_and_epilogue_notes): Likewise.
3538         * gcse.c (constprop_register, bypass_conditional_jumps,
3539         insert_insn_end_bb, gcse_after_reload): Likewise.
3540         * genemit.c (gen_expand, gen_split): Likewise.
3541         * genpeep.c (gen_peephole, main): Likewise.
3542         * global.c (build_insn_chain): Likewise.
3543         * graph.c (node_data, print_rtl_graph_with_bb): Likewise.
3544         * haifa-sched.c (unlink_other_notes, unlink_line_notes,
3545         get_block_head_tail, no_real_insns_p, rm_line_notes, save_line_notes,
3546         restore_line_notes, rm_redundant_line_notes, rm_other_notes,
3547         ok_for_early_queue_removal, set_priorities, sched_init): Likewise.
3548         * ifcvt.c (count_bb_insns, first_active_insn, last_active_insn,
3549         cond_exec_process_insns, end_ifcvt_sequence, noce_process_if_block,
3550         merge_if_block, block_jumps_and_fallthru_p, find_if_block,
3551         dead_or_predicable): Likewise.
3552         * integrate.c (try_constants): Likewise.
3553         * jump.c (rebuild_jump_labels, cleanup_barriers,
3554         purge_line_number_notes, init_label_info, mark_all_labels,
3555         squeeze_notes, get_label_before, get_label_after,
3556         reversed_comparison_code_parts, simplejump_p, pc_set,
3557         returnjump_p, onlyjump_p, follow_jumps, mark_jump_label,
3558         delete_barrier, delete_prior_computation, delete_computation,
3559         delete_related_insns, delete_for_peephole, redirect_jump):
3560         Likewise.
3561         * lcm.c (optimize_mode_switching): Likewise.
3562         * local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc):
3563         Likewise.
3564         * loop-doloop.c (doloop_valid_p, doloop_optimize): Likewise.
3565         * loop-invariant.c (find_exits, find_invariants_bb): Likewise.
3566         * loop-iv.c (simplify_using_assignment): Likewise.
3567         * loop.c (compute_luids, loop_optimize, scan_loop, libcall_other_reg,
3568         libcall_benefit, skip_consec_insns, move_movables, prescan_loop,
3569         find_and_verify_loops, labels_in_range_p, for_each_insn_in_loop,
3570         loop_bivs_init_find, strength_reduce, check_insn_for_bivs,
3571         check_insn_for_givs, check_final_value, update_giv_derive,
3572         basic_induction_var, product_cheap_p, check_dbra_loop,
3573         loop_insn_first_p, last_use_this_basic_block,
3574         canonicalize_condition, get_condition, loop_regs_scan, load_mems,
3575         try_copy_prop, LOOP_BLOCK_NUM, loop_dump_aux): Likewise.
3576         * modulo-sched.c (doloop_register_get, find_line_note, sms_schedule,
3577         sms_schedule_by_order): Likewise.
3578         * optabs.c (emit_no_conflict_block, emit_libcall_block): Likewise.
3579         * postreload.c (reload_cse_simplify_operands, reload_combine,
3580         reload_cse_move2add): Likewise.
3581         * predict.c (can_predict_insn_p, estimate_probability,
3582         expected_value_to_br_prob, process_note_predictions): Likewise.
3583         * print-rtl.c (print_rtx, print_rtl, print_rtl_single): Likewise.
3584         * profile.c (branch_prob): Likewise.
3585         * ra-build.c (live_out_1, livethrough_conflicts_bb,
3586         detect_webs_set_in_cond_jump): Likewise.
3587         * ra-debug.c (ra_print_rtx_object, ra_debug_insns,
3588         ra_print_rtl_with_bb): Likewise.
3589         * ra-rewrite.c (insert_stores, rewrite_program2): Likewise.
3590         * recog.c (next_insn_tests_no_inequality, find_single_use,
3591         split_all_insns, peephole2_optimize, if_test_bypass_p): Likewise.
3592         * reg-stack.c (next_flags_user, record_label_references,
3593         emit_swap_insn, swap_rtx_condition, subst_stack_regs,
3594         compensate_edge, convert_regs_1): Likewise.
3595         * regclass.c (scan_one_insn): Likewise.
3596         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
3597         regmove_optimize, fixup_match_1, single_set_for_csa,
3598         combine_stack_adjustments_for_block): Likewise.
3599         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Likewise.
3600         * reload.c (find_reloads, find_reloads_address_1, subst_reloads,
3601         find_equiv_reg): Likewise.
3602         * reload1.c (reload, calculate_needs_all_insns, set_label_offsets,
3603         reload_as_needed, emit_input_reload_insns, do_output_reload,
3604         delete_output_reload, delete_address_reloads_1, fixup_abnormal_edges):
3605         Likewise.
3606         * reorg.c (find_end_label, emit_delay_sequence,
3607         delete_from_delay_slot, delete_scheduled_jump, optimize_skip,
3608         get_jump_flags, rare_destination, mostly_true_jump,
3609         try_merge_delay_insns, redundant_insn, own_thread_p,
3610         fill_simple_delay_slots, fill_slots_from_thread,
3611         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
3612         dbr_schedule): Likewise.
3613         * resource.c (find_basic_block, next_insn_no_annul,
3614         find_dead_or_set_registers, mark_target_live_regs): Likewise.
3615         * rtl.h (RTX_PREV): Likewise.
3616         * rtlanal.c (global_reg_mentioned_p, no_labels_between_p,
3617         no_jumps_between_p, reg_used_between_p, reg_referenced_between_p,
3618         reg_set_p, find_last_value, dead_or_set_regno_p, find_reg_fusage,
3619         find_regno_fusage, pure_call_p, replace_label, rtx_referenced_p_1,
3620         tablejump_p, computed_jump_p, insns_safe_to_move_p,
3621         find_first_parameter_load, can_hoist_insn_p): Likewise.
3622         * sched-deps.c (get_condition, add_dependence, sched_analyze_2,
3623         sched_analyze_insn, sched_analyze, add_forward_dependence): Likewise.
3624         * sched-ebb.c (fix_basic_block_boundaries, add_deps_for_risky_insns,
3625         schedule_ebbs): Likewise.
3626         * sched-rgn.c (is_cfg_nonregular, find_conditional_protection,
3627         is_conditionally_protected, can_schedule_ready_p,
3628         add_branch_dependences, debug_dependencies): Likewise.
3629         * stmt.c (emit_nop, expand_start_case, emit_jump_if_reachable):
3630         Likewise.
3631         * unroll.c (unroll_loop, copy_loop_body, back_branch_in_range_p,
3632         reg_dead_after_loop, loop_find_equiv_value, loop_iterations,
3633         set_dominates_use, ujump_to_loop_cont): Likewise.
3634         * var-tracking.c (prologue_stack_adjust, vt_initialize): Likewise.
3635         * varasm.c (output_constant_pool_1): Likewise.
3636
3637 2004-07-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3638
3639         * tree-scalar-evolution.c: New file.
3640         * tree-scalar-evolution.h: New file.
3641         * tree-ssa-loop-niter.c: New file.
3642         * Makefile.in (SCEV_H): New.
3643         (tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files.
3644         * cfgloop.h (struct loop): Add bounds field.
3645         * tree-flow.h (struct tree_niter_desc): New type.
3646         (number_of_iterations_cond, number_of_iterations_exit,
3647         loop_niter_by_eval, find_loop_niter_by_eval,
3648         estimate_numbers_of_iterations, can_count_iv_in_wider_type,
3649         free_numbers_of_iterations_estimates): Declare.
3650         * tree.h (lower_bound_in_type, upper_bound_in_type): Declare.
3651         * params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter.
3652         * doc/invoke.texi (max-iterations-to-track): Document.
3653
3654 2004-07-08  Kaz Kojima  <kkojima@gcc.gnu.org>
3655
3656         * config/sh/sh.c (sh_va_arg): Initinalize lab_over.
3657         * config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses.
3658         (MODE_AFTER): Add cast appropriately.
3659         * config/sh/sh.md (movdi splitter): Likewise.
3660         (casesi_worker_2): Add const qualifier appropriately.
3661         (eh_return): Remove unused variable.
3662         (insv): Initialize v;
3663
3664 2004-07-08  Richard Henderson  <rth@redhat.com>
3665
3666         * config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove.
3667         * config/mmix/mmix.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
3668         (mmix_gimplify_va_arg_expr): Rewrite from mmix_expand_builtin_va_arg.
3669         * config/mmix/mmix.h (EXPAND_BUILTIN_VA_ARG): Remove.
3670         (FRAME_POINTER_REQUIRED): Use current_function_has_nonlocal_label.
3671
3672         * config/m32r/m32r-protos.h (m32r_va_arg): Remove.
3673         * config/m32r/m32r.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
3674         (m32r_gimplify_va_arg_expr): Rewrite from m32r_va_arg.
3675         * config/m32r/m32r.h (EXPAND_BUILTIN_VA_ARG): Remove.
3676
3677         * config/iq2000/iq2000-protos.h (iq2000_va_arg): Remove.
3678         * config/iq2000/iq2000.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
3679         (iq2000_gimplify_va_arg_expr): Rewrite from iq2000_va_arg.
3680         * config/iq2000/iq2000.h (EXPAND_BUILTIN_VA_ARG): Remove.
3681
3682         * config/frv/frv-protos.h (frv_expand_builtin_va_arg): Remove.
3683         * config/frv/frv.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
3684         (frv_gimplify_va_arg_expr): Rewrite from frv_expand_builtin_va_arg.
3685         * config/frv/frv.h (EXPAND_BUILTIN_VA_ARG): Remove.
3686
3687         * config/i860/i860-protos.h (i860_va_arg): Remove.
3688         * config/i860/i860.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
3689         (i860_gimplify_va_arg_expr): Rewrite from i860_va_arg.
3690         * config/i860/i860.h (EXPAND_BUILTIN_VA_ARG): Remove.
3691
3692 2004-05-31  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
3693
3694         * system.h: Prototype getpagesize if missing.
3695         * configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS.
3696         * configure: Regenerate.
3697         * config.in: Regenerate.
3698
3699 2004-07-08  Richard Henderson  <rth@redhat.com>
3700
3701         * config/fr30/fr30-protos.h (fr30_va_arg): Remove.
3702         * config/fr30/fr30.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
3703         (fr30_gimplify_va_arg_expr): New.
3704         (fr30_pass_by_reference, fr30_pass_by_value, fr30_va_arg): Remove.
3705         * config/fr30/fr30.h (EXPAND_BUILTIN_VA_ARG): Remove.
3706
3707 2004-07-08  Vladimir Makarov  <vmakarov@redhat.com>
3708
3709         PR target/16414
3710         * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison
3711         of asm_noperands result.
3712
3713 2004-07-08  Richard Henderson  <rth@redhat.com>
3714
3715         * config/cris/cris-protos.h (cris_expand_builtin_va_arg): Remove.
3716         * config/cris/cris.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
3717         (cris_gimplify_va_arg_expr): Rewrite from cris_expand_builtin_va_arg.
3718         * config/cris/cris.h (EXPAND_BUILTIN_VA_ARG): Remove.
3719
3720 2004-07-08  Richard Henderson  <rth@redhat.com>
3721
3722         * builtins.c (ind_gimplify_va_arg_expr): New.
3723         * tree.h (ind_gimplify_va_arg_expr): Declare.
3724         * config/arc/arc.c (arc_gimplify_va_arg_expr): Use it.
3725
3726 2004-07-08  Jan Beulich  <jbeulich@novell.com>
3727
3728         * expmed.c (extract_bit_field): Correct condition to use vec_extract
3729         patterns also on vector elements other than the first one.
3730         * config/i386/i386.md (vec_extractv2df, vec_extractv4sf): Add missing
3731         break statements.
3732
3733 2004-07-08  Geoffrey Keating  <geoffk@apple.com>
3734
3735         * config/rs6000/darwin-ldouble.c: Correct reference
3736         to the Linnainmaa paper.
3737
3738 2004-07-08  Richard Henderson  <rth@redhat.com>
3739
3740         * config/arc/arc-protos.h (arc_va_arg): Remove.
3741         * config/arc/arc.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
3742         (arc_gimplify_va_arg_expr): Rewrite from arc_va_arg.
3743         * config/arc/arc.h (EXPAND_BUILTIN_VA_ARG): Remove.
3744
3745         * config/c4x/c4x-protos.h (c4x_va_arg): Remove.
3746         * config/c4x/c4x.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
3747         (c4x_gimplify_va_arg_expr): Rewrite from c4x_va_arg.
3748         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_ARG): Remove.
3749
3750 2004-07-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3751
3752         * pa.md (prefetch_32, prefetch_64): Simplify constraint checks.
3753
3754 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
3755
3756         * c-decl.c (static_ctors, static_dtors): Make static.
3757         (pop_file_scope): Call c_common_write_pch and
3758         cgraph_finalize_compilation_unit here.
3759         (build_cdtor): Moved here from c-objc-common.c; simplify.
3760         (c_write_global_declarations_1): Clarify comment.
3761         (c_write_global_declarations): Close the external scope before
3762         doing anything else.  Call build_cdtor, cgraph_optimize, and
3763         mudflap_finish_file here.
3764         * c-lang.c (finish_file): Don't call c_objc_common_finish_file.
3765         Clarify comment.
3766         * c-objc-common.c: No need to include cgraph.h.
3767         (build_cdtor): Moved to c-decl.c.
3768         (c_objc_common_finish_file): Delete.
3769         * c-tree.h: Update to match.
3770         * objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file.
3771         (generate_static_references): Set TREE_USED before calling finish_decl.
3772         Eliminate unnecessary dummy declaration.  Call rest_of_decl_compilation
3773         on the static_instances_decl.
3774
3775 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
3776
3777         * c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope
3778         decls when there is only one input translation unit.
3779         * langhooks.c (lhd_set_decl_assembler_name): Partially revert
3780         change of 2004-07-05; do not treat declarations with
3781         DECL_CONTEXT a TRANSLATION_UNIT_DECL specially.
3782         * opts.c (cur_in_fname): Delete.
3783         * opts.h: Likewise.
3784         * tree.c: Revert changes of 2004-07-05; no special treatment
3785         for TRANSLATION_UNIT_DECLs.
3786         * Makefile.in (tree.o): Update dependencies.
3787
3788 2004-07-08  Roger Sayle  <roger@eyesopen.com>
3789
3790         * builtins.c (fold_builtin_strcpy): Merge functionality from
3791         simplify_builtin_strcpy.  Add additional len argument.  No longer
3792         static.  Remove function prototype.
3793         (fold_builtin_strncpy): Likewise integrate functionality from
3794         simplify_builtin_strncpy.  Add additional slen argument.  No
3795         longer static.  Remove function prototype.
3796         (simplify_builtin_strcy, simplify_builtin_strncpy): Delete.
3797         (simplify_builtin_fputs): Rename to fold_builtin_fputs.  Change
3798         types of "ignore" and "unlocked" parameters to bool.
3799         (fold_builtin_1):  Add additional ignore argument.  Call renamed
3800         fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked"
3801         builtins.  Update arguments to fold_builtin_strncpy and
3802         fold_builtin_strcpy.  Add function prototype.
3803         (fold_builtin): Add additional Boolean ignore argument to pass
3804         to fold_builtin_1.
3805         (simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy
3806         and fold_builtin_strncpy instead of simplify_builtin_fputs,
3807         simplify_builtin_strcpy and simplify_builtin_strncpy respectively.
3808
3809         * expr.h (simplify_builtin_fputs, simplify_builtin_strcpy,
3810         simplify_builtin_strncpy): Delete function prototypes.
3811         * tree.h (fold_builtin_fputs, fold_builtin_strcpy,
3812         fold_builtin_strncpy): Add function prototypes here.
3813         (fold_builtin): Update function prototype with new "bool ignore".
3814
3815         * tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin.
3816         (ccp_fold_builtin):  Update call to fold_builtin.  Call
3817         fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy
3818         instead of simplify_builtin_fputs, simplify_builtin_strcpy and
3819         simplify_builtin_strncpy respectively.
3820         * fold-const.c (fold): Update call to fold_builtin.
3821
3822 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
3823
3824         * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy
3825         to strcpy.
3826
3827         * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0.
3828         (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise.
3829         (FUNCTION_ARG_CALLEE_COPIES): Likewise.
3830         * calls.c: Remove ifdefs of macros above.
3831         * functions.c: Likewise.
3832         * expr.c: Likewise.
3833
3834 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
3835
3836         * config/sparc/sparc.md (UNSPECV_GOTO_V9): Delete.
3837         (arch attribute): Delete.
3838         (current_function_calls_alloca attribute): Rename into calls_alloca.
3839         (calls_eh_return): New attribute.
3840         (leaf_function): Likewise.
3841         (length attribute): Fix formula for sibcalls.
3842         (return insn): Correctly compute the 'length' attribute.
3843         (do_builtin_setjmp_setup): Adjust use of current_function_calls_alloca.
3844
3845 2004-07-08  Richard Henderson  <rth@redhat.com>
3846
3847         * tree-cfg.c (make_exit_edges): Use get_call_expr_in.
3848         (remove_useless_stmts_1, is_ctrl_altering_stmt): Likewise.
3849         (tree_block_ends_with_call_p, need_fake_edge_p): Likewise.
3850         * tree-eh.c (lower_eh_constructs_1): Likewise.
3851         * tree-sra.c (sra_walk_modify_expr): Likewise.
3852         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
3853         (eliminate_unnecessary_stmts): Likewise.
3854         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
3855         * tree-tailcall.c (optimize_tail_call): Likewise.
3856         * tree-ssa-ccp.c (get_rhs, set_rhs): Reorg to use switch.
3857
3858 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
3859             Jakub Jelinek  <jakub@redhat.com>
3860
3861         * config/i386/i386.c (override_options): Enable
3862         SSE prefetches with -mtune, as long as we are
3863         compiling for i686 or higher.  All i686 processors
3864         accept SSE prefetches as NOPS, some i586's don't.
3865
3866 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
3867
3868         PR target/10567
3869         * config/sparc/sparc.md (update_return): Honor flag_delayed_branch.
3870
3871 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
3872
3873         * tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in
3874         the handling of clobbering ASM_EXPRs.
3875
3876 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
3877
3878         PR target/16430
3879         * config/sparc/sparc.c (function_value): In 64-bit mode,
3880         return the aggregates larger than 16 bytes like unions.
3881
3882 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
3883
3884         PR target/16199
3885         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When
3886         'temp' is zero, generate new pseudos as needed and emit the
3887         sequence of insns in single-assignment form.  Resync comments
3888         with code.
3889         (sparc_emit_set_const64): Pass zero as 'temp' argument to above
3890         function before reload.
3891
3892 2004-07-08  Nathan Sidwell  <nathan@codesourcery.com>
3893
3894         * vec.c (vec_assert_fail): Remove duplicate 'function'.
3895
3896         * vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed.
3897
3898         * vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init):
3899         Allocation is signed.
3900         (VEC_reserve): Return flag, allocation is signed.
3901
3902 2004-07-08  Richard Henderson  <rth@redhat.com>
3903
3904         * tree-ssa-ccp.c (fold_stmt): Get type directly from
3905         OBJ_TYPE_REF_OBJECT.
3906
3907 2004-07-08  Joseph S. Myers  <jsm@polyomino.org.uk>
3908             Neil Booth  <neil@daikokuya.co.uk>
3909
3910         PR c/2511
3911         PR c/3325
3912         * c-decl.c (finish_struct): Ensure bit-fields are given the
3913         correct type.
3914         * c-common.c (c_common_signed_or_unsigned_type): For C, require
3915         the precision to match as well as the mode.
3916         * expr.c (reduce_to_bit_field_precision): New function.
3917         (expand_expr_real_1): Reduce expressions of bit-field type to
3918         proper precision.
3919         * langhooks.h (reduce_bit_field_operations): New hook.
3920         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
3921         Define.
3922         * c-lang.c, objc/objc-lang.c
3923         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
3924         * objc/objc-act.c (check_ivars): Convert types to bit-field types
3925         before checking.
3926         * tree.c (build_nonstandard_integer_type): New function.
3927         * tree.h (build_nonstandard_integer_type): New prototype.
3928         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat
3929         conversions between integer and boolean types as useless.
3930
3931 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
3932
3933         * c-common.c (c_common_nodes_and_builtins): Do not
3934         create __builtin_ptrdiff_t and __builtin_size_t.
3935
3936 2004-07-08  Andrew Pinski  <apinski@apple.com>
3937
3938         * Makefile.in (libbackend.o): Add -combine to the gcc
3939         command line.
3940
3941 2004-07-08  Nick Clifton  <nickc@redhat.com>
3942
3943         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Define.
3944         Set to -Os.
3945
3946 2004-07-08  Richard Henderson  <rth@redhat.com>
3947
3948         * except.c (expand_eh_region_start, expand_eh_region_end,
3949         expand_eh_handler, expand_eh_region_end_cleanup,
3950         expand_start_all_catch, expand_start_catch, expand_end_catch,
3951         expand_end_all_catch, expand_eh_region_end_allowed,
3952         expand_eh_region_end_must_not_throw, expand_eh_region_end_throw,
3953         expand_eh_region_end_fixup): Remove.
3954         * stmt.c (struct nesting): Remove stack_level, innermost_stack_block,
3955         cleanups, outer_cleanups, label_chain, exception_region.
3956         (struct goto_fixup): Remove stack_level, cleanup_list_list.
3957         (struct label_chain): Remove.
3958         (struct stmt_status): Remove x_stack_block_stack.
3959         (stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups,
3960         fixup_gotos, save_stack_pointer, expand_decl_cleanup,
3961         expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral,
3962         end_cleanup_deferral, last_cleanup_this_contour,
3963         containing_blocks_have_cleanups_or_stack_level,
3964         any_pending_cleanups): Remove.
3965         (expand_null_return_1): Take no arguments.
3966         (expand_label, expand_naked_return, expand_return,
3967         expand_start_bindings_and_block, expand_end_bindings, expand_decl,
3968         expand_anon_union_decl, expand_start_case, pushcase, pushcase_range,
3969         expand_end_case_type): Don't use any of them.
3970         * calls.c (expand_call): Likewise.
3971         * dojump.c (do_jump): Likewise.
3972         * function.c (expand_function_end): Likewise.
3973         * expr.c (store_expr, expand_expr_real_1): Likewise.
3974         (safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR.
3975         (expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR,
3976         CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR,
3977         EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR.
3978         * fold-const.c (fold_checksum_tree): Use first_rtl_op.
3979         * gengtype.c (adjust_field_tree_exp): Remove rtl op handling.
3980         * gimplify.c (gimplify_cleanup_point_expr): Renumber operands
3981         for WITH_CLEANUP_EXPR.
3982         (gimple_push_cleanup): Likewise.
3983         * integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE.
3984         * print-tree.c (print_node): Likewise.
3985         * tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR.
3986         * tree.c (first_rtl_op): Always just TREE_CODE_LENGTH.
3987         (has_cleanups): Remove GOTO_SUBROUTINE_EXPR.
3988         * tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2.
3989         (GOTO_SUBROUTINE_EXPR): Remove.
3990         * tree.h (WITH_CLEANUP_EXPR_RTL): Remove.
3991         (DECL_TOO_LATE): Remove.
3992         * except.h, tree.h: Update decls.
3993
3994 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
3995
3996         * explow.c (optimize_save_area_alloca): Do not accept parameters.
3997         * passes.c (rest_of_handle_final): Handle symout.
3998         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc):
3999         Push timevar here.
4000         (rest_of_handle_sched): Break out SMS.  Remove ifs for
4001         flag_schedule_insns and flag_modulo_sched.
4002         (rest_of_handle_addressof, rest_of_handle_cse2): Garbage
4003         collect at the end.
4004         (rest_of_handle_gcse2): Put under timevar TV_RELOAD_CSE_REGS.
4005         (rest_of_handle_partition_blocks, rest_of_handle_sms,
4006         rest_of_handle_if_after_reload, rest_of_handle_peephole2,
4007         rest_of_handle_mode_switching, rest_of_handle_jump,
4008         rest_of_handle_guess_branch_prob, rest_of_handle_eh,
4009         rest_of_handle_jump2, rest_of_handle_postreload,
4010         rest_of_handle_flow2, rest_of_clean_state,
4011         rest_of_handle_shorten_branches,
4012         rest_of_handle_prologue_epilogue,
4013         rest_of_handle_branch_target_load_optimize): New.
4014         (rest_of_compilation): Call the above.  Remove ggc_collect
4015         calls moved to rest_of_handle_*.
4016         * rtl.h (optimize_save_area_alloca): Do not accept parameters.
4017
4018         * dwarf2out.c (dwarf2out_begin_prologue): Use TREE_NOTHROW.
4019         * except.c (set_nothrow_function_flags): Set TREE_NOTHROW.
4020         * except.h (set_nothrow_function_flags): Update comment.
4021         * function.c (current_function_nothrow): Remove.
4022         * output.h (current_function_nothrow): Remove.
4023         * passes.c (rest_of_compilation): Do not set TREE_NOTHROW.
4024         * config/arm/arm.c (arm_compute_func_type): Use TREE_NOTHROW.
4025
4026 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
4027
4028         PR bootstrap/16326
4029         * reorg.c: Revert 2004-06-30 change.
4030         (find_end_label): If HAVE_epilogue and !HAVE_return,
4031         return 0 instead of creating a label at the end of the insn chain.
4032         (optimize_skip): Account for the failure mode of find_end_label.
4033         (fill_simple_delay_slots): Likewise.
4034         (fill_slots_from_thread): Likewise.
4035         (relax_delay_slots): Likewise.
4036
4037 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
4038
4039         * tree-flow.h (addressable_vars): Declare.
4040         * tree-ssa-alias.c (addressable_vars): Define.
4041         (setup_pointers_and_addressables): Add addressable variables
4042         to addressable_vars.
4043         * tree-ssa-operands.c (get_stmt_operands): Move
4044         handling of ASM_EXPRs ...
4045         (get_asm_expr_operands): ... here.
4046         When the ASM_EXPR clobbers memory, also clobber addressable
4047         variables.
4048         * tree-ssa.c (init_tree_ssa): Initialize addressable_vars.
4049         (delete_tree_ssa): Reset addressable_vars.
4050
4051 2004-07-07  Jan Beulich  <jbeulich@novell.com>
4052             Richard Henderson  <rth@redhat.com>
4053
4054         * varasm.c (assemble_variable): Use assemble_zeros for
4055         zero-initialized variables.
4056         (categorize_decl_for_section): Honor flag_zero_initialized_in_bss
4057         for SECCAT_BSS and SECCAT_TBSS.
4058
4059 2004-07-07  Jan Beulich  <jbeulich@novell.com>
4060
4061         * varasm.c (asm_output_bss): Don't declare unless BSS_SECTION_ASM_OP.
4062
4063         * expmed.c (emit_store_flag): Also special-case double-word
4064         (in-)equality comparison against -1.
4065
4066         * config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for
4067         passing arguments the containers for which are registers.
4068
4069         * calls.c (emit_library_call_value_1): Use mode of function parameter
4070         rather than that of argument since constants have none.
4071
4072 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
4073
4074         Introduce H8SX support.
4075         * expr.c (expand_strcpy): Renamed and moved to...
4076         * builtins.c (expand_movstr): ... here.  Tweak.
4077         (expand_builtin_strcpy): Adjust.  Use movstr if len can't be
4078         computed or has side effects.
4079         (expand_builtin_stpcpy): Likewise.  Use strcpy if return value is
4080         unused, or if mempcpy fails.  Adjust the return value in the
4081         latter case.  Use movstr if everything else fails.
4082         * doc/md.texi (movstr): Document.
4083         (movmemM, clrmemM): Fix explanation of memory block operands.
4084         * config/h8300/h8300.md (stpcpy): Renamed to...
4085         (movstr): ... this.  Adjust.
4086         2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
4087         * config/h8300/h8300.md: Rename movstr*, except for movstrict*, to
4088         movmem* and clrstr* to clrmem*.
4089         2004-06-27  Alexandre Oliva  <aoliva@redhat.com>
4090         * config/h8300/h8300.c (h8300_reg_class_from_letter): Map 'D' to
4091         GENERAL_REGS, always.
4092         (h8300_swap_into_er6, h8300_swap_into_er6): Handle the case of
4093         getting the stack pointer as addr.
4094         * config/h8300/h8300.h (PREDICATE_CODES): Remove constant rtxes
4095         from general_operand_dst.
4096         * config/h8300/h8300.md (movmd_internal_normal): New, normal-mode
4097         variant of...
4098         (movmd_internal): ... this.  Add modes to operands.  Disparage `D'
4099         instead of requiring it to match only before reload.
4100         (stpcpy_internal_normal): New, normal-mode variant of...
4101         (stpcpy_internal): ... this.  Add modes to operands.  Disparage
4102         `D' instead of requiring it to match only before reload.
4103         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Add
4104         mode argument.
4105         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Pass it to...
4106         * config/h8300/h8300.c (h8300_legitimate_address_p): Pass it to
4107         h8300_get_index.
4108         * config/h8300/h8300.md (attr type): Add call.
4109         (attr can_delay): If type is call, set it no.
4110         (call, call_value): Set type to call.
4111         2004-06-21  Alexandre Oliva  <aoliva@redhat.com>
4112         * config/h8300/h8300.md (logicalhi3_sn, logicalsi3_sn): New.
4113         2004-06-16  Alexandre Oliva  <aoliva@redhat.com>
4114         * tree.c (get_narrower): Don't narrow integral types into
4115         non-integral types.
4116         * config/h8300/h8300.c (h8300_expand_epilogue): Initialize
4117         frame_size *before* the first use.
4118         * config/h8300/h8300.md (movstrictqi): Reintroduce post-increment
4119         on input.
4120         (peephole2): Don't widen instructions that push SP.  Move
4121         decrement of SP to the end of all stm-generating peepholes.
4122         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
4123         * config/h8300/h8300.md (insv): Prefer to use AND to clear a bitfield
4124         and OR to set it to all ones.
4125         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
4126         * config/h8300/h8300.md (can_delay): Default to "no" for bit branches.
4127         (call, call_value): Set can_delay to "no".
4128         2003-07-22  Richard Sandiford  <rsandifo@redhat.com>
4129         * config/h8300/h8300.md (extzv): Make subreg check more robust.
4130         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
4131         * config/h8300/h8300.md (*brabit): Remove.
4132         * config/h8300/h8300.md (*brabc, *brabs): Remove mode from
4133         zero_extract.  Use bit_memory_operand as the predicate for
4134         operand 1 and 'WU' as the constraint.  Check the difference
4135         between the base length and the final one when deciding which
4136         type of branch to use.
4137         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
4138         * config/h8300/h8300.md (extzv): Remove mode from operands 0 and 1.
4139         Use convert_move to extend the result for TARGET_H8300SX.  Check
4140         for QImode memory references.  Optimize the case where the
4141         destination is a paradoxical subreg.
4142         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
4143         * config/h8300/h8300.md (*movsf_h8sx): Add an r <- G alternative.
4144         * config/h8300/h8300.md (andqi): Remove bclr from h8sx version.
4145         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
4146         * config/h8300/h8300.md: Include mova.md
4147         (length_table): Add mova and mova_zero.
4148         * config/h8300/h8300.c (print_operand): Handle '%o'.  Print a length
4149         after all constant addresses for '%R', '%X', '%T' and '%S'.
4150         (h8300_mova_length): New function.
4151         (h8300_insn_length_from_table): Use it to handle mova and mova_zero.
4152         * config/h8300/t-h8300 (mova.md): Generate from genmova.sh.  Add to
4153         dependencies for s-config, etc.
4154         * config/h8300/gemova.sh: New file.
4155         * config/h8300/mova.md: Generated.
4156         2003-07-20  Alexandre Oliva  <aoliva@redhat.com>
4157         * config/h8300/h8300.c (h8300_bitfield_length): New.
4158         (nibble_operand): Adjust.
4159         (h8300_binary_length): Handle conditional binary op.
4160         (h8300_insn_length_from_table): Handle bitfield and bitbranch.
4161         * config/h8300/h8300.h: Change constraints W# and Y# to P#>X and
4162         P#<X, respectively.  The original P is now IP4>X.  Introduced P#>0
4163         and P#<0, unused so far.  W and Y are now prefixes to multi-letter
4164         constraints.  WU is introduced as a variant of U that requires a
4165         mem, and is therefore considered an EXTRA_MEMORY_CONSTRAINT.
4166         * config/h8300/h8300.md (attr type): Added bitbranch.
4167         (attr length_table): Added bitfield and bitbranch.
4168         (attr length): Compute bitbranch length.
4169         (andqi): Separate pattern for H8300SX.  Use bfld for loading the
4170         least-significant bit of a byte.
4171         (brabit, brabc, brabs): New.
4172         (insv, extzv): Emit bfst and bfld on H8300SX.
4173         (bfld, bfst, seq, sne): New.
4174         (bstzhireg, cmpstz, bstz, bistz): New.
4175         (cmpcondbset, condbset, cmpcondbclr, condbclr): New.
4176         (cmpcondbsetreg, condbsetreg, cmpcondbclrreg, condbclrreg): New.
4177         2003-07-11  Richard Sandiford  <rsandifo@redhat.com>
4178         * config/h8300/h8300.c (h8sx_binary_memory_operator): New function.
4179         (h8sx_unary_memory_operator): New function.
4180         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Disable.
4181         (PREDICATE_CODES): Add h8sx_{unary,binary}_memory_operator.
4182         * config/h8300/h8300.md: Add peepholes to combine reloads and
4183         arithmetic insns.
4184         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
4185         * config/h8300/h830.md (cmpqi): Use 'i' rather than 'n' in constraints.
4186         (*cmphi_h8300hs, *addqi3, *addhi3_h8sx, subhi3): Likewise.
4187         (and?i, ior?i, xor?i): Likewise.
4188         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
4189         * config/h8300/h8300.c: Move enums and prototypes to head of file.
4190         Various whitespace fixes.
4191         (h8300_constant_length): New function, split out from...
4192         (h8300_displacement_size): ...here.  Rename h8300_displacement_length.
4193         (h8300_classify_operand): Use IN_RANGE.
4194         (h8300_classify_operand): Use h8300_constant_length.
4195         (h8300_short_move_mem_p): Tighten size check.
4196         (h8sx_mergeable_memrefs_p): Tighten equality check.
4197         2003-06-30  Richard Sandiford  <rsandifo@redhat.com>
4198         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Define __H8300SX__
4199         for -msx.
4200         * config/h8300/crti.asm: Use .h8300sx or .h8300sxn for -msx code.
4201         * config/h8300/crtn.asm: Likewise.
4202         * config/h8300/lib1funcs.asm: Likewise.  Use 32-bit pointers
4203         if __H8300SX__ is defined.
4204         2003-06-27  Richard Sandiford  <rsandifo@redhat.com>
4205         * config/h8300/h8300-protos.h (h8300_get_index): Add mode parameter.
4206         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Update accordingly.
4207         (GO_IF_MODE_DEPENDENT_ADDRESS): Treat POST_DEC, PRE_INC and indexed
4208         addresses as mode-dependent.
4209         * config/h8300/h8300.c (print_operand_address): Update call to
4210         h8300_get_index.
4211         (h8300_get_index): Take a mode argument.  Rework to fix an
4212         earlier misunderstanding.
4213         2003-06-26  Richard Sandiford  <rsandifo@redhat.com>
4214         * config/h8300/h8300.c (zero_extendqisi2): Force the source operand
4215         into a register if TARGET_H8300SX.
4216         (*zero_extendqisi2_h8300hs, *extendqisi2_h8300): Disable for
4217         TARGET_H8300SX.  Also disable related define_splits.
4218         (*zero_extendqisi2_h8sx, *extendqisi2_h8sx): New patterns.
4219         2003-06-23  Richard Sandiford  <rsandifo@redhat.com>
4220         * config/h8300/h8300.c (h8300_rtx_costs): Add h8sx handling.
4221         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
4222         * config/h8300/h8300.h (OK_FOR_Z): New macro.
4223         (EXTRA_CONSTRAINT_STR): Check it.
4224         * config/h8300/h8300.c (h8300_classify_operand): Accept null
4225         class arguments.
4226         (h8300_insn_length_from_table): Handle LENGTH_TABLE_MOV_IMM4.
4227         * config/h8300/h8300.md (length_table): Add mov_imm4.
4228         (movqi, movhi): Add Z <- W4 alternatives to h8sx patterns.
4229         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
4230         * genattrtab.c (write_eligible_delay): Allow candidate_insn to
4231         be a label.
4232         * config/h8300/h8300.h (DELAY_SLOT_LENGTH): New macro.
4233         * config/h8300/h8300.c (h8300_reorg): New function.
4234         (TARGET_MACHINE_DEPENDENT_REORG): Define.
4235         * config/h8300/h8300.md (length): Subtract the length of the
4236         delay slot from (pc) when checking the range of forward branches.
4237         (delay_slot, can_delay): New attributes.
4238         (define_delay): Add bra/s handling.
4239         (movmd_internal, return_h8sx, *return_1): Set can_delay to no.
4240         (jump): Add delayed-branch handling.
4241         2003-06-17  Richard Sandiford  <rsandifo@redhat.com>
4242         * expr.c (expand_strcpy): New function.
4243         * builtins.c (expand_builtin_strcpy): Fall back on expand_strcpy.
4244         (expand_builtin_stpcpy): Likewise.
4245         * config/h8300/h8300-protos.h (h8sx_split_movmd): Remove.
4246         (h8300_swap_into_er6, h8300_swap_out_of_er6): Declare.
4247         * config/h8300/h8300.c (h8300_reg_class_from_letter): Tweak 'd'
4248         handling to improve register allocation for -fno-omit-frame-pointer.
4249         (h8sx_split_movmd): Delete, moving er6 handling into...
4250         (h8300_swap_into_er6, h8300_swap_out_of_er6): ...these new functions.
4251         * config/h8300/h8300.md (UNSPEC_STPCPY): New unspec constant.
4252         (movmd): Add calls to copy_rtx.
4253         (movmd_internal): In the second alternative, allow the initial and
4254         final destination registers to be different .  Update the splitter
4255         accordingly.  Call h8300_swap_into_er6 and h8300_swap_out_of_er6
4256         instead of h8sx_split_movmd.
4257         (stpcpy, movsd): New expanders.
4258         (movsd_internal): New define_insn.
4259         2003-06-13  Richard Sandiford  <rsandifo@redhat.com>
4260         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Declare.
4261         (h8sx_emit_movmd, h8sx_split_movmd): Declare.
4262         * config/h8300/h8300.h (reg_class): Add COUNTER_REGS, SOURCE_REGS
4263         and DESTINATION_REGS.
4264         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
4265         (REGNO_REG_CLASS): Map er4, er5 and er6 to the new classes.
4266         (REG_CLASS_FROM_LETTER): Use h8300_reg_class_from_letter.
4267         (h8300_move_ratio): Declare.
4268         (MOVE_RATIO): Use it.
4269         * config/h8300/h8300.c (h8300_move_ratio): New variable.
4270         (h8300_init_once): Initialize it.
4271         (h8300_reg_class_from_letter): New function.
4272         (print_operand): Add an 'm' prefix for printing ".b", ".w" or ".l".
4273         (h8sx_emit_movmd, h8sx_split_movmd): New functions.
4274         * config/h8300/h8300.md (UNSPEC_MOVMD): New unspec constant.
4275         (COUNTER_REG, SOURCE_REG, DESTINATION_REG): New register constants.
4276         (movstrsi, movmd): New expanders.
4277         (movmd_internal): New insn.
4278         2003-06-06  Richard Sandiford  <rsandifo@redhat.com>
4279         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Define.
4280         2003-06-04  Richard Sandiford  <rsandifo@redhat.com>
4281         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxnelf for -msx -mn.
4282         * config/h8300/h8300.c (asm_file_start): Use .h8300sxn likewise.
4283         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
4284         * config/h8300/h8300.c (nibble_operand): Fix warning.
4285         * config/h8300/h8300.md (movstricthi): Set adjust_length to no.
4286         (movsi_h8sx): Likewise here and the normal h8sx movhi pattern.
4287         (movsf_h8300h): Disable for TARGET_H8300SX.
4288         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
4289         * config/h8300/h8300.h (PREDICATE_CODES): Add h8300_ldm_parallel,
4290         h8300_stm_parallel and h8300_return_parallel.
4291         * config/h8300/h8300.c (h8300_push_pop, h8300_stack_offset_p,
4292         h8300_ldm_stm_regno, h8300_ldm_stm_parallel, h8300_ldm_parallel,
4293         h8300_stm_parallel, h8300_return_parallel): New functions.
4294         (h8300_expand_prologue): Don't enforce ldm/stm register alignment
4295         if TARGET_H8300SX.  Use h8300_push_pop.
4296         (h8300_expand_epilogue): Likewise.  Try to merge the return insn
4297         and final pop when generating h8sx code.  Always emit some form
4298         of return insn.
4299         * config/h8300/h8300.md: Don't enforce register alignment in
4300         stm peepholes if TARGET_H8300SX.
4301         (ldm_h8300s, stm_h8300s, return_h8sx): New patterns.
4302         (ldm_h8300s_[234], stm_h8300_[234]): Disable.
4303         (epilogue): Expect h8300_expand_epilogue to emit a return insn.
4304         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
4305         * config/h8300/t-h8300 (MULTILIB_OPTIONS): Add a -msx multilib.
4306         (MULTILIB_DIRNAMES): Add a directory for it.
4307         (MULTILIB_MATCHES): Delete.
4308         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
4309         * final.c (walk_alter_subreg): Handle addresses with subregs
4310         inside a ZERO_EXTEND or AND.
4311         * config/h8300/h8300-protos.h (h8300_get_index): Declare.
4312         * config/h8300/h8300.h (INDEX_REG_CLASS): Set to GENERAL_REGS
4313         if TARGET_H8300SX.
4314         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_get_index.
4315         * config/h8300/h8300.c (print_operand_address): Handle @(dd,RnL.b),
4316         @(dd,Rn.w) and @(dd,ERn.L).
4317         (h8300_displacement_size): Take the whole address as argument.
4318         (h8300_classify_operand, h8300_short_move_mem_p): Adjust accordingly.
4319         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
4320         * config/mips/mips-protos.h (h8300_operands_match_p): Declare.
4321         (h8sx_mergeable_memrefs_p): Declare.
4322         * config/h8300/h8300.h (HAVE_POST_DECREMENT): Define to TARGET_H8300SX.
4323         (HAVE_PRE_INCREMENT): Likewise.
4324         (GO_IF_LEGITIMATE_ADDRESS): Accept pre/post increment/decrement
4325         addresses for TARGET_H8300SX,
4326         * config/h8300/h8300.c (print_operand_address): Deal with PRE_INC
4327         and POST_DEC.
4328         (movb_length_table, movl_length_table): New tables.
4329         (movw_length_table): Define to movb_length_table.
4330         (h8300_displacement_size): New, split out from...
4331         (h8300_classify_address): ...here.  Handle pre/post inc/dec.
4332         (h8300_short_immediate_length): Allow H8OP_MEM_COMPLEX operands.
4333         (h8300_insn_length_from_table): Add cases for movb, movw and movl.
4334         (h8sx_mergeable_memrefs_p, h8300_operands_match_p): New functions.
4335         (output_plussi): Use add.l #xx:3,Rn and sub.l #xx:3,Rn for h8sx.
4336         (compute_plussi_length, compute_plussi_cc): Update accordingly.
4337         (h8sx_unary_shift_operator): Get the mode from the operator.
4338         (binary_shift_operator): Likewise.
4339         * config/h8300/h8300.md: If a peephole2 applies gen_lowpart to
4340         a memory reference, check whether the reference is offsettable.
4341         (length_table): Add movb, movw and movl.
4342         (movqi): Add new h8sx pattern.  Don't force one operand to be a
4343         register when generating h8sx code.
4344         (movhi, movsi, movsf): Likewise.
4345         (movstrictqi): Use the length_table attribute.
4346         (movstricthi): Likewise.  Add h8sx alternative for mov.w #xx:3,Rn.
4347         (addqi3): Split into a define_expand and define_insn.  Don't accept
4348         memory operands in the expander.  Use h8300_operands_match_p to
4349         check for matching operands in the define_insn.
4350         (subqi3, negqi2, one_cmplqi2): Likewise.
4351         (add[hs]i3): Don't accept memory operands in the expander.  Likewise
4352         in any patterns that are unused in h8sx code.  In the h8sx patterns,
4353         use h8300_operands_match_p to check whether operands match.
4354         (sub[hs]i3, and[hi]3, ior[hs]i3, xor[hs]i3, neg[hsi]3,
4355         one_cmpl[hs]i3): Likewise.
4356         (andqi3, iorqi3, xorqi3): Likewise.  Don't call fix_bit_operand
4357         in the expander.
4358         2003-05-23  Richard Sandiford  <rsandifo@redhat.com>
4359         * config/h8300/h8300-protos.h (expand_a_shift): Return a bool.
4360         (h8300_insn_length_from_table): Add a second parameter.
4361         (output_h8sx_shift): Declare.
4362         * config/h8300/h8300.h (OK_FOR_W, OK_FOR_Y): New macros.
4363         (EXTRA_CONSTRAINT): Replace with...
4364         (EXTRA_CONSTRAINT_STR): ...this.  Use OK_FOR_W and OK_FOR_Y.
4365         (CONSTRAINT_LEN): Define, returning 2 for 'W' and 'Y'.
4366         (PREDICATE_CODES): Add entries for h8sx_unary_shift_operator
4367         and h8sx_binary_shift_operator.
4368         * config/h8300/h8300.c (two_insn_adds_subs_operand): Return false
4369         for TARGET_H8300SX.
4370         (bit_operand): Replace use of EXTRA_CONSTRAINT with OK_FOR_U.
4371         (bit_memory_operand, fix_bit_operand): Likewise.
4372         (h8300_length_table_for_insn): Remove.
4373         (h8300_classify_operand): Fix check for 16-bit operands in 32-bit
4374         instructions.
4375         (h8300_short_immediate_length, h8300_binary_length): New functions.
4376         (h8300_insn_length_from_table): Add an opcodes parameter.  Rework.
4377         (output_plussi): Use sub to add negative constants.
4378         (compute_plussi_length): Adjust accordingly.
4379         (h8sx_single_shift_type): New enum.
4380         (h8sx_single_shift, h8sx_unary_shift_operator,
4381         h8sx_binary_shift_operator, output_h8sx_shift): New functions.
4382         (expand_a_shift, expand_a_rotate): Emit nothing if the shift is a
4383         single h8sx instruction.  Return false in this case.
4384         * config/h8300/h8300.md (length_table): Add short_immediate.
4385         (length): Pass the operand array to h8300_insn_length_from_table.
4386         (adjust_length): Assume "no" for insns with a length_table attribute.
4387         (*cmphi_h8300hs, cmpsi): Add alternatives for #xx:3.
4388         (*addhi3_h8300hs): Don't use for h8sx.
4389         (*addhi3_h8sx): New pattern, with alternatives for add.w #xx:3
4390         and sub.w #xx:3.
4391         (ashl[qhs]i3, lshr[qhs]i3, ashr[qhs]i3, rotl[qhs]i3): Change operand
4392         1's predicate to nonimmediate_operand.  Only skip default expansion
4393         if expand_a_shift or expand_a_rotate returns true.  Add new patterns
4394         for single h8sx shift instructions.
4395         2003-05-22  Alexandre Oliva  <aoliva@redhat.com>
4396         * config/h8300/h8300.c (nibble_operand): Split out of...
4397         (reg_or_nibble_operand): ... this.
4398         * config/h8300/h8300.h (PREDICATE_CODES): Added nibble_operand.
4399         * config/h8300/h8300.md: (mulqihi3, mulhisi3, umulqihi3,
4400         umulhisi3): Introduce expand, and introduce separate insns for
4401         sign- or zero-extended REG and already-extended CONST_INT.
4402         2003-05-20  Richard Sandiford  <rsandifo@redhat.com>
4403         * config/h8300/h8300.c (h8300_unary_length): Fix miscounting.
4404         * config/h8300/h8300.md (subqi3): Generalize for h8sx.
4405         (subhi3): Likewise.  Don't accept immediates for operand 1.
4406         Remove the early clobber from second alternative of the h8300s pattern.
4407         (subsi3): Generalize for h8sx.  Force operand 2 into a register
4408         on plain h8300 targets.
4409         (subsi3_h8300): Use h8300_dst_operand for consistency with expander.
4410         (subsi3_h8300h): Generalize for h8sx.
4411         (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise.
4412         2003-05-19  Alexandre Oliva  <aoliva@redhat.com>
4413         * config/h8300/h8300.c (reg_or_nibble_operand): New.
4414         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
4415         (TARGET_H8300SXMUL): New.
4416         (CONST_OK_FOR_P): New.
4417         (CONST_OK_FOR_LETTER_P): Adjust.
4418         * config/h8300/h8300.md (mulqihi3, mulhisi3, umulqihi3,
4419         umulhisi3): Accept 4-bit immediate on H8SX.
4420         (mulhi3, mulsi3, smulsi3_highpart, umulsi3_highpart): New.
4421         (udivsi3, divhi3, udivsi3, divsi3): New.
4422         2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
4423         * config/h8300/h8300-protos.h (h8300_insn_length_from_table): Declare.
4424         * config/h8300/h8300.h (OK_FOR_Q): New macro.
4425         (EXTRA_CONSTRAINT): Use it to check the 'Q' constraint.
4426         (PREDICATE_CODES): Add h8300_src_operand and h8300_dst_operand.
4427         Add ADDRESSOF to the bit_operand entry.
4428         * config/h8300/h8300.c (h8300_dst_operand): New predicate.
4429         (h8300_src_operand): Likewise.
4430         (bit_operand): Check nonimmediate_operand rather than general_operand.
4431         Accept any nonimmediate_operand in h8sx code.
4432         (h8300_and_costs): Initialize operands[1].
4433         (h8300_rtx_costs) <AND>: Return false if the operands aren't valid.
4434         (h8300_operand_class): New enum.
4435         (h8300_length_table): New typedef.
4436         (addb_length_table, addw_length_table, addl_length_table,
4437         logicl_length_table): New tables.
4438         (logicb_length_table, logicw_length_table): New macros.
4439         (h8300_classify_operand, h8300_length_from_table,
4440         h8300_length_table_for_insn, h8300_unary_length,
4441         h8300_insn_length_from_table): New functions.
4442         (output_plussi): Only use adds and subs for register destinations.
4443         Disable redundant clause.
4444         (compute_plussi_cc): Likewise.
4445         (compute_plussi_length): Likewise.  Use h8300_length_from_table
4446         to work out the length of an insn.
4447         (output_logical_op): Only use narrower immediate instructions
4448         if the destination is a register.
4449         (compute_logical_op_cc): Likewise.
4450         (compute_logical_op_length): Likewise.  Use h8300_length_from_table.
4451         (h8300_adjust_insn_length): Tighten check for reg<->mem moves.
4452         * config/h8300/h8300.md (length_table): New attribute.
4453         (length): When an instruction has a length_table attribute, use
4454         h8300_insn_length_from_table to calculate its default length.
4455         (cmpqi): Use h8300_dst_operand for the first operand and
4456         h8300_src_operand for the second.
4457         (cmphi, *cmphi_h8300hs, cmpsi, negqi2, neghi2, neghi2_h8300h, negsi2,
4458         negsi2_h8300h, addqi3, addhi3, *addhi3_h8300, *addhi3_h8300hs, addsi3,
4459         addsi_h8300, addsi_h8300h, andhi3, andsi3, iorhi3,
4460         iorsi3, xorhi3, xorsi3): Likewise.
4461         (andqi3): Use h8300_src_operand for operand 2.  Adjust the condition
4462         so that it allows any combination of operands for TARGET_H8300SX.
4463         (iorqi3, xorqi3): Likewise.
4464         (cmpqi): Use the length_table attribute.
4465         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, andqi3, iorqi3,
4466         xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
4467         (cmpqi): Add 'Q' constraint.
4468         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, addsi_h8300h, andqi3,
4469         iorqi3, xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
4470         2003-05-14  Richard Sandiford  <rsandifo@redhat.com>
4471         * config/h8300/h8300.h (MASK_H8300SX): New macro.
4472         (TARGET_H8300S): True for both -ms and -msx.
4473         (TARGET_H8300SX): New macro.
4474         (TARGET_SWITCHES): Add entries for -msx and -mno-sx.
4475         * config/h8300/h8300.c (asm_file_start): Write .h8300sx for -msx.
4476         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxelf for -msx.
4477         * config/h8300/t-h8300 (MULTILIB_MATCHES): Use -ms multilibs for -msx.
4478         [Temporary change.]
4479         2003-02-28  Alexandre Oliva  <aoliva@redhat.com>
4480         * config/h8300/h8300.h (SIZE_TYPE, PTRDIFF_TYPE): Use short with
4481         16-bit pointers and 32-bit ints.
4482         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Accept
4483         CONST_DOUBLE with mode no wider than SImode.
4484         * config/h8300/h8300.md (extendqisi2_h8300): Add constraints for
4485         output operand.
4486         2003-02-27  Alexandre Oliva  <aoliva@redhat.com>
4487         * config/h8300/h8300.c (general_operand_src): Match CONSTANT_P_RTX
4488         or SUBREG thereof.
4489         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
4490         2003-02-22  Alexandre Oliva  <aoliva@redhat.com>
4491         * config/h8300/h8300.c (dosize): Truncate sign * size to Pmode.
4492
4493 2004-05-28  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
4494
4495         * config.gcc (i[34567]86-*-mingw32*): Enable threads by default.
4496
4497 2004-07-07  Per Bothner  <per@bothner.com>
4498
4499         * flow.c (attempt_auto_inc):  Remove now-redundant PUT_CODE.
4500
4501 2004-07-07  Mike Stump  <mrs@apple.com>
4502
4503         * darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore.
4504         * darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name)
4505         (machopic_finish): Likewise.
4506
4507 2004-07-07  Richard Henderson  <rth@redhat.com>
4508
4509         * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look
4510         through any value-preserving cast.
4511
4512 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
4513
4514         * function.c (assign_parm_find_data_types): Call
4515         FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined.
4516
4517 2004-07-07  Steven Bosscher  <stevenb@suse.de>
4518
4519         * tree-cfg.c (group_case_labels): Remove case labels that have
4520         the same target as the default case.
4521
4522 2004-07-07  Steven Bosscher  <stevenb@suse.de>
4523
4524         * tree-inline.c (optimize_inline_calls): Set DECL_INLINED_FNS
4525         regardless of DECL_LANG_SPECIFIC being present or not.
4526         * tree.h (DECL_NUM_STMTS): Purge.
4527
4528 2004-07-07  Andrew Pinski  <apinski@apple.com>
4529
4530         * configure: Regenerate with the right autoconf.
4531
4532 2004-07-07  David Edelsohn  <edelsohn@gnu.org>
4533
4534         * ifcvt.c (total_bb_rtx_cost): New function.
4535         (find_if_case_1): Compare rtx_cost of basic block to cost of
4536         BRANCH_COST insns.
4537         (find_if_case_2): Same.
4538
4539 2004-07-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
4540
4541         PR target/10567
4542         * config/sparc/sparc.c (load_pic_register): Honor flag_delayed_branch.
4543         (output_return): Likewise.
4544         (output_sibcall): Abort if !flag_delayed_branch.
4545         (sparc_function_ok_for_sibcall): Return 0 if !flag_delayed_branch.
4546         (emit_and_preserve): New function.
4547         (sparc_output_mi_thunk): Use it.  Honor flag_delayed_branch.  Emit an
4548         indirect jump to the thunked-to function if !flag_delayed_branch.
4549         * config/sparc/sparc.md (delayed_branch): New attribute.
4550         (load_pcrel_sym): Honor flag_delayed_branch.  Use above
4551         attribute to compute the length of the insn.
4552         (goto_handler_and_restore): Likewise.
4553
4554 2004-07-07  Andrew Pinski  <apinski@apple.com>
4555
4556         PR tree-optimization/15777
4557         * fold-const.c (fold_single_bit_test): Fold the x^1 expression.
4558
4559         * expr.c (expand_expr_real_1): Fix formating.
4560         BUFFER_REF and IN_EXPR are dead.
4561         * fold-const.c (non_lvalue): BUFFER_REF is dead.
4562         * tree-inline.c (estimate_num_insns_1): Likewise.
4563         * tree-pretty-print.c (dump_generic_node): BUFFER_REF,
4564         IN_EXPR, SET_LE_EXPR, and CARD_EXPR are dead.
4565         * tree.def (BUFFER_REF, IN_EXPR, SET_LE_EXPR, CARD_EXPR): Kill.
4566
4567 2004-07-07  H.J. Lu  <hongjiu.lu@intel.com>
4568
4569         * collect2.c (dump_file): Don't call cplus_demangle if
4570         HAVE_LD_DEMANGLE is defined.
4571         (main): Pass "--demangle" to ld if no_demangle is not 0 and
4572         HAVE_LD_DEMANGLE is defined. Don't set current_demangling_style
4573         if HAVE_LD_DEMANGLE is defined.
4574
4575         * configure.ac (--with-demangler-in-ld): Added
4576         (HAVE_LD_DEMANGLE): Define if ld supports --demangle when
4577         --with-demangler-in-ld is used.
4578         * config.in: Regenerated.
4579         * configure: Likewise.
4580
4581 2004-07-07  Roger Sayle  <roger@eyesopen.com>
4582
4583         * config/rs6000/rs6000.c (struct processor_costs): Add new fields
4584         for simple floating point operations "fp", double precision
4585         multiplication "dmul", and single and double precision division
4586         "sdiv" and "ddiv".  Update all CPU variant tables as appropriate.
4587         (ppc630_cost): New table split from ppc620_cost, to distinguish
4588         differences in floating point latencies.
4589         (rs6000_override_options): Use ppc630_cost for PROCESSOR_PPC630.
4590         (rs6000_rtx_costs): Add support for single and double precision
4591         floating point addition, subtraction, multiplication, division,
4592         fused-multiply-add, fused-multiply-sub, negation, absolute value
4593         and negative absolute value.  Tweak MEM case to use prefered idiom.
4594
4595 2004-07-07  Richard Henderson  <rth@redhat.com>
4596
4597         * tree-flow-inline.h (may_propagate_copy): Move...
4598         * tree-ssa-copy.c (may_propagate_copy): ... here.  Fail if we
4599         attempt to copy between types requiring conversion.
4600         * tree-flow.h (may_propagate_copy): Update decl.
4601         * tree-ssa-dom.c (cprop_operand): Tidy redundant tests.
4602
4603 2004-07-07  Jakub Jelinek  <jakub@redhat.com>
4604
4605         * config/i386/i386.c (override_options): Don't set x86_prefetch_sse
4606         from -mtune= option.
4607
4608 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
4609
4610         * builtins.c: Rename movstr*, except for movstrict*, to
4611         movmem* and clrstr* to clrmem*.
4612         * expr.c: Likewise.
4613         * expr.h: Likewise.
4614         * genopinit.c: Likewise.
4615         * integrate.c: Likewise.
4616         * local-alloc.c: Likewise.
4617         * optabs.c: Likewise.
4618         * optabs.h: Likewise.
4619         * config/alpha/alpha.h: Likewise.
4620         * config/alpha/alpha.md: Likewise.
4621         * config/arm/arm-protos.h: Likewise.
4622         * config/arm/arm.c: Likewise.
4623         * config/arm/arm.md: Likewise.
4624         * config/avr/avr.md: Likewise.
4625         * config/c4x/c4x.c: Likewise.
4626         * config/c4x/c4x.md: Likewise.
4627         * config/frv/frv.md: Likewise.
4628         * config/i386/i386-protos.h: Likewise.
4629         * config/i386/i386.c: Likewise.
4630         * config/i386/i386.h: Likewise.
4631         * config/i386/i386.md: Likewise.
4632         * config/i860/i860.c: Likewise.
4633         * config/i860/i860.md: Likewise.
4634         * config/ip2k/ip2k.md: Likewise.
4635         * config/ip2k/libgcc.S: Likewise.
4636         * config/ip2k/t-ip2k: Likewise.
4637         * config/m32r/m32r.c: Likewise.
4638         * config/m32r/m32r.md: Likewise.
4639         * config/mcore/mcore.md: Likewise.
4640         * config/mips/mips.c: Likewise.
4641         * config/mips/mips.md: Likewise.
4642         * config/ns32k/ns32k.c: Likewise.
4643         * config/ns32k/ns32k.h: Likewise.
4644         * config/ns32k/ns32k.md: Likewise.
4645         * config/pa/pa.c: Likewise.
4646         * config/pa/pa.md: Likewise.
4647         * config/pdp11/pdp11.h: Likewise.
4648         * config/pdp11/pdp11.md: Likewise.
4649         * config/rs6000/rs6000.c: Likewise.
4650         * config/rs6000/rs6000.md: Likewise.
4651         * config/s390/s390-protos.h: Likewise.
4652         * config/s390/s390.c: Likewise.
4653         * config/s390/s390.md: Likewise.
4654         * config/sh/lib1funcs.asm: Likewise.
4655         * config/sh/sh.c: Likewise.
4656         * config/sh/sh.md: Likewise.
4657         * config/sh/t-sh: Likewise.
4658         * config/sparc/sparc.h: Likewise.
4659         * config/vax/vax.md: Likewise.
4660         * config/xtensa/xtensa.c: Likewise.
4661         * config/xtensa/xtensa.md: Likewise.
4662         * doc/invoke.texi: Likewise.
4663         * doc/md.texi: Likewise.
4664         * doc/rtl.texi: Likewise.
4665
4666 2004-07-07  Richard Sandiford  <rsandifo@redhat.com>
4667
4668         PR target/16407
4669         * config/mips/mips-protos.h (mips_declare_common_object): Declare.
4670         * config/mips/mips.c (mips_declare_common_object): New function,
4671         mostly split out from...
4672         (mips_output_aligned_decl_common): ...here.
4673         * config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of...
4674         (ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition.
4675         * config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this
4676         rather than ASM_OUTPUT_LOCAL.  Call mips_declare_common_object.
4677
4678 2004-07-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4679
4680         PR c/16392
4681         * function.c (assign_parms): Fix typo from previous change.
4682
4683 2004-07-07  Jason Merrill  <jason@redhat.com>
4684
4685         PR c++/15815
4686         * doc/extend.texi (C++ Interface): Correct information and
4687         discourage use.
4688
4689 2004-07-07  Vladimir Makarov  <vmakarov@redhat.com>
4690
4691         PR target/16130
4692         PR target/16142
4693         PR target/16143
4694         * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm
4695         insn.
4696
4697 2004-07-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
4698
4699         PR target/1679.
4700         * config/m32r/m32r.c (m32r_function_symbol): New function:
4701         Generate a symbol name RTX with the correct m32r specific flags
4702         set.
4703         (block_move_call): Use new function to generate correct symbol.
4704         * config/m32r/m32r-protos.h: Add prototype for new funcion.
4705         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new
4706         function.
4707
4708 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
4709
4710         * tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE,
4711         TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES,
4712         TYPE_BINFO_BASETYPE): Remove.
4713         (BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename
4714         to ...
4715         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
4716         here.
4717         (BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ...
4718         (BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here.
4719         (BINFO_INHERITANCE_CHAIN): Redocument as it is actually used.
4720         (struct tree_binfo): Rename base_types to base_binfos.
4721         * alias.c (record_component_aliases): Adjust BINFO macros.
4722         * dbxout.c (dbxout_type): Likewise.
4723         * dwarf2out.c (gen_member_die): Likewise.
4724         * sdbout.c (sdbout_one_type): Likewise.
4725         * tree-dump.c (deque_and_dump): Likewise.
4726         * config/i386/i386.c (classify_argument,
4727         contains_128bit_aligned_vector_p): Likewise.
4728
4729 2004-07-07  Nick Clifton  <nickc@redhat.com>
4730
4731         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Change
4732         arguments to match TARGET_SETUP_INCOMING_VARARGS prototype.
4733
4734 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
4735
4736         * vec.h: Fix the example use.
4737
4738 2004-07-06  Richard Henderson  <rth@redhat.com>
4739
4740         * langhooks-def.h (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Remove.
4741         * langhooks.h (struct lang_hooks): Remove gimple_before_inlining.
4742         * tree-inline.c (copy_body_r, setup_one_parameter,
4743         initialize_inlined_parameters, expand_call_inline,
4744         declare_inline_vars): Don't check it.
4745         (expand_calls_inline): Remove old version, rename new version
4746         from gimple_expand_calls_inline.
4747         * tree-optimize.c (execute_gimple): Remove.
4748         (pass_gimple): Don't run anything.
4749
4750 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
4751
4752         * doc/sourcebuild.texi: Use semicolons instead of commas in
4753         section title.
4754
4755 2004-07-06  Richard Henderson  <rth@redhat.com>
4756
4757         * tree-sra.c (struct sra_walk_fns): Revert 2004-07-05 change.
4758         (sra_walk_modify_expr, scan_init): Likewise.
4759         (generate_element_zero): Check visited before scanning children.
4760         (generate_element_init): Set visited on error.
4761         (scalarize_init): Handle generate_element_init failure similar
4762         to use_block_copy.
4763
4764 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
4765
4766         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define.
4767         (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG.
4768
4769 2004-07-06  Richard Henderson  <rth@redhat.com>
4770
4771         * config/i386/i386.c (legitimize_pic_address): Make static.
4772         (legitimize_address): Handle CONST with TLS operand.
4773         (ix86_expand_move): Don't call legitimize_pic_address directly.
4774         * config/i386/i386-protos.h (legitimize_pic_address): Remove.
4775
4776 2004-07-06  Roger Sayle  <roger@eyesopen.com>
4777
4778         * ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field.
4779         (noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway.
4780         (noce_process_if_block): Initialize if_info.b_unconditional if insn_b
4781         is currently executed unconditionally, i.e. not in "else_bb".
4782
4783 2004-07-06  Steven Bosscher  <stevenb@suse.de>
4784
4785         * config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove.
4786         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
4787         * config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove.
4788         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
4789         * config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove.
4790         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
4791         * config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove.
4792         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
4793         * config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove.
4794         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
4795         * config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove.
4796         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
4797         * config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove.
4798         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
4799         * config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove.
4800         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
4801
4802 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
4803
4804         * dojump.c (do_jump): REFERENCE_EXPR is dead.
4805         * expr.c (expand_expr_real_1): Ditto.
4806         * tree-inline.c (estimate_num_insns_1): Ditto.
4807         * tree-pretty-print.c (dump_generic_node): Ditto.
4808         (op_symbol): Ditto.
4809         * tree.def: Ditto.
4810
4811 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
4812
4813         * tree-ssa-pre.c (reference_node_pool): New pool.
4814         (find_or_generate_expression): Class 'r' is okay too.
4815         (create_value_expr_from): Ditto.
4816         (add_to_sets): LHS should not include vuses.
4817         (eliminate): Ditto.
4818         (compute_avail): Reverse ordering of tests.
4819         Valuize INDIRECT_REF as well.
4820
4821 2004-07-06  Richard Sandiford  <rsandifo@redhat.com>
4822
4823         PR rtl-optimization/16380
4824         * loop.c (check_dbra_loop): Sink comparison instructions if they
4825         do something other than set cc0.
4826
4827 2004-07-06  James E Wilson  <wilson@specifixinc.com>
4828
4829         * doc/interface.texi (longjmp and automatic variables): Delete
4830         paragraph recommending taking the address of a variable.
4831
4832 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
4833
4834         * vec.h (VEC_embedded_alloc): Remove.
4835         (VEC_embedded_size, VEC_embedded_init): New.
4836         (VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add
4837         MEM_STAT_INFO.
4838         (VEC_truncate): New.
4839         (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL.
4840         (vec_embedded_alloc): Remove.
4841         * vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust.
4842         (vec_embedded_alloc): Remove.
4843
4844 2004-07-06  Mark Mitchell  <mark@codesourcery.com>
4845
4846         * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h.
4847         (gt-langhooks.h): Remove.
4848
4849 2004-07-06  George Helffrich <george@gly.bris.ac.uk>
4850
4851         * xcoffout.h (DBX_FINISH_SYMBOL): Fix typo.
4852
4853 2004-07-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
4854
4855         * config/sparc/sparc.c (get_pc_symbol): Rename into
4856         add_pc_to_pic_symbol.
4857         (get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name.
4858         (load_pic_register): Account for previous changes.
4859         Use reg_names.  Don't create the label twice.
4860         * config/sparc/sparc.md (UNSPEC_GET_PC): Rename into
4861         UNSPEC_LOAD_PCREL_SYM.
4862         (get_pc): Rename into load_pcrel_sym.  Add predicate to
4863         operands.  Remove condition.
4864
4865 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
4866
4867         * dbxout.c (dbxout_type): Don't test whether the binfo slot of
4868         RECORD, UNION & QUAL_UNION is actually a binfo.
4869
4870         * tree.h (TREE_VIA_VIRTUAL): Rename to ...
4871         (BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only.
4872         (BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags.
4873         * dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P.
4874         * dwarf2out.c (add_data_member_location_attribute): Likewise.
4875         (gen_inheritance_die): Likewise.
4876         * tree-dump.c (deque_and_dump): Likewise.
4877         * doc/c-tree.texi (Binfos): Add under reconstruction note.
4878
4879 2004-07-06  Steven Bosscher  <stevenb@suse.de>
4880
4881         * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
4882         Define.
4883         * config/mcore/mcore.md: Model memory latency with a simple DFA
4884         pipeline description instead of a define_function_unit.
4885
4886 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4887
4888         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg.
4889         * langhooks.h (var_mod_type_p): Likewise.
4890         * c-decl.c (finish_decl): Add extra arg to variably_modified_type_p.
4891         * expr.c (count_type_elements): Properly handle return from
4892         array_type_nelts and properly test for overflow.
4893         * gimplify.c (gimplify_init_constructor): Properly handle return
4894         from array_type_nelts.
4895         (gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS.
4896         * integrate.c (copy_decl_for_inlining): Correct comments.
4897         * tree-inline.c (remap_decl): Update comments, remove dead code,
4898         and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist.
4899         (remap_type): Only remap if variably modified by vars in function
4900         being inlined.
4901         (copy_body_r): Use compatible_type langhooks to see when can fold.
4902         (setup_one_parameter): Don't remap type.
4903         (inline_forbidden_p_1): Add arg to variably_modified_type_p.
4904         * tree.c (recompute_tree_invarant_for_addr_expr): Properly
4905         compute TREE_INVARIANT for decl case.
4906         (find_var_from_fn): New function.
4907         (variably_modified_type_p): Add arg and call new function.
4908         * tree.h (variably_modified_type_p): Add extra arg.
4909
4910 2004-07-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
4911
4912         * config/sparc/sparc.md (nonlocal_goto): Remove disabled code.
4913         (goto_handler_and_restore_v9): Delete disabled insn.
4914         (goto_handler_and_restore_v9_sp64): Likewise.
4915
4916 2004-07-05  Roger Sayle  <roger@eyesopen.com>
4917
4918         * calls.c (load_register_parameters): Call expand_shift instead
4919         of expand_binop with ashl_optab (or other shift optab) directly.
4920         * expr.c (emit_group_load, emit_group_store): Likewise.
4921         * function.c (assign_parm_setup_block): Likewise.
4922         * stmt.c (shift_return_value): Likewise.
4923
4924 2004-07-05  Jakub Jelinek  <jakub@redhat.com>
4925
4926         * expr.c (expand_assignment): Disable the bitfield += optimizations.
4927
4928 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
4929
4930         * doc/sourcebuild.texi: Revert previous patch.
4931
4932 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
4933
4934         * c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check
4935         TARGET_MEM_FUNCTIONS.
4936         * system.h: Poison TARGET_MEM_FUNCTIONS.
4937         * libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc,
4938         bcmp_libfunc, bzero_libfunc): Remove.
4939         * optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or
4940         bzero_libfunc.
4941         * doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove.
4942         * doc/standards.texi: Don't mention calling BSD string functions.
4943         * doc/invoke.texi: Likewise.  Mention that memmove may be called.
4944         * config/vax/t-memfuncs: New.
4945         * config/memcmp.c, config/memcpy.c, config/memmove.c,
4946         config/memset.c: New.
4947         * config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files.
4948         * config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use
4949         vax/t-memfuncs.
4950         * config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h,
4951         config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h,
4952         config/elfos.h, config/gnu.h, config/h8300/h8300.h,
4953         config/i386/gas.h, config/ia64/ia64.h, config/interix.h,
4954         config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h,
4955         config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h,
4956         config/netbsd.h, config/openbsd.h, config/pa/pa.h,
4957         config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h,
4958         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
4959         config/svr3.h: Don't define TARGET_MEM_FUNCTIONS.
4960
4961 2004-07-05  Richard Henderson  <rth@redhat.com>
4962
4963         * function.c (assign_parm_setup_reg): Properly rename variables in
4964         FUNCTION_ARG_CALLEE_COPIES section.
4965
4966 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
4967
4968         * tree-mudflap.c: Include cgraph.h.
4969         (mf_init_extern_trees): Rename to mudflap_init.  Export.
4970         Rewrite to create synthetic declarations instead of looking
4971         up declarations from mf-runtime.h.
4972         (mf_make_builtin, mf_make_cache_struct_type): New functions.
4973         (mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl):
4974         Correct commentary.
4975         (execute_mudflap_function_decls, mudflap_register_call):
4976         Don't call mf_init_extern_trees.
4977         (mudflap_finish_file): Use cgraph_build_static_cdtor.
4978
4979         * tree-mudflap.h: Update prototypes.
4980         * c-mudflap.c: Delete file.
4981         * c-common.c: Include tree-mudflap.h.
4982         (c_common_nodes_and_builtins): Call mudflap_init if appropriate.
4983         * Makefile.in: Remove all references to c-mudflap.o.
4984         Update dependencies.
4985
4986 2004-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4987
4988         * pa.md (prefetch, prefetch_32, prefetch_64): Only allow short
4989         displacements with the spatial-locality cache-control completer.
4990
4991 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
4992
4993         * langhooks.c: Don't include gt-langhooks.h.
4994         (var_labelno): Delete.
4995         (lhd_set_decl_assembler_name): Do not append a distinguishing
4996         number to file-scope internal-linkage declarations for the first
4997         input file, even if they have DECL_CONTEXT set.  Use DECL_UID of
4998         the declaration itself (if at block scope), or its containing
4999         TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing
5000         number.
5001
5002         * opts.c (cur_in_fname): New global.
5003         * opts.h: Declare it.
5004         * tree.c: Include opts.h.
5005         (make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it
5006         DECL_UID equal to cur_in_fname.
5007         (copy_node_stat): Do not change DECL_UID when copying a
5008         TRANSLATION_UNIT_DECL.
5009         (build_common_tree_nodes): Adjust next_decl_uid to reserve the
5010         range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs.
5011
5012         * c-decl.c (c_static_assembler_name): Delete.
5013         * c-tree.h (c_static_assembler_name): Delete prototype.
5014         * c-lang.c, objc/objc-lang.c: Don't override
5015         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME.
5016
5017         * Makefile.in (tree.o): Update dependencies.
5018         (GTFILES): Remove langhooks.c.
5019
5020 2004-07-05  Roger Sayle  <roger@eyesopen.com>
5021
5022         * fold-const.c (fold) <TRUNC_MOD_EXPR>: Optimize unsigned modulus
5023         by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)".
5024         Normalize "X % C" as "X % -C" for signed modulus and negative C.
5025         Optimize "X % -Y" as "X % Y" for signed modulus.
5026         <EQ_EXPR>: Recursively call "fold" when transforming "(X % Y) == 0"
5027         into "((unsigned) X % Y) == 0".
5028
5029 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
5030
5031         * sourcebuild.texi (Config Fragments): Use @comma{} in
5032         cross-reference to section title.
5033
5034 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5035
5036         * tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro.
5037         * gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it.
5038         (gimplify_target_expr, gimplify_expr): Likewise.
5039         (copy_if_shared_r): No longer need special case for BIND_EXPR.
5040         (unshare_body, unvisit_body): Only look at nested if BODY_P is
5041         whole function.
5042         (gimplify_compound_lval): See if we can strip any useless conversion.
5043         (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size
5044         from RHS, not LHS.
5045         (gimplify_modify_expr_to_memset): Likewise.
5046         (gimplify_expr, case CONSTRUCTOR): Handle use as statement.
5047         * tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P.
5048         (declare_inline_vars): Likewise.
5049         (walk_type_fields): New function.
5050         (walk_tree): Use it.
5051         * tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR.
5052
5053         * tree-sra.c (struct sra_walk_fns): Init function now returns bool.
5054         (sra_walk_modify_expr): Allow init function to fail.
5055         (scan_init): Now returns bool.
5056         (generate_element_init): If can't understand INIT, return false.
5057         (scalarize_init): Return false if generate_element_init does.
5058
5059         * tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly
5060         print bounds.
5061
5062         * expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against
5063         bounds if bounds aren't constant.
5064
5065         * tree-cfg.c (verify_expr): Use CHECK_OP in binary case.
5066
5067         * function.c, langhooks-def.h, langhooks.h: Move max_size hook
5068         to type hooks; remove bogus PARAMS.
5069
5070 2004-07-05  Nathan Sidwell  <nathan@codesourcery.com>
5071
5072         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
5073         * dwarf2out.c (add_data_member_location_attribute): Check for
5074         TREE_BINFO.
5075         * tree.c (tree_node_kinds): Add "binfos".
5076         (binfo_lang_slots): New.
5077         (make_node_stat): Add TREE_BINFO.
5078         (make_tree_binfo_stat): New.
5079         (tree_node_structure): Add TREE_BINFO.
5080         * tree.def (TREE_BINFO): New.
5081         * tree.h (REC_OR_UNION_CHECK): Rename to ...
5082         (RECORD_OR_UNION_CHECK): ... here.
5083         (NOT_RECORD_OR_UNION_CHECK): New.
5084         (TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO.
5085         (TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for
5086         RECORD_OR_UNION_CHECK.
5087         (TYPE_BINFO): Use RECORD_OR_UNION_CHECK.
5088         (TYPE_LANG_SLOT_1): New.
5089         (BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS,
5090         BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD,
5091         BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust.
5092         (BINFO_ELTS): Remove.
5093         (BINFO_LANG_SLOT): New.
5094         (struct tree_binfo): New.
5095         (binfo_lang_slots): Declare.
5096         (enum tree_node_structure_enum): Add TS_BINFO.
5097         (union tree_node): Add binfo.
5098         (make_tree_binfo_stat): Declare.
5099         (make_tree_binfo): New.
5100         (enum tree_node_kind): Add binfo_kind.
5101
5102         * objc/objc-act.c (start_class, objc_declare_protocols,
5103         start_protocols): Use TYPE_LANG_SLOT_1.
5104         * objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename
5105         to ...
5106         (CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here.
5107         (CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE,
5108         CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS,
5109         PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1.
5110
5111 2004-07-05  Steven Bosscher  <stevenb@suse.de>
5112
5113         * rtl.h (struct rtx_def): Remove the integrated flag.
5114         Use the return_val flag for MEM_SCALAR_P.
5115         Reshuffle and update flags in CLEAR_RTX_FLAGS.
5116
5117 2004-07-05  Richard Sandiford  <rsandifo@redhat.com>
5118
5119         PR target/16357
5120         * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs
5121         to mips_expand_unaligned_load, mips_expand_unaligned_store, and
5122         move_by_pieces.
5123
5124 2004-07-05  Josef Zlomek  <zlomekj@suse.cz>
5125
5126         * var-tracking.c: Fix some comments.
5127         (frame_stack_adjust): New.
5128         (vt_stack_adjustments): Init stack_adjust of entry block to
5129         minus stack adjustment of function prologue.
5130         (adjust_stack_reference): Do not adjust if adjustment == 0.
5131         (compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS.
5132         (emit_notes_in_bb): Likewise.
5133         (vt_add_function_parameters): Do not adjust locations of
5134         function arguments.
5135         (vt_initialize): Compute the stack adjustment of function
5136         prologue and offset the initial "location" of frame_base_decl
5137         from the stack pointer after prologue.
5138
5139 2004-07-04  Richard Henderson  <rth@redhat.com>
5140
5141         * function.c (struct assign_parm_data_all): New.
5142         (struct assign_parm_data_one): New.
5143         (assign_parms_initialize_all, assign_parms_augmented_arg_list,
5144         assign_parm_find_data_types, assign_parms_setup_varargs,
5145         assign_parm_find_entry_rtl, assign_parm_is_stack_parm,
5146         assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl,
5147         assign_parm_adjust_stack_rtl, assign_parm_setup_block_p,
5148         assign_parm_setup_block, assign_parm_setup_reg,
5149         assign_parm_setup_stack, assign_parms_unsplit_complex): Split from ...
5150         (assign_parms): ... here.
5151
5152 2004-07-04  Daniel Berlin  <dberlin@dberlin.org>
5153
5154         * tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets
5155         now are bitmap_set_t's.
5156         (bitmap_insert_into_set): No point in inserting the value if
5157         it's invariant.
5158         (bitmap_set_contains): New function.
5159         (bitmap_set_replace_value): Add comment on why we do it
5160         this way.
5161         (set_contains): Removed.
5162         (bitmap_set_subtract_from_value_set): New name of
5163         set_subtract now that it's arguments are two different
5164         types of sets.
5165         Update callers.
5166         (bitmap_find_leader): Change algorithm used.
5167         (find_or_generate_expression): Update use of functions for new
5168         bitmap sets.
5169         (create_expression_by_pieces): Ditto.
5170         (insert_aux): Ditto.
5171         (insert): Ditto.
5172         (add_to_sets): Ditto.
5173         (init_pre): Ditto.
5174         (execute_pre): Ditto.
5175         (compute_avail): Ditto.
5176         Also ignore virtual phis.
5177
5178 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
5179
5180         * combine.c (simplify_comparison): Fix comment typo.
5181
5182 2004-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
5183
5184         * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename
5185         into LEAF_SIBCALL_SLOT_RESERVED_P after negation.
5186         (eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P.
5187         (output_restore): Change parameter from 'insn' to 'pat'.
5188         (output_return): Adjust call to output_restore.
5189         (output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P.
5190         Adjust call to output_restore.
5191
5192 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
5193
5194         * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__
5195         and assert system is bsd.
5196
5197 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
5198
5199         * config/mips/mips.h (MASK_DEBUG_C, TARGET_DEBUG_C_MODE): Delete.
5200         (TARGET_SWITCHES): Remove -mdebugc.
5201         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
5202         (sltu, sleu): Remove TARGET_DEBUG_C_MODE handling.
5203         (seq_[sd]i, sne_[sd]i, sge_[sd]i, sle_[sd]i_reg, sgeu_[sd]i)
5204         (sle_[sd]i_reg): Delete.
5205
5206 2004-07-04  Steven Bosscher  <stevenb@suse.de>
5207
5208         * config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
5209         Define.
5210         * config/iq2000/iq2000.md: Translate old pipeline description to an
5211         equivalent new one.
5212
5213 2004-07-04  Roger Sayle  <roger@eyesopen.com>
5214
5215         * tree-ssa-ccp.c (set_rhs): Change function to return a bool.
5216         Ensure the replacement rhs is valid gimple before performing
5217         the substitution.  Return false if these sanity checks fail.
5218         (fold_stmt): Only set changed to true, if set_rhs returns true.
5219         (execute_fold_all_builtins): Only call modify_stmt if set_rhs
5220         succeeds.
5221
5222 2004-07-04  Richard Henderson  <rth@redhat.com>
5223
5224         PR c/16348
5225         * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops.
5226
5227 2004-07-04  Mark Mitchell  <mark@codesourcery.com>
5228
5229         * configure.ac (ranlib_flags): New variable.
5230         * Makefile.in (RANLIB_FLAGS): New variable.
5231         (libbackend.a): Use it.
5232         * configure: Regenerated.
5233
5234 2004-07-04  Roger Sayle  <roger@eyesopen.com>
5235
5236         * ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate
5237         a "sign mask" instead of using ashr_optab directly.
5238
5239 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
5240
5241         * doc/cpp.texi: Don't document what we do for ill-formed expressions.
5242         * doc/cppopts.texi: Clarify processing of command-line defines.
5243
5244 2004-07-04  Gerald Pfeifer  <gerald@pfeifer.com>
5245
5246         * doc/contrib.texi (Contributors): Adjust link for GNU Classpath.
5247
5248 2004-07-04  Richard Henderson  <rth@redhat.com>
5249
5250         * rtl.def (ADDRESSOF): Remove.
5251         * alias.c (rtx_equal_for_memref_p): Don't handle addressof.
5252         (find_base_term, memrefs_conflict_p): Likewise.
5253         * cse.c (fixed_base_plus_p, find_best_addr: Likewise.
5254         (fold_rtx, cse_insn, set_live_p): Likewise.
5255         * dwarf2out.c (mem_loc_descriptor): Likewise.
5256         (add_location_or_const_value_attribute): Likewise.
5257         * emit-rtl.c (copy_insn_1): Likewise.
5258         * explow.c (memory_address): Likewise.
5259         * expmed.c (store_split_bit_field): Likewise.
5260         * expr.c (expand_expr_real_1): Likewise.
5261         * function.c (instantiate_decl
5262         (instantiate_virtual_regs_1, fix_lexical_addr): Likewise.
5263         * genrecog.c (preds, validate_pattern): Likewise.
5264         * integrate.c (copy_rtx_and_substitute): Likewise.
5265         * recog.c (general_operand, register_operand): Likewise.
5266         (memory_address_p): Likwise.
5267         * reload1.c (eliminate_regs, elimination_effects): Likewise.
5268         * rtl.c (copy_rtx): Likewise.
5269         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
5270         (rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise.
5271         * rtlhooks.c (gen_lowpart_general): Likewise.
5272         * stmt.c (expand_asm_operands): Likewise.
5273         * web.c (entry_register, replace_ref, web_main): Likewise.
5274         * config/alpha/alpha.c (input_operand, alpha_legitimate_address_p,
5275         alpha_expand_block_move, alpha_expand_block_clear): Likewise.
5276         * config/arm/arm.c (thumb_rtx_costs): Likewise.
5277         * config/c4x/c4x.c (c4x_valid_operands): Likewise.
5278         * config/frv/frv.c (move_destination_operand, move_source_operand,
5279         condexec_dest_operand, condexec_source_operand,
5280         condexec_memory_operand): Likewise.
5281         * config/h8300/h8300.h (PREDICATE_CODES): Likewise.
5282         * config/ia64/ia64.c (general_xfmode_operand): Likewise.
5283         (destination_xfmode_operand): Likewise.
5284         * config/mips/mips.h (PREDICATE_CODES): Likewise.
5285         * config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise.
5286         * config/s390/s390.c (general_s_operand): Likewise.
5287         * config/s390/s390.md (mov*): Likewise.
5288         * config/sparc/sparc.h (PREDICATE_CODES): Likewise.
5289
5290         * c-typeck.c (c_mark_addressable): Don't put_var_into_stack.
5291         * expr.c (expand_expr_real_1): Likewise.
5292         * stmt.c (expand_decl): Likewise.
5293         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
5294
5295         * function.c (struct fixup_replacement, struct insns_for_mem_entry,
5296         postponed_insns, put_var_into_stack, put_reg_into_stack,
5297         schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement,
5298         fixup_var_refs_insns, fixup_var_refs_insns_with_hash,
5299         fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg,
5300         walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field,
5301         gen_mem_addressof, flush_addressof, put_addressof_into_stack,
5302         purge_bitfield_addressof_replacements, purge_addressof_replacements,
5303         purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp,
5304         struct insns_for_mem_walk_info, insns_for_mem_walk,
5305         compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect,
5306         setjmp_protect_args): Remove.
5307         (push_function_context_to): Don't handle var_refs_queue.
5308         (pop_function_context_from, free_after_compilation): Likewise.
5309         (instantiate_virtual_regs): Don't handle parm_reg_stack_loc.
5310         (assign_parms, allocate_struct_function): Likewise.
5311         (use_register_for_decl): New.
5312         (expand_function_end): Don't setjmp_protect.
5313         * function.h (struct emit_status): Update commentary.
5314         (struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc.
5315         (max_parm_reg, parm_reg_stack_loc): Remove.
5316         * passes.c (DFI_addressof): Remove.
5317         (dump_file_info): Remove addressof.
5318         (rest_of_handle_addressof): Remove.
5319         (rest_of_compilation): Don't call it.
5320         * rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove.
5321         * stmt.c (expand_decl): Use use_register_for_decl.
5322         * tree.h: Update decls.
5323         * web.c (mark_addressof): Remove.
5324         * doc/invoke.texi (-dF): Remove.
5325
5326 2004-07-03  Richard Henderson  <rth@redhat.com>
5327
5328         * config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp
5329         instead of gen_mem_addressof.
5330         * config/ia64/ia64.md (movxf): Use assign_stack_temp to handle
5331         TImode output register.
5332
5333 2004-07-03  Richard Henderson  <rth@redhat.com>
5334
5335         PR tree-optimization/16341
5336         * tree-sra.c (sra_walk_function): Increment to next stmt before
5337         processing the current stmt.
5338         (sra_insert_after): Always use BSI_SAME_STMT.
5339
5340 2004-07-03  Richard Henderson  <rth@redhat.com>
5341
5342         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Don't fold
5343         fp plus with minus.
5344
5345 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
5346
5347         * tree.c (type_hash_eq): Allow TYPE_MIN_VALUE which compares equal
5348         with tree_int_cst_equal.
5349
5350 2004-07-03  Andreas Schwab  <schwab@suse.de>
5351
5352         * config/ia64/ia64.md: Define new attribute "empty".
5353         (prologue_use, nop_x, insn_group_barrier): Set it.
5354
5355         * config/ia64/ia64.c (ia64_reorg): When looking for trailing call
5356         skip over "empty" insns.
5357
5358 2004-07-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5359
5360         * tree-inline.c (initialize_inlined_parameters): Pass proper function
5361         context to gimplify_body.
5362         (walk_tree): Don't walk into types twice.
5363         (walk_tree, case POINTER_TYPE): Deal with mutually recursive pointers.
5364
5365         * tree-sra.c (generate_element_init): Remove any useless conversions.
5366
5367         * gimplify.c (gimplify_conversion): Remove stripping useless
5368         conversions from here.
5369         (gimplify_expr): Put it here, in place of call to STRIP_MAIN_TYPE_NOPS.
5370         (gimplify_modify_expr_to_memcpy, gimplify_variable_sized_compare):
5371         Unshare before substituting PLACEHOLDER_EXPR.
5372         (gimplify_modify_expr_to_memset): Likewise.
5373         Pass address of TO to memset, not TO itself.
5374         (gimplify_init_constructor): Make copy of OBJECT so we have it each
5375         time we make an expression (to match a PLACEHOLDER_EXPR).
5376
5377         * tree-ssa.c (tree_ssa_useless_type_conversion): Also look at
5378         VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
5379         * tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION.
5380         * tree-ssa-dom.c (local_fold): Likewise.
5381
5382         * langhooks-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook.
5383         * langhooks.h (strct lang_hooks): New field type_max_size.
5384         * function.c (assign_temp): Call it.
5385
5386 2004-07-03  Steven Bosscher  <stevenb@suse.de>
5387
5388         * config/sh/sh.c (sh_use_dfa_interface): Add TARGET_SH1.
5389         * config/sh/sh.md: Convert the SH1 pipeline description to
5390         a DFA model.
5391
5392 2004-07-02  Zack Weinberg  <zack@codesourcery.com>
5393
5394         * c-decl.c (struct c_binding): Remove contour field; add
5395         depth, invisible, nested fields.
5396         (B_IN_SCOPE, B_IN_CURRENT_SCOPE, B_IN_FILE_SCOPE)
5397         (B_IN_EXTERNAL_SCOPE): New convenience macros.
5398         (bind): Add invisible and nested arguments. Initialize
5399         new fields of struct c_binding; adjust loop scanning for
5400         insertion point.
5401         (free_binding_and_advance): Clear structure with memset.
5402         (pop_scope): Adjust to match.  Set DECL_CONTEXT on everything
5403         in file scope, even if it's in external scope too.
5404         (pushdecl): Adjust to match.  Create invisible file-scope
5405         declarations for block-scope forward declarations of static functions.
5406         (pushtag, warn_if_shadowing, pushdecl_top_level, implicitly_declare)
5407         (undeclared_variable, lookup_label, declare_label, define_label)
5408         (lookup_tag, lookup_name, lookup_name_in_scope, builtin_function)
5409         (c_make_fname_decl, store_parm_decls_newstyle, identifier_global_value)
5410         (store_parm_decls_oldstyle): Adjust to match.
5411         (diagnose_mismatched_decls): Correct handling of linkage clashes.
5412         (merge_decls): No need to copy C_DECL_IN_EXTERNAL_SCOPE.
5413
5414         * c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete.
5415         (C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one.
5416
5417 2004-07-02  Richard Henderson  <rth@redhat.com>
5418
5419         * c-decl.c (grokdeclarator): Don't frob current_function_decl
5420         around variable_size.
5421         (set_decl_nonlocal): Remove.
5422         (store_parm_decls): Add stmts for pending sizes.
5423         * calls.c (calls_function, calls_function_1): Remove.
5424         (precompute_arguments): Don't call it.
5425         * cfgexpand.c (set_save_expr_context): Remove.
5426         (tree_expand_cfg): Don't call it.
5427         * dwarf2out.c (add_bound_info): Don't handle SAVE_EXPR.
5428         (dwarf2out_finish): Likewise.
5429         * expr.c (emit_block_move): Adjust addresses to BLKmode.
5430         (store_constructor): Don't pre-evaluate SAVE_EXPR.
5431         (safe_from_p): Don't queue SAVE_EXPRs.
5432         (expand_expr_real_1 <case SAVE_EXPR>): Rewrite to expect,
5433         or build plain VAR_DECLs.
5434         * fold-const.c (twoval_comparison_p): Don't look at SAVE_EXPR_RTL.
5435         (fold): Likewise.
5436         (fold_checksum_tree): Don't special-case SAVE_EXPR.
5437         * function.c (free_after_compilation): Don't clear x_save_expr_regs.
5438         (put_var_into_stack): Don't handle SAVE_EXPR.
5439         (gen_mem_addressof): Likewise.
5440         * function.h (struct function): Remove x_save_expr_regs.
5441         (save_expr_regs): Remove.
5442         * gengtype.c (adjust_field_tree_exp): Don't special-case SAVE_EXPR.
5443         * print-tree.c (print_node): Don't dump SAVE_EXPR_NOPLACEHOLDER.
5444         * stor-layout.c (variable_size): Don't set it.
5445         (force_type_save_exprs, force_type_save_exprs_1): Remove.
5446         * tree-inline.c (remap_save_expr): Remove fn argument.  Update
5447         all callers.  Don't set SAVE_EXPR_CONTEXT.
5448         * tree-inline.h (remap_save_expr): Update decl.
5449         * tree.c (save_expr): Update build size.
5450         (first_rtl_op): Don't handle SAVE_EXPR.
5451         (unsave_expr_1, contains_placeholder_p): Likewise.
5452         (decl_function_context): Likewise.
5453         * tree.def (SAVE_EXPR): Remove args 1 and 2.
5454         * tree.h (SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL): Remove.
5455         (SAVE_EXPR_NOPLACEHOLDER, SAVE_EXPR_PERSISTENT_P): Remove.
5456
5457 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
5458
5459         * doc/bugreport.texi, doc/configterms.texi, doc/contrib.texi,
5460         doc/contribute.texi, doc/cpp.texi, doc/cppinternals.texi,
5461         doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/md.texi,
5462         doc/portability.texi, doc/tree-ssa.texi, doc/trouble.texi: Avoid
5463         some first-person references and patronizing comments.  Based on
5464         printed manual.
5465         * doc/invoke.texi: Don't reference fortran@gnu.org.
5466         * doc/trouble.texi (Warning when a non-void function value is
5467         ignored): Rewrite.  From Russ Allbery and Chris Devers.
5468
5469 2004-07-02  Daniel Berlin  <dberlin@dberlin.org)
5470
5471         * tree-ssa-pre.c (bitmap_set_t): New.
5472         (bb_value_sets): avail_out is now a bitmap_set_t.
5473         (bitmap_find_leader): New function.
5474         (bitmap_value_insert_into_set): Ditto.
5475         (bitmap_set_copy): Ditto.
5476         (bitmap_value_replace_in_set): Ditto.
5477         (bitmap_set_contains_value): Ditto.
5478         (bitmap_set_new): Ditto.
5479         (bitmap_set_pool): New pool.
5480         (find_or_generate_expression): Use bitmap_ functions on AVAIL sets.
5481         (insert_aux): Ditto.
5482         (add_to_sets): Ditto.
5483         (compute_avail): Ditto
5484         (eliminate): Ditto.
5485         (init_pre): Ditto.
5486         (fini_pre): Ditto.
5487         (execute_pre): Ditto.
5488
5489 2004-07-02  Roger Sayle  <roger@eyesopen.com>
5490
5491         * config/rs6000/rs6000.c (struct processor_costs): New structure
5492         used to hold instruction latencies/sizes for processor types.
5493         (rs6000_cost): New global variable pointing to current CPU's costs.
5494         (rs6000_override_options): Initialize rs6000_cost to point to the
5495         appropriate cost table based upon rs6000_cpu and optimize_size.
5496         (rs6000_rtx_costs): Use rs6000_cost to avoid hardcoding processor
5497         timings inline.
5498
5499 2004-07-02  Richard Henderson  <rth@redhat.com>
5500
5501         * expmed.c (make_tree): Don't use SET_DECL_RTL.
5502
5503 2004-07-02  Steven Bosscher  <stevenb@suse.de>
5504
5505         * tree-flow.h (bb_ann_d): Remove ephi_nodes field.
5506
5507 2004-07-01  Richard Henderson  <rth@redhat.com>
5508
5509         * config/alpha/alpha.c (struct machine_function): Add gp_save_rtx.
5510         (alpha_gp_save_rtx): Use assign_stack_local instead of
5511         gen_mem_addressof.
5512
5513 2004-07-01  Richard Henderson  <rth@redhat.com>
5514
5515         * config/alpha/alpha.c (struct alpha_rtx_cost_data): Add int_div.
5516         (alpha_rtx_cost_data): Update to match.
5517         (alpha_rtx_cost_size): New.
5518         (alpha_rtx_costs): Honor optimize_size.
5519
5520 2004-07-01  Richard Henderson  <rth@redhat.com>
5521
5522         * gimple-low.c (lower_function_body): Don't reset_block_changes here.
5523         * cfgexpand.c (tree_expand_cfg): Do it here.
5524         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): And here.
5525         * config/ia64/ia64.c (ia64_output_mi_thunk): And here.
5526         * config/mips/mips.c (mips_output_mi_thunk): And here.
5527         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): And here.
5528         * config/sh/sh.c (sh_output_mi_thunk): And here.
5529         * config/sparc/sparc.c (sparc_output_mi_thunk): And here.
5530
5531 2004-07-01  Richard Henderson  <rth@redhat.com>
5532
5533         * tree.def (RTL_EXPR): Remove.
5534         * c-typeck.c (lvalue_p): Don't handle it.
5535         * expr.c (safe_from_p): Likewise.
5536         (expand_expr_real_1): Likewise.
5537         * fold-const.c (non_lvalue, operand_equal_p, fold): Likewise.
5538         (fold_checksum_tree, tree_expr_nonnegative_p): Likewise.
5539         * gengtype.c (adjust_field_tree_exp): Likewise.
5540         * stmt.c (warn_if_unused_value): Likewise.
5541         * tree-gimple.c (recalculate_side_effects): Likewise.
5542         * tree-pretty-print.c (dump_generic_node): Likewise.
5543         * tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise.
5544         (unsafe_for_reeval, stabilize_reference, build1_stat): Likewise.
5545         * tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove.
5546
5547         * stmt.c (struct stmt_status): Remove x_last_expr_type,
5548         x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value.
5549         (last_expr_type, last_expr_value, last_expr_alt_rtl): Remove.
5550         (expand_expr_stmt): Merge with expand_expr_stmt_value.  Remove
5551         all the bits that tracked last_expr.
5552         (expand_end_bindings): Don't track last_expr.
5553         (expand_start_stmt_expr, expand_end_stmt_expr): Remove.
5554         (clear_last_expr): Remove.
5555         (expand_asm): Don't call it.
5556         (expand_asm_operands, expand_end_cond): Likewise.
5557         (expand_naked_return, expand_null_return_1): Likewise.
5558         * c-typeck.c (c_begin_compound_stmt): Likewise.
5559         * cfgexpand.c (expand_block): Use expand_expr_stmt.
5560         * expr.c (expand_expr_real_1): Likewise.
5561         * tree.h: Update prototypes.
5562
5563         * function.h (struct sequence_stack): Remove sequence_rtl_expr.
5564         (struct emit_status): Remove sequence_rtl_expr.
5565         (struct function): Remove x_rtl_expr_chain.
5566         (seq_rtl_expr, rtl_expr_chain): Remove.
5567         * function.c (struct temp_slot): Remove rtl_expr.
5568         (assign_stack_temp_for_type): Don't set it.
5569         (free_temp_slots, pop_temp_slots): Don't check it.
5570         (free_after_compilation): Don't clear x_rtl_expr_chain.
5571         (fixup_var_refs): Don't search it.
5572         (preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove.
5573         * emit-rtl.c (start_sequence): Don't use sequence_rtl_expr
5574         or seq_rtl_expr.
5575         (push_topmost_sequence): Likewise.
5576         (end_sequence, init_emit): Likewise.
5577         (start_sequence_for_rtl_expr): Remove.
5578         * expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR.
5579         * rtl.h (preserve_rtl_expr_result): Remove.
5580
5581 2004-07-02  Kazu Hirata  <kazu@cs.umass.edu>
5582
5583         * ifcvt.c, modulo-sched.c, tree-alias-common.c, tree-sra.c,
5584         tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-pre.c: Fix comment
5585         typos.
5586
5587 2004-07-02  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
5588
5589         * gcc.c (STANDARD_STARTFILE_PREFIX_1): Define.
5590         (STANDARD_STARTFILE_PREFIX_2): Define.
5591         (standard_startfile_prefix_1): Initialize to
5592         STANDARD_STARTFILE_PREFIX_1.
5593         (standard_startfile_prefix_2): Initialize to
5594         STANDARD_STARTFILE_PREFIX_2.
5595         * config/i386/mingw32.h (MD_STARTFILE_PREFIX): Remove.
5596         (STANDARD_STARTFILE_PREFIX_1): Define.
5597         (STANDARD_STARTFILE_PREFIX_2): Define.
5598         * doc/tm.texi (STANDARD_STARTFILE_PREFIX_1): Document.
5599         (STANDARD_STARTFILE_PREFIX_2): Document.
5600
5601 2004-07-01  Richard Henderson  <rth@redhat.com>
5602
5603         * tree-sra.c (sra_walk_expr): Don't maybe_lookup_element_for_expr
5604         in order to disable scalarization.  Instead set a flag and wait
5605         for a candidate decl.
5606
5607 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
5608
5609         * doc/cppinternals.texi, doc/install.texi, doc/invoke.texi,
5610         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi:
5611         Use terminology "testsuite" and "enumerated".
5612
5613 2004-07-01  Richard Henderson  <rth@redhat.com>
5614
5615         * dwarf2out.c (reg_save): Use INVALID_REGNUM.
5616         (dwarf2out_reg_save, dwarf2out_return_save): Likewise.
5617         (initial_return_save): Likewise.
5618         (flush_queued_reg_saves): Remap register numbers.
5619         (dwarf2out_return_reg): Likewise.
5620
5621 2004-07-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5622
5623         * gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL.
5624
5625         * tree-pretty-print.c (dump_generic_node, case ARRAY_REF): Use
5626         access functions for lower bound and element size and only output
5627         if lower bound nonzero or element size not same as that of type.
5628         (dump_generic_node, case COMPONENT_REF): Use access func. for offset.
5629
5630 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
5631
5632         * c-pretty-print.c (pp_c_postfix_expression): Fix pasto.
5633
5634 2004-07-01  Per Bothner  <per@bothner.com>
5635
5636         * final.c (final):  Fix typo reported by Aaron W. LaFramboise.
5637
5638 2004-07-01  Jakub Jelinek  <jakub@redhat.com>
5639
5640         * expr.c (expand_assignment): Optimize bitfld += cst for 1 bit
5641         bitfields as well.  STRIP_NOPS from src operand and PLUS_EXPR's
5642         first operand.  Don't optimize if the bitfield is volatile.
5643
5644 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
5645
5646         * c-pretty-print.c (pp_c_postfix_expression): Handle
5647         floating-point comparison operators.
5648         (pp_c_expression): Pass floating-point comparison
5649         operators to pp_c_postfix_expression.
5650
5651 2004-07-01  Roger Sayle  <roger@eyesopen.com>
5652
5653         * simplify-rtx.c (simplify_binary_operation) <PLUS, MINUS>: Use
5654         rtx_cost instead of "had_mult" to determine whether the transformed
5655         expression is cheaper than the original.
5656
5657 2004-07-01  Jerry Quinn  <jlquinn@optonline.net>
5658
5659         * alias.c (get_alias_set, canon_rtx, get_addr,
5660         nonoverlapping_memrefs_p, nonlocal_referenced_p_1, memory_modified_1):
5661         Use MEM_P.
5662         * builtins.c (expand_builtin_prefetch, expand_builtin_profile_func,
5663         expand_builtin): Likewise.
5664         * calls.c (expand_call, emit_library_call_value_1, store_one_arg):
5665         Likewise.
5666         * combine.c (can_combine_p, combinable_i3pat, try_combine,
5667         find_split_point, combine_simplify_rtx, simplify_set, make_extraction,
5668         rtx_equal_for_field_assignment_p, gen_lowpart_for_combine,
5669         record_dead_and_set_regs_1, get_last_value_validate,
5670         mark_used_regs_combine, move_deaths, unmentioned_reg_p_1): Likewise.
5671         * cse.c (check_dependence, canon_hash, equiv_constant,
5672         gen_lowpart_if_possible, cse_insn, invalidate_from_clobbers,
5673         cse_around_loop, cse_check_loop_start, cse_set_around_loop,
5674         count_reg_usage): Likewise.
5675         * cselib.c (rtx_equal_for_cselib_p, add_mem_for_addr, cselib_lookup,
5676         cselib_invalidate_mem, cselib_invalidate_rtx, cselib_record_set,
5677         cselib_record_sets): Likewise.
5678         * dbxout.c (PARM_PASSED_IN_MEMORY, dbxout_symbol,
5679         dbxout_symbol_location, dbxout_parms, dbxout_reg_parms): Likewise.
5680         * ddg.c (mark_mem_use, mark_mem_store, rtx_mem_access_p): Likewise.
5681         * df.c (df_uses_record): Likewise.
5682         * dojump (do_jump): Likewise.
5683         * dwarf2out.c (stack_adjust_offset, mem_loc_descriptor,
5684         loc_descriptor_from_tree, rtl_for_decl_location, add_bound_info,
5685         decl_start_label): Likewise.
5686         * emit-rtl.c (gen_complex_constant_part, gen_highpart,
5687         operand_subword, change_address_1, make_safe_from): Likewise.
5688         * explow.c (break_out_memory_refs, copy_all_regs, validize_mem,
5689         stabilize, force_not_mem): Likewise.
5690         * expmed.c (store_bit_field, store_split_bit_field, extract_bit_field,
5691         expand_mult_const, expand_divmod, emit_store_flag): Likewise.
5692         * expr.c (convert_move, convert_modes, emit_block_move,
5693         emit_group_load, emit_group_store, clear_storage, emit_move_insn,
5694         emit_move_insn_1, expand_assignment, store_expr,
5695         store_constructor_field, store_constructor, store_field,
5696         force_operand, safe_from_p, expand_expr_real_1, expand_increment):
5697         Likewise.
5698         * final.c (cleanup_subreg_operands, alter_subreg,
5699         get_mem_expr_from_op): Likewise.
5700         * flow.c (notice_stack_pointer_modification_1,
5701         init_propagate_block_info, insn_dead_p, mark_set_1, mark_used_regs):
5702         Likewise.
5703         * function.c (mark_temp_addr_taken, preserve_temp_slots,
5704         preserve_rtl_expr_result, put_var_into_stack, fixup_var_refs_1,
5705         optimize_bit_field, flush_addressof, purge_addressof_1,
5706         instantiate_decl, instantiate_virtual_regs_1, assign_parms,
5707         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
5708         keep_stack_depressed): Likewise.
5709         * ifcvt.c (noce_try_cmove_arith, noce_try_abs, noce_operand_ok,
5710         noce_process_if_block, find_memory): Likewise.
5711         * integrate.c (subst_constants, allocate_initial_values): Likewise.
5712         * local-alloc.c (validate_equiv_mem_from_store, memref_referenced_p,
5713         update_equiv_regs): Likewise.
5714         * loop.c (scan_loop, prescan_loop, note_addr_stored, check_store,
5715         maybe_eliminate_biv_1, find_mem_in_note_1): Likewise.
5716         * optabs.c (expand_abs, emit_unop_insn): Likewise.
5717         * passes.c (rest_of_handle_final): Likewise.
5718         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
5719         move2add_note_store): Likewise.
5720         * ra-build.c (detect_remat_webs): Likewise.
5721         * ra-debug.c (dump_static_insn_cost): Likewise.
5722         * ra-rewrite.c (slots_overlap_p, insert_stores): Likewise.
5723         * recog.c (validate_change, apply_change_group, cancel_changes,
5724         validate_replace_rtx_1, general_operand, register_operand,
5725         nonmemory_operand, push_operand, pop_operand, memory_operand,
5726         indirect_operand, asm_operand_ok, offsettable_memref_p,
5727         offsettable_nonstrict_memref_p, constrain_operands,
5728         store_data_bypass_p): Likewise.
5729         * reg-stack.c (subst_stack_regs_pat): Likewise.
5730         * regclass.c (record_operand_costs, scan_one_insn, record_reg_classes,
5731         copy_cost, reg_scan_mark_refs): Likewise.
5732         * regmove.c (optimize_reg_copy_3, stack_memref_p,
5733         combine_stack_adjustments_for_block): Likewise.
5734         * regrename.c (copyprop_hardreg_forward_1): Likewise.
5735         * reload.c (can_reload_into, push_reload, decompose, immune_p,
5736         find_reloads, find_reloads_address, find_reloads_address_1,
5737         reg_overlap_mentioned_for_reload_p, refers_to_mem_for_reload_p,
5738         find_equiv_reg): Likewise.
5739         * reload1.c (reload, eliminate_regs, eliminate_regs_in_insn,
5740         reload_as_needed, choose_reload_regs, emit_input_reload_insns,
5741         do_input_reload, emit_reload_insns, gen_reload, delete_output_reload,
5742         delete_address_reloads): Likewise.
5743         * resource.c (mark_referenced_resources): Likewise.
5744         * rtlanal.c (get_jump_table_offset, count_occurrences,
5745         reg_referenced_p, reg_set_p, set_of_1, set_noop_p,
5746         reg_overlap_mentioned_p, note_uses, replace_regs, nonzero_bits1,
5747         num_sign_bit_copies1): Likewise.
5748         * rtlhooks.c (gen_lowpart_general): Likewise.
5749         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
5750         * sdbout.c (PARM_PASSED_IN_MEMORY, sdbout_symbol,
5751         sdbout_toplevel_data, sdbout_parms, sdbout_reg_parms,
5752         sdbout_global_decl): Likewise.
5753         * simplify-rtx.c (simplify_subreg): Likewise.
5754         * stmt.c (expand_asm_operands, expand_expr_stmt_value, expand_decl,
5755         expand_anon_union_decl, expand_end_case_type): Likewise.
5756         * unroll.c (calculate_giv_inc): Likewise.
5757         * var-tracking.c (stack_adjust_offset_pre_post,
5758         bb_stack_adjust_offset, track_expr_p, count_uses, add_uses,
5759         add_stores, compute_bb_dataflow, vt_get_decl_and_offset,
5760         vt_add_function_parameters): Likewise.
5761         * varasm.c (make_var_volatile, notice_global_symbol,
5762         assemble_external, decode_addr_const, mark_weak,
5763         default_encode_section_info): Likewise.
5764
5765 2004-07-01  Steven Bosscher  <stevenb@suse.de>
5766
5767         * stmt.c (check_seenlabel): Remove.
5768         (pushcase, pushcase_range, expand_end_case_type): Don't call it.
5769
5770 2004-07-01  Richard Henderson  <rth@redhat.com>
5771
5772         * function.h (struct function): Remove x_function_call_count.
5773         (function_call_count): Remove.
5774         * calls.c (expand_call): Don't set it.
5775         * integrate.c (copy_rtx_and_substitute): Likewise.
5776
5777         * function.h (struct function): Remove x_cleanup_label.
5778         (cleanup_label): Remove.
5779         * stmt.c (expand_value_return): Don't use it.
5780         * function.c (free_after_compilation): Don't set it.
5781         (expand_function_start): Likewise.  Remove parms_have_cleanups arg.
5782         * cfgexpand.c (tree_expand_cfg): Update call.
5783         * tree.h (expand_function_start): Update decl.
5784
5785 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
5786
5787         PR c/1027
5788         * c-lang.c (c_initialize_diagnostics): Move from here ...
5789         * c-objc-common.c: ... to here.  Include "c-pretty-print.h".
5790         (c_tree_printer): Use pretty-printer to format %T.
5791         * c-pretty-print.c (pp_c_specifier_qualifier_list): Include space
5792         before '*' if not C++.
5793         (pp_c_direct_abstract_declarator): Don't try to print array upper
5794         bound for flexible array members.
5795         * c-tree.h: Include "diagnostic.h".
5796         (c_initialize_diagnostics): Declare.
5797         * objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define.
5798         * c-format.c (format_type_warning): New function.  Improve
5799         diagnostics for incorrect format argument types.
5800         (check_format_types): Use it.  Add two parameters.  Use the
5801         TYPE_MAIN_VARIANT of wanted_type.
5802         (check_format_info_main): Pass new parameters to
5803         check_format_types.
5804         (struct format_wanted_type): Update comment.
5805
5806 2004-07-01  Nick Clifton  <nickc@redhat.com>
5807
5808         * target.h (struct gcc_target): Add new field to struct cxx:
5809         import_export_class.
5810         * target-def.h (TARGET_CXX): Initialise the new field.
5811         (TARGET_CXX_IMPORT_EXPORT_CLASS): Provide a default value for
5812         the new field.
5813         * doc/tm.texi: Document the new target hook.
5814
5815 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
5816
5817         * builtins.c (fold_builtin_classify): Fix typo.
5818
5819 2004-07-01  Richard Henderson  <rth@redhat.com>
5820
5821         * function.c (identify_blocks, identify_blocks_1): Remove.
5822         * function.h (identify_blocks): Remove.
5823         * rtl.h (NOTE_INSN_BLOCK_BEG): Update comment.
5824
5825 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
5826
5827         * builtins.c (fold_builtin_classify): New.
5828         (fold_builtin_unordered_cmp): Fix commentary.
5829         (fold_builtin): Use it.
5830         * builtins.def: Define builtins for isnan,
5831         isnanf, isnanl, finite, finitef, finitel,
5832         isinf, isinff, isinfl.
5833
5834 2004-07-01  Richard Henderson  <rth@redhat.com>
5835
5836         * function.h (struct function): Remove dont_emit_block_notes.
5837         * gimple-low.c (lower_function_body): Don't set it.
5838         * cfgexpand.c (expand_block): Don't check it.
5839         * cfglayout.c (insn_locators_initialize): Likewise.
5840         * expr.c (expand_expr_real, expand_expr_real_1): Likewise.
5841         * passes.c (rest_of_compilation): Likewise.
5842         * stmt.c (expand_start_bindings_and_block): Likewise.
5843         (expand_end_bindings): Likewise.
5844
5845 2004-07-01  Richard Henderson  <rth@redhat.com>
5846
5847         * cgraph.h (cgraph_build_static_cdtor): Declare.
5848         * cgraphunit.c (cgraph_build_static_cdtor): New.
5849         * c-objc-common.c (build_cdtor): Use it.
5850         * coverage.c (create_coverage): Likewise.
5851         * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove.
5852         * optabs.c (init_optabs): Don't set gcov_init_libfunc.
5853
5854 See ChangeLog.11 for earlier changes.