OSDN Git Service

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