OSDN Git Service

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