OSDN Git Service

* config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-08-07  Olivier Hainque  <hainque@act-europe.fr>
2
3         * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
4
5 2004-08-07  Jason Merrill  <jason@redhat.com>
6
7         * gimplify.c (gimplify_call_expr): Make return in memory explicit.
8         (gimplify_modify_expr_rhs): Likewise.
9         * c-common.c (c_warn_unused_result): Check TREE_USED before
10         warning about a CALL_EXPR with an unused value.
11
12 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
13
14         * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
15         to the compiler.  Use -fshort-wchar by default.
16
17 2004-08-06  Pat Haugen  <pthaugen@us.ibm.com>
18
19         * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
20         * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
21         threshhold.
22         * doc/invoke.texi (param): Document min-crossjump-insns.
23
24 2004-08-06  Richard Sandiford  <rsandifo@redhat.com>
25
26         PR c/13282
27         * c.opt (Wmissing-field-initializers): New option.
28         * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
29         * c-typeck.c (pop_init_level): Guard the missing field warning with
30         warn_missing_field_initializers rather than extra_warnings.
31         * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
32         some of the explanation from...
33         (-Wextra): ...here.  Say that the missing field warning can be
34         seperately controlled by -Wmissing-field-initializers.
35
36 2004-08-06  Paolo Bonzini  <bonzini@gnu.org>
37
38         * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
39         * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
40         * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
41         * tree.def (ENTRY_VALUE_EXPR): Remove.
42
43 2004-08-06  Jakub Jelinek  <jakub@redhat.com>
44
45         * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
46         the places where it is actually needed.  Don't use repz; stosb
47         for -Os with sufficiently small constant sizes.
48         For sufficiently small repz; stos{l,q} repeat counts use a sequence
49         of stos{l,q} instructions instead.
50
51 2004-08-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
52
53         PR tree-optimization/16807
54         * loop-iv.c (dump_iv_info): Dump invariants correctly.
55         (iv_subreg, iv_extend): Express value of invariant purely in
56         base field.
57
58 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
59
60         * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
61         (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
62
63 2004-08-06  Roman Zippel  <zippel@linux-m68k.org>
64  
65         * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
66         * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
67         pre_dec_operand.
68         * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
69         pattern until reload is finished to allow better code generation
70         and split them completely into separate instrunctions.
71         (*andsi3_split): New pattern.
72
73 2004-08-05  Mark Mitchell  <mark@codesourcery.com>
74
75         * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
76         Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P.  Set
77         DECL_VISIBLITY.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
78         * tree.h (handle_dll_attribute): Declare.  Test
79         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
80         * c-common.h (c_determine_visibility): Declare.
81         * c-common.c (c_determine_visibility): New function.
82         * c-decl.c (finish_decl): Use it.
83         (finish_function): Likewise.
84         * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
85         zero, by default.  Use #if, not #ifdef, to test it.
86         * config/arm/arm.c (arm_attribute_table): Use
87         handle_dll_attribute.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
88         #if.
89         * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
90         * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
91         to 1.
92         * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
93         * config/i386/i386.c (ix86_attribute_table): Use
94         handle_dll_attribute for dllimport/dllexport.  Test
95         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
96         * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
97         * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
98         it to 1.
99         * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
100         with #if.
101         * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
102         it to 1.
103         * doc/extend.texi (dllexport): Clarify and correct documentation.
104         (dllimport): Likewise.
105         * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
106         handle_dll_attribute.
107         
108 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
109
110         * tree-ssa-loop-manip.c: New file.
111         * Makefile.in (tree-ssa-loop-manip.o): Add.
112         * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
113         Declare.
114         * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
115         form.
116         (tree_ssa_loop_done): Verify loop closed ssa form.
117         * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
118
119 2004-08-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
120
121         * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
122         pa_asm_output_aligned_local): New functions.
123         * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
124         pa_asm_output_aligned_common and pa_asm_output_aligned_local.
125         * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
126         pa_asm_output_aligned_common.
127         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
128         * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
129         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
130         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
131         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
132         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
133         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
134         * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
135         common data.
136
137 2004-08-05  Andrew Pinski  <apinski@apple.com>
138
139         * objc/objc-act.c (build_objc_string_object): Mark the address
140         expression as constant.
141
142 2004-08-05  David Edelsohn  <edelsohn@gnu.org>
143
144         * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
145         and mask64_operand thinkos.  Handle ZERO_EXTRACT.  Handle
146         SIGN_EXTEND / ZERO_EXTEND of MEM.  Handle rlwinm patterns.
147
148 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
149
150         * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
151         Remove definitions conditioned on USE_GNULIBC_1 or conditioned
152         out, and associated obsolete comments.
153
154 2004-08-05  Nathan Sidwell  <nathan@codesourcery.com>
155
156         * tree.h (force_fit_type): Return a tree, take three flags.
157         * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
158         TREE_CONSTANT_OVERFLOW here.
159         (int_const_binop, const_binop): Adjust.
160         (size_int_type): Do sign extension here.
161         (fold_convert_const, optimize_bit_field_compare,
162         decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
163         fold_negate_const, fold_abs_const, fold_not_const): Adjust.
164         * tree.c (size_in_bytes, int_fits_type_p): Adjust.
165
166 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
167
168         PR tree-optimization/16864
169         * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
170         for ssa names without default_def.
171
172 2004-08-05  Richard Sandiford  <rsandifo@redhat.com>
173
174         * config/i386/i386.c (ix86_expand_prologue): If the function uses a
175         frame pointer, restore eax with an ebp-relative address.
176
177 2004-08-04  Geoffrey Keating  <geoffk@apple.com>
178
179         PR 14516
180         * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
181         * c-common.h (make_rtl_for_local_static): Delete.
182         * c-decl.c (shadow_tag_warned): Clean up comment.
183         (finish_decl): Clean up spacing.  Use set_user_assembler_name when
184         appropriate.  Don't pass asmspec to rest_of_decl_compilation.
185         * c-semantics.c (make_rtl_for_local_static): Delete.
186         * expr.c (init_block_move_fn): Use set_user_assembler_name.
187         (init_block_clear_fn): Likewise.
188         * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
189         expect it to be in DECL_ASSEMBLER_NAME.  Update callers in many files.
190         * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
191         * tree.h (make_decl_rtl): Remove second parameter.
192         (set_user_assembler_name): New.
193         * varasm.c (set_user_assembler_name): New.
194         (make_decl_rtl): Remove second parameter.  Update callers in many
195         files.
196
197 2004-08-05  Adam Nemet  <anemet@lnxw.com>
198
199         * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
200         (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*.  Update
201         to LynxOS 4.0.
202         * gthr-lynx.h: New file.
203         * config/lynx-ng.h: Remove file.
204         * config/lynx.h: Update to LynxOS 4.0.
205         * config/t-lynx: New file.
206         * config/i386/lynx-ng.h: Remove file.
207         * config/i386/lynx.h: Update to LynxOS 4.0.
208         * config/rs6000/lynxbase.h: Remove file.
209         * config/rs6000/lynx.h: Update to LynxOS 4.0.
210         * config/rs6000/t-lynx: New file.
211         * doc/install.texi (Options specification): Remove reference to
212         LynxOS from systems where --with-gnu-as makes a difference.
213
214 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
215
216         * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
217         __UINTMAX_TYPE__.
218         * c-cppbuiltin.c (builtin_define_stdint_macros): New.  Define
219         __INTMAX_MAX__.
220         (c_cpp_builtins): Call it.
221         * doc/cpp.texi: Update.
222
223 2004-08-04  David Edelsohn  <edelsohn@gnu.org>
224
225         * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
226         cost.
227
228 2004-08-04  Jan Hubicka  <jh@suse.cz>
229
230         * basic-block.h (profile_staus): New global variable.
231         * cfg.c (profile_status): Declare.
232         (check_bb_profile): Break out from ....; use profile_status
233         (dump_flow_info): ... here.
234         * cfgbuild.c (find_basic_blocks): Set profile_status.
235         * cfgexpand.c (tree_expand_cfg): Likewise.
236         * predict.c (estimate_probability): Likewise.
237         * profile.c (branch_prob): Likewise.
238         * tree-cfg.c (build_tree_cfg): Likewise.
239         (dump_function_to_file): Use check_bb_profile.
240         * tree-pretty-print (dump_bb_header): Likewise.
241         * tree-profile.c (do_tree_profiling): Cleanup.
242
243 2004-08-04  Zack Weinberg  <zack@codesourcery.com>
244
245         * Makefile.in (RTL_BASE_H, RTL_H): Correct.
246         (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
247         (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
248         (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
249         (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
250         (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
251         (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
252         (ggc-none.o, errors.o): Move rule to generators section;
253         correct dependencies.
254         (min-insn-modes.o): Move rule to generators section; remove
255         unnecessary explicit command; correct dependencies.
256         (print-rtl.o, print-rtl1.o): Correct dependencies.
257         ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
258         (mostlyclean): Update.
259
260         * errors.c: Include bconfig.h not config.h.  Correct comment.
261         * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
262         * ggc-none.c: Include bconfig.h; not config.h or tm.h.
263         * print-rtl.c: Don't include tm_p.h.
264
265         * rtl.h: Move forward-decl of struct function down where it's
266         needed.  Include genrtl.h #ifndef GENERATOR_FILE, not
267         #ifndef NO_GENRTL_H.  Remove unnecessary #ifdef BUFSIZ statements.
268
269 2004-08-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
270             Jeff Law  <law@redhat.com>
271
272         * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
273         * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
274         * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
275         manipulate the duplicated ssa names.
276         * tree-ssanames.c (ssa_names_to_rewrite): New variable.
277         (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
278         unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
279         New functions.
280         (release_ssa_name): Do not release ssa names that may have multiple
281         definitions.
282         * tree.h (release_ssa_name_force, mark_for_rewrite,
283         unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
284         marked_ssa_names): Declare.
285         * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
286         (duplicate_blocks): Remove call to mark_defs_for_rewrite.
287         Update call to rewrite_ssa_into_ssa.
288
289 2004-08-04  Mark Mitchell  <mark@codesourcery.com>
290
291         * defaults.h (TARGET_DECLSPEC): New macro.
292         * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
293         * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
294         * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
295         * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
296         __declspec support.
297         (TARGET_DECLSPEC): Define.
298         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
299         __declspec support.
300         * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
301         __declspec support.
302         (TARGET_DECLSPEC): Define.
303         * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
304         __declspec support.
305         * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
306         support.
307         * doc/tm.texi (TARGET_DECLSPEC): Document.
308
309         * doc/extend.texi: Fix typo in comment.
310
311 2004-08-04  Paul Brook  <paul@codesourcery.com>
312
313         * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
314         (TARGET_CXX): Use it.
315         * target.h (struct gcc_target): Add cdtor_returns_this.
316         * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
317         (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
318         * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
319
320 2004-08-03  Nathan Sidwell  <nathan@codesourcery.com>
321
322         * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
323         low/high pair. Do range checking directly.
324         (interpret_integer): Adjust.
325
326 2004-08-04  Nick Clifton  <nickc@redhat.com>
327
328         * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
329         GCC ABI.
330         * doc/invoke.texi: Document this new switch and also the -mrenesas
331         switch.
332
333 2004-08-04  Nathan Sidwell  <nathan@codesourcery.com>
334
335         * cfglayout.c (insn_locators_initialize): Update the current
336         location before initializing a location.
337
338 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
339
340         * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
341         (dbxout_function_end): Return after emitting the "Lscope" symbol
342         under the same conditions that this function formerly wasn't called.
343         Add explanatory comments.
344
345         PR 14860
346         * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
347         on the new decl.
348
349         PR 13956
350         * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
351         functions, broken out of dbxout_block.
352         (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
353         stabs too, if it contains symbols.  Use the begin_label and
354         the Lscope label (emitted by dbxout_function_end) for the
355         range of this block.
356
357 2004-08-03  Nathanael Nerode  <neroden@gcc.gnu.org>
358
359         * doc/install.texi: Update autoconf version requirements.
360
361 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
362
363         * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
364         * recog.c (general_operand, immediate_operand, nonmemory_operand)
365         (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
366         * regclass.c (record_reg_classes): Likewise.
367         * reload.c (find_reloads): Likewise.
368         * reload1.c (reload): Likewise.
369
370 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
371
372         * gensupport.c (init_md_reader_args_cb): Renamed from
373         init_md_reader_args.  Add third option, callback function for
374         parsing program-specific options.  Add diagnosis of incorrect
375         number of input files.
376         (init_md_reader): Fold into init_md_reader_args_cb.
377         (init_md_reader_args): Now a thin wrapper around
378         init_md_reader_args_cb.
379         * gensupport.h: Update prototypes.
380
381         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
382         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
383         * genrecog.c: No need to diagnose lack of an input file;
384         init_md_reader_args will handle it.
385         * genconditions.c: Likewise, and use init_md_reader_args.
386         * genconstants.c: Likewise, and no need to call read_md_rtx.
387
388 2004-08-03  Joseph S. Myers  <jsm@polyomino.org.uk>
389
390         * c-decl.c (implicitly_declare): Diagnose incompatible implicit
391         declarations.
392
393 2004-08-03  Mike Stump  <mrs@apple.com>
394
395         * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
396         for frameworks.
397         * doc/invoke.texi (Darwin Options): Update to reflect above.
398
399 2004-08-03  Roger Sayle  <roger@eyesopen.com>
400
401         PR middle-end/16790
402         * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
403         truncations, not just global truncations.
404
405 2004-08-03  Andrew Pinski  <apinski@apple.com>
406
407         PR bootstrap/16865
408         * loop-iv.c (simplify_using_assignment): Initialize lhs.
409
410 2004-08-03  Paul Brook  <paul@codesourcery.com>
411
412         * gcc/doc/install.texi: Document MPFR requirement.
413
414 2004-08-03  Maciej W. Rozycki  <macro@linux-mips.org>
415
416         * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
417         and mmap() explicitly instead of relying on preset autoconf cache
418         variables.
419         * configure: Regenerate.
420
421 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
422
423         PR target/16570
424         * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
425         to tmake_file.
426         (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
427         (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
428         to tmake_file.
429
430         * config/i386/t-gmm_malloc: New file.
431         * config/i386/t-pmm_malloc: Likewise.
432
433         * config/i386/xmmintrin.h: Include <mm_malloc.h>.
434
435 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
436             Tanguy Fautrà <tfautre@pandora.be>
437
438         * config/i386/pmm_malloc.h: New file.
439
440 2004-08-03  Danny Smith  <dannysmith@users.sourceforge.net>
441
442         * config/i386/gmm_malloc.h: New file.
443
444 2004-08-03  Dale Johannesen  <dalej@apple.com>
445
446         * config/rs6000/rs6000.c (machopic_output_stub):  Align Darwin stubs.
447         * c-common.c: Include opts.h.
448         (c_common_get_alias_set): Fix check for a single input file.
449         * toplev.c: Remove current_file_decl.
450         * tree.h: Ditto.
451
452 2004-08-03  Mark Mitchell  <mark@codesourcery.com>
453
454         * config.gcc (arm*-*-symbianelf*): New target.
455         * config/arm/symbian.h: New file.
456
457         * gthr-gnat.c: Add visibility #pragmas.
458         * gthr-gnat.h : Likewise.
459         * gthr.h: Likewise.
460         * libgcc2.c (__ffsSI2): Move prototype to libgcc2.h.
461         (__ffsDI2): Likewise.
462         (__clzSI2): Likewise.
463         (__ctzSI2): Likewise.
464         (__ctzDI2): Likewise.
465         (__popcountSI2): Likewise.
466         (__popcountDI2): Likewise.
467         (__paritySI2): Likewise.
468         (__parityDI2): Likewise.
469         * libgcc2.h: Add visibility #pragmas.
470         (__clzDI2): Add prototype.
471         (__clzSI2): Likewise.
472         (__ctzSI2): Likewise.
473         (__ffsDI2): Likewise.
474         (__ffsSI2): Likewise.
475         (__ctzDI2): Likewise.
476         (__popcountSI2): Likewise.
477         (__popcountDI2): Likewise.
478         (__paritySI2): Likewise.
479         (__parityDI2): Likewise.
480         * unwind-dw2-fde.h: Add visibility #pragmas.
481         * unwind.h: Likewise.
482
483 2004-08-03  David Edelsohn  <edelsohn@gnu.org>
484             Dale Johannesen  <dalej@apple.com>
485             Roger Sayle  <roger@eyesopen.com>
486
487         * config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of
488         constants more accurately.  Adjust costs for FMA instructions.
489         Add cases for most logical and float operations.  Recurse into
490         most operands.
491
492 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
493
494         * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files.
495
496 2004-08-03  Pat Haugen  <pthaugen@us.ibm.com>
497
498         * ra-build.c (conflicts_between_webs): For webs that cross a call add
499         conflicts to regs_invalidated_by_call.
500
501 2004-08-03  Paul Brook  <paul@codesourcery.com>
502
503         * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
504
505 2004-08-03  Jan Hubicka  <jh@suse.cz>
506
507         * coverage.c (tree_coverage_counter_ref): Fix computation of the new
508         ARRAY_REF argument.
509
510 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
511
512         * arm-cores.def: Sort by architecture.  Add arm946es, arm966es,
513         arm968es, arm10e, arm1020e, arm1022e.
514         * invoke.texi: Update list of ARM cores.
515         * arm-tune.md: Regenerate.
516
517 2004-08-03  Richard Earnshaw <rearnsha@arm.com>
518
519         * arm/gentune.sh: New file.
520         * arm/t-arm: New file.
521         * arm/arm-tune.md: New file (autogenerated).
522         * config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants.
523         * arm.md (attribute tune): Delete.  Include arm-tune.md.
524
525 2004-08-03  Paolo Bonzini <bonzini@gnu.org>
526
527         * gcc.c (add_prefix, add_sysrooted_prefix): Remove
528         penultimate parameter.  All callers adjusted.
529         (struct prefix_list): Remove used_flag_ptr.
530         (find_a_file): Do not set *pl->used_flag_ptr.
531         (warn_B, warn_std_ptr): Remove.
532
533 2004-08-03  Yossi Markovich <yossim@il.ibm.com>
534             Mostafa Hagog <mustafa@il.ibm.com>
535
536         * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern.
537
538 2004-08-02  Geoffrey Keating  <geoffk@apple.com>
539
540         * dwarf2out.c (output_call_frame_info): Don't change data format
541         due to TARGET_USES_WEAK_UNWIND_INFO.  Always refer to the local
542         label.  Use 'true' not '1'.
543         * doc/install.texi (powerpc-*-darwin*): Mention cctools version
544         required.
545
546 2004-08-02  Gabriel Dos Reis  <gdr@cs.tamu.edu>
547
548         * gdbinit.in: Reflect previous changes to rtunion_def.
549
550 2004-08-02  Roger Sayle  <roger@eyesopen.com>
551
552         * fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y"
553         -> "X % Y" is only valid for TRUNC_MOD_EXPR.
554
555 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
556
557         * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
558         vec_p_reserve.
559         * langhooks.h (lang_hooks::builtin_function): Rename parameter
560         from "class" to "bt_class".
561
562 2004-08-02  Paul Brook  <paul@codesourcery.com>
563
564         PR rtl-optimization/15068
565         * flow.c (init_propagate_block_info): Check condition is reversible.
566
567 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
568
569         * gengtype.h (options::info): Change type to const char *.
570         (enum gc_used_enum): Move out of struct type scope.
571         * gengtype.c (create_option): Convert initializer for option::info to
572         appropiate type.
573         (adjust_field_type, walk_type, write_func_for_structure,
574         write_root, write_roots): Remove pointless cast.
575
576 2004-08-02  J"orn Rennecke <joern.rennecke@superh.com>
577
578         * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F.
579
580 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
581
582         * rtl.h (union rtunion_def): Have all members  start with the
583         prefix "rt_".
584         (XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL,
585         X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
586         X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP,
587         XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members
588         access.
589         * gengtype.c (adjust_field_rtx_def): Likewise.
590         * rtlanal.c (loc_mentioned_in_p): Likewise.
591
592 2004-08-02  Richard Sandiford  <rsandifo@redhat.com>
593
594         * config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file.
595         Replace uses of mips/elf64.h with mips/elf.h
596         * config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION)
597         (TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP)
598         (ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS)
599         (MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP)
600         (HANDLE_SYSV_PRAGMA): Delete.
601         (ASM_OUTPUT_DEF): Fix formatting.
602         * config/mips/elf64.h: Delete.
603
604 2004-08-01  Zack Weinberg  <zack@codesourcery.com>
605
606         * config/ia64/ia64.c (got_symbolic_operand): Do require a
607         symbol+offset operand to have its offset be zero mod 0x3fff
608         when GOT entries are in use.  Clarify logic in SYMBOL_REF
609         case.  Clarify comments.
610         (ia64_expand_load_address): Split a symbol+offset load when
611         the offset is nonzero mod 0x3fff, not 0x1fff.
612
613 2004-08-01  Geoffrey Keating  <geoffk@apple.com>
614
615         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
616         if trying to *store* to a non-offsettable address.
617         * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to
618         a nonoffsettable address.
619         (movdi_internal32): Don't move GPRs to a nonoffsettable address.
620         Clean up.
621         (movti_string): Don't move GPRs to a nonoffsettable address.
622         (movti_ppc64): Don't move GPRs to a nonoffsettable address.  Clean up.
623
624 2004-08-02  Ben Elliston  <bje@au.ibm.com>
625
626         PR target/16155
627         * config/rs6000/altivec.h: Replace typeof with __typeof__.
628
629 2004-08-01  Richard Henderson  <rth@redhat.com>
630
631         * expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with
632         variable sized types.
633
634 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
635
636         * doc/invoke.texi: In the MIPS options section, remove the passage
637         saying that -mexplicit-relocs is usually disabled for -mabicalls
638         -fno-unit-at-a-time.
639         * config/mips/mips.c (override_options): Remove the code that enforced
640         this rule.
641
642 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
643
644         * config/mips/mips.md (cprestore): Provide two alternatives, one for
645         an in-range offset and one for an out-of-range offset.  Wrap the latter
646         in .set macro/.set nomacro if it's inside a .set nomacro block.
647
648 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
649
650         * config/mips/mips-protos.h (mips_gp_save_slot): Remove.
651         (mips_restore_gp): Declare.
652         * config/mips/mips.c (mips_add_offset): Add a scratch register
653         argument.  Reimplement in rtl only, reusing MIPS16 logic from
654         mips_output_mi_thunk.
655         (mips_legitimize_address, mips_legitimize_const_move): Adjust calls
656         to mips_add_offset.
657         (mips_gp_save_slot): Delete.
658         (mips_restore_gp): New function.
659         (mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
660         * config/mips/mips.md (exception_receiver): Turn into a
661         define_insn_and_split.  Use mips_restore_gp to do the split.
662         (call_internal, call_value_internal, call_value_multiple_internal): Use
663         mips_restore_gp to restore $gp.
664
665 2004-07-31  Andrew Pinski  <apinski@apple.com>
666
667         PR other/16842
668         * mkheaders.in (libsubdir): s/gcc-lib/gcc/.
669
670 2004-07-31  Joseph S. Myers  <jsm@polyomino.org.uk>
671
672         * c-decl.c (diagnose_mismatched_decls): Give error for external
673         redeclaration of identifier declared with no linkage, not just
674         warning with -Wtraditional.  Do not check DECL_CONTEXT to give
675         error for redeclaration with no linkage.
676
677 2004-07-30  Geoffrey Keating  <geoffk@apple.com>
678             Fariborz Jahanian <fjahanian@apple.com>
679
680         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit
681         non-offsettable addresses even for DImode.
682         (rs6000_split_multireg_move): Cope with non-offsettable addresses
683         being moved into multiple GPRs.
684
685         * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
686         to 64.
687         (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
688         * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
689         to 128.
690         * config/rs6000/darwin-ldouble.c (isless): New macro.
691         (inf): New macro.
692         (nonfinite): New macro.
693         (FPKINF): Delete.
694         (_xlqadd): Completely rewrite.
695         (_xlqmul): Correct overflow handling.
696         (_xlqdiv): Correct overflow handling.
697         * config/rs6000/darwin-ldouble-format: New file.
698
699 2004-07-30  Roger Sayle  <roger@eyesopen.com>
700             Richard Henderson  <rth@redhat.com>
701
702         * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or
703         9 into the equivalent lea instruction.
704
705 2004-07-30  Richard Henderson  <rth@redhat.com>
706
707         * gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace
708         with DECL_INITIAL if fb_lvalue.
709         * tree-gimple.c (is_gimple_id): Add CONST_DECL.
710         * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL
711         with <Cxxx>.
712         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
713
714 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
715
716         * tree-ssa-alias.c (compute_points_to_and_addr_escape): If a
717         pointer escapes through a function call, assume that the
718         callee will dereference it.
719         (add_pointed_to_var): Assume that VALUE is always an
720         ADDR_EXPR.
721         (collect_points_to_info_r): Only call add_pointed_to_var if
722         the value is an ADDR_EXPR.
723
724 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
725
726         * tree-ssa-alias.c (create_alias_map_for): Do not get the
727         alias set of the inner type of ARRAY_TYPEs.
728
729 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
730
731         * tree-ssa-ccp.c (visit_assignment): Move code to prevent
732         setting a non-register to UNDEFINED right before the call to
733         set_lattice_value.
734
735 2004-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
736
737         * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*.
738
739 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
740
741         * tree-ssa.c (verify_flow_sensitive_alias_info): When
742         comparing points-to sets of different pointers, make sure the
743         second pointer is actually referenced in the code.
744
745 2004-07-29  Zack Weinberg  <zack@codesourcery.com>
746
747         * config/ia64/ia64.c (setjmp_operand): Delete, unused.
748         (got_symbolic_operand): Remove unreachable code.
749         * config/ia64/ia64.h (PREDICATE_CODES): Remove entry for
750         setjmp_operand; add entry for tls_symbolic_operand.
751         * config/ia64/ia64-protos.h: Remove all prototypes of
752         predicate functions.
753
754 2004-07-29  Mark Mitchell  <mark@codesourcery.com>
755
756         * c-common.h (lang_post_pch_load): New variable.
757         * c-pch.c (lang_post_pch_load): Define it.
758         (c_common_read_pch): Use it.
759         * cgraphunit.c (record_call_1): Give the front end a chance to
760         record additional needed entities when a variable is marked as
761         needed.
762         * tlink.c (recompile_files): Robustify.
763         (scan_linker_output): If a symbol is assigned to a file,
764         but after recompilation is not present there, issue an error
765         message.
766
767 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
768
769         * tree-ssa-loop-im.c (force_move_till_expr, force_move_till):
770         Take orig_loop argument and pass it to set_level.
771         (schedule_sm): Pass the correct orig_loop to force_move_till.
772
773 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
774
775         * cfgloop.c (update_latch_info): Update dominator of the new block.
776         (canonicalize_loop_headers, flow_loops_find): Do not free dominance
777         info.
778         * dominance.c (verify_dominators): Check that the dominance tree is
779         connected.
780         (recount_dominator): Ignore unreachable blocks.
781         (iterate_fix_dominators): Cleanup old dominance information before
782         recomputing it.
783
784 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
785
786         * tree-ssa-operands.c (get_expr_operands): Revert changes
787         to ADDR_EXPR processing introduced by:
788             2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
789             * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
790
791 2004-07-29  Joseph S. Myers  <jsm@polyomino.org.uk>
792
793         * doc/implement-c.texi: Add C90 subclause references.  Point to
794         preprocessor documentation instead of duplicating it.  Add points
795         only present in C90.  Fill in documentation for all points.
796
797 2004-07-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
798
799         * pa.c (output_movb): Correct typo.
800
801 2004-07-29  Pat Haugen  <pthaugen@us.ibm.com>
802
803         * ra.h (single_reg_in_regclass): Declare.
804         * ra.c (single_reg_in_regclass): Define.
805         (first_hard_reg): New.
806         (init_ra): Initialize single_reg_in_regclass.
807         * ra-colorize.c (ok_class): New.
808         (coalesce, aggressive_coalesce, extended_coalesce_2): Use it.
809
810 2004-07-29  Nathan Sidwell  <nathan@codesourcery.com>
811
812         * gcov-io.h: Allow zero tag as EOF indicator.
813         (gcov_is_eof): Remove.
814         (gcov_truncate): Remove.
815         * gcov-io.c (gcov_seek): Always SEEK_SET.
816         * libgcov.c (gcov_exit): Don't use gcov_truncate.  Write explicit
817         EOF tag.
818         * coverage.c (read_counts_file): Don't use gcov_is_eof.
819         * gcov-dump.c (dump_file): Likewise.
820         * gcov.c (read_graph_file, read_count_file): Likewise.
821
822         * c-decl.c (complete_array_type): Don't gratuitously copy
823         maxindex.  Check it always has a type.
824
825 2004-07-29  Steven Bosscher  <stevenb@suse.de>
826
827         * rtl.c (currently_expanding_to_rtl): New.
828         * rtl.h (currently_expanding_to_rtl): Export it.
829         * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit.
830
831         * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
832         inliner hack.
833         * config/sh/sh.c: Replace rtx_equal_function_value_matters
834         with currently_expanding_to_rtl.
835         * config/sh/sh.md: Likewise.
836         * config/ia64/ia64.c (got_symbolic_operand): Likewise.
837
838 2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
839
840         Introduce sh2a support.
841         2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
842         * config.gcc: Build multilibs for sh2a and sh2a-single by
843         default.
844         * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
845         default.  Split their tests out of the corresponding SH4
846         multilibs.
847         * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
848         multilibs for SH2a.
849         2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
850         * config.gcc: Handle sh2a multilibs and cpu selection.
851         * config/sh/sh.h: Likewise.  Handle sh2a command line flags.
852         * config/sh/t-mlib-sh2a: New.
853         * config/sh/t-mlib-sh2a-nofpu: New.
854         * config/sh/t-mlib-sh2a-single: New.
855         * config/sh/t-mlib-sh2a-single-only: New.
856         2004-07-09  Nick Clifton  <nickc@redhat.com>
857         Issue 43400
858         * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if
859         -ml and -m2a are used together.
860         2004-03-23  DJ Delorie  <dj@redhat.com>
861         * config/sh/sh.c (sh_builtin_saveregs): Use the double code only
862         when we have a double-sized FPU.
863         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
864         * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__
865         is set.
866         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu,
867         -msh2a-single and -msh2a-single-only
868         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
869         * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__
870         is set.
871         2004-02-20  DJ Delorie  <dj@delorie.com>
872         * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu.
873         2004-02-20  Fred Fish <fnf@redhat.com>,
874         Corinna Vinschen <vinschen@redhat.com>
875         * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu.
876         (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a.
877         2004-02-18  DJ Delorie  <dj@redhat.com>
878         * config/sh/sh.c (broken_move): Add support for movi20.
879         * config/sh/sh.h: Likewise.
880         (SHIFT_COUNT_TRUNCATED): Set for sh2a.
881         * config/sh/sh.md (udivsi3_sh2a): New.
882         (udivsi3): Call it.
883         (divsi3_sh2a): New.
884         (divsi3): Call it.
885         (mul_r): New.
886         (ashlsi3_sh2a): New.
887         (ashrsi3_sh2a): New.
888         (lshrsi3_sh2a): New.
889         (movsi_i): Disable for sh2a.
890         (movsi_ie): Add movi20.
891         (movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable
892         sh2a, for -m2a-nofpu mode.
893         2004-02-13  DJ Delorie  <dj@redhat.com>
894         * config/sh/lib1funcs.asm: Handle double vs single better.
895         * config/sh/sh.h: Likewise.
896         2004-02-09  DJ Delorie  <dj@redhat.com>
897         * config/sh/crt1.asm: Add support for sh2a.
898         * config/sh/elf.h: Likewise.
899         * config/sh/lib1funcs.asm: Likewise.
900         * config/sh/sh.c: Likewise.
901         * config/sh/sh.md: Likewise.
902         * config/sh/sh.h: Likewise.
903         * config/sh/t-sh: Likewise.
904
905 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
906
907         * config/frv/frv.md (movqi_internal, movhi_internal,
908         movsi_internal): Add backup alternatives for memory inputs.
909
910 2004-07-28  Matt Austern  <austern@apple.com>
911
912         * config/darwin.c (darwin_one_byte_bool): New global variable.
913         * config/darwin.h (darwin_one_byte_bool): Declare.
914         (SUBTARGET_OPTIONS): Define macro.  (for -mone-byte-bool flag.)
915         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on
916         value of darwin_one_byte_bool.
917         * doc/invoke.texi: Document -mone-byte-bool flag.
918
919 2004-07-28  Eric Christopher  <echristo@redhat.com>
920
921         * c-common.c (c_common_unsafe_for_reeval): Delete.
922         * c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use.
923         * c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case.
924         * calls.c (fix_unsafe_tree): Delete.
925         (expand_call): Delete code which used above.
926         * dojump.c (do_jump): Delete UNSAVE_EXPR case.
927         * expr.c (expand_expr_real_1): Ditto.
928         * fold-const.c (non_lvalue): Ditto.
929         * langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
930         (lhd_unsafe_for_reeval): Ditto.
931         * langhooks.c (lhd_unsafe_for_reeval): Ditto.
932         * langhooks.h (unsafe_for_reeval): Ditto.
933         (unsave_expr_now): Adjust comment.
934         * tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits.
935         (estimate_num_insns_1): Ditto.
936         * tree-pretty-print.c (dump_generic_node): Ditto.
937         * tree.c (expr_align): Ditto.
938         (unsave_expr): Delete.
939         (unsafe_for_reeval): Ditto.
940         * tree.h (unsafe_for_reeval, unsave_expr): Ditto.
941         * tree.def (UNSAVE_EXPR): Delete.
942         * objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
943
944 2004-07-28  Zack Weinberg  <zack@codesourcery.com>
945
946         * tree.h (enum tls_model): Move ...
947         * coretypes.h: ... here.
948
949 2004-07-28  Richard Sandiford <rsandifo@redhat.com>
950
951         * config/frv/frv.h (EPILOGUE_USES): New.  Use LR.
952
953 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
954
955         * cse.c (validate_canon_reg): New function, split out from...
956         (canon_reg): ...here.  Use validate_canon_reg for both 'e' and 'E'.
957
958 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
959
960         * tree-ssa-alias.c (maybe_create_global_var): Don't just
961         return if .GLOBAL_VAR has been created.
962
963 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
964
965         * tree-ssa.c (verify_flow_insensitive_alias_info): Process
966         every variable that may have aliases, not just tags.
967
968 2004-07-28  Aldy Hernandez  <aldyh@redhat.com>
969
970         * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to
971         move_from_CR_eq_bit.
972         Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ.
973
974
975         * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
976         e500_flip_eq_bit.
977
978         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
979         output_e500_flip_eq_bit.
980
981         * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to
982         output_e500_flip_eq_bit.
983         (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to
984         output_e500_flip_eq_bit.
985         Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit.
986         (print_operand): case D.  Get to EQ bit.
987
988 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
989
990         * gcov.c (function_summary): Add missing \n.
991
992 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
993
994         Introduce sh4a support.
995         * config.gcc: Handle sh4a multilibs and cpu selection.
996         * config/sh/sh.h: Likewise.  Handle sh4a command line flags.
997         * config/sh/t-mlib-sh4a: New.
998         * config/sh/t-mlib-sh4al: New.
999         * config/sh/t-mlib-sh4a-nofpu: New.
1000         * config/sh/t-mlib-sh4a-single: New.
1001         * config/sh/t-mlib-sh4a-single-only: New.
1002         2004-02-20  DJ Delorie  <dj@redhat.com>
1003         * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua".
1004         * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support.
1005         2003-08-22  Eric Christopher  <echristo@redhat.com>
1006         * config/sh/sh4a.md: Update for chip errata.
1007         2003-08-07  Eric Christopher  <echristo@redhat.com>
1008         * config/sh/sh4a.md: New file. sh4a processor description.
1009         2003-07-08  Alexandre Oliva  <aoliva@redhat.com>
1010         * config/sh/sh.h (TARGET_SWITCHES): Added 4al.  Adjust description
1011         of -m4a-nofpu.
1012         (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu.
1013         * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu.
1014         * doc/invoke.texi (SH Options): Document -m4al.
1015         2003-07-03  Alexandre Oliva  <aoliva@redhat.com>
1016         * config/sh/sh.c (expand_block_move): Remove commented-out code
1017         checked in by mistake.
1018         (sh_cannot_change_mode_class): Enable SUBREGs to be used to select
1019         single elements from SFmode vectors.
1020         * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output
1021         register.
1022         (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER.
1023         2003-07-01  Alexandre Oliva  <aoliva@redhat.com>
1024         * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int,
1025         sh_fsca_int2sf): Remove variable declarations.
1026         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
1027         sh_fsca_int2sf): New functions.
1028         (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx,
1029         sh_fsca_int2sf_rtx): New static variables.
1030         * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int,
1031         sh_fsca_int2sf): Declare.
1032         * config/sh/sh.md: Adjust.
1033         * doc/invoke.texi (SH Options): Document new options.
1034         * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward
1035         compatibility from SH4 code.
1036         2003-06-27  Alexandre Oliva  <aoliva@redhat.com>
1037         * config/sh/sh.c (expand_block_move): Don't emit POST_INC too
1038         early.
1039         (memory_movsrc_operand): Renamed to...
1040         (unaligned_load_operand): ... this.  Simplified.
1041         * config/sh/sh.h (PREDICATE_CODES): Adjust.
1042         * config/sh/sh.md (movua, extv, extzv): Likewise.  Change movua's
1043         input operand to SImode, and adjust the others.  Introduce
1044         post-increment by peephole.
1045         * config/sh/sh.c (expand_block_move): Give the target address the
1046         same mode as the temp reg.
1047         * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned
1048         copying.
1049         2003-06-26  Alexandre Oliva  <aoliva@redhat.com>
1050         Introduce support for SH4a.
1051         * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if
1052         __SH4A__.  Emit 4 4kb blocks and touch all of them otherwise.
1053         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
1054         sh_fsca_int2sf): New.
1055         (sh_init_builtins): Initialize them.
1056         (print_operand): Support `d'.
1057         (expand_block_move): Use movua if src is misaligned.
1058         (memory_movsrc_operand): New.
1059         * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__
1060         and one of the SH4 macros.
1061         (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP,
1062         SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A,
1063         SELECT_SH4A_SINGLE): New.
1064         (TARGET_NONE): Add SH4A_BIT.
1065         (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a.
1066         (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu.
1067         (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare.
1068         (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate.
1069         (enum processor_type): Added PROCESSOR_SH4A.
1070         (PREDICATE_CODES): Add memory_movsrc_operand.
1071         * config/sh/sh.md: Removed unused variables.
1072         (attr cpu): Add sh4a.
1073         (attr type): Add movua, fsrra and fsca.
1074         (prefetch): New, for SH4.
1075         (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi.
1076         (toggle_sz): Set type to fp.
1077         (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New.
1078         (movua, extv, extzv): New.
1079         * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single
1080         and 4a-single-only.
1081
1082 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
1083
1084         * tree-optimize.c (init_tree_optimization_passes): Schedule
1085         pass_may_alias right after the program is renamed into SSA.
1086         * tree-pass.h (PROP_alias): Define.
1087         * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias.
1088         * tree-sra.c (pass_sra): Likewise.
1089         * tree-ssa-ccp.c (pass_ccp): Likewise.
1090         * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise.
1091         * tree-ssa-dce.c (pass_dce): Likewise.
1092         * tree-ssa-dom.c (pass_dominator): Likewise.
1093         * tree-ssa-dse.c (pass_dse): Likewise.
1094         * tree-ssa-forwprop.c (pass_forwprop): Likewise.
1095         * tree-ssa-loop-ch.c (pass_ch): Likewise.
1096         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
1097         * tree-ssa-pre.c (pass_pre): Likewise.
1098         * tree-tailcall.c (pass_tail_recursion): Likewise.
1099         * tree-ssa.c (pass_redundant_phi): Likewise.
1100         * tree-ssa-alias.c (aliases_computed_p): Remove.
1101         Update all users.
1102         (init_alias_info): Do not mark all type tags for renaming
1103         unconditionally.
1104         Clear may_aliases from every symbol.
1105         (setup_pointers_and_addressables): If a pointer has not been
1106         dereferenced and it had a type tag, clear it and mark the old
1107         tag for renaming.
1108
1109 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
1110
1111         PR tree-optimization/16705
1112         * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on
1113         .GLOBAL_VAR.
1114
1115 2004-07-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1116
1117         * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error
1118         check.
1119
1120         * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR,
1121         don't make another one.
1122
1123         PR optimization/15077
1124         * function.h (struct function): Add field saved_static_chain_decl.
1125         Fix comment for static_chain_decl.
1126         * tree-inline.c (save_body): Add new arg and handle static_chain_decl.
1127         * tree-inline.h (save_body): Add new arg.
1128         * tree-optimize.c (tree_rest_of_compilation): Handle saving
1129         static_chain_decl.
1130
1131 2004-07-27  Richard Henderson  <rth@redhat.com>
1132
1133         * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove.
1134         (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use
1135         is_gimple_addressable.
1136         * tree-gimple.c (is_gimple_addressable): Rename from
1137         is_gimple_addr_expr_arg; accept INDIRECT_REF.
1138         (is_gimple_lvalue): Don't test INDIRECT_REF directly.
1139         * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for
1140         rename to is_gimple_addressable.
1141
1142 2004-07-28  Alan Modra  <amodra@bigpond.net.au>
1143
1144         * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards.
1145
1146 2004-07-27  Richard Henderson  <rth@redhat.com>
1147
1148         * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
1149         before rounding.
1150
1151 2004-07-27  Zack Weinberg  <zack@codesourcery.com>
1152
1153         * libgcc2.c: Change all conditionals testing
1154         LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
1155         * libgcc2.h: Likewise.
1156         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set
1157         TYPE_PRECISION of float80_type to 80.
1158         * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION
1159         of fpreg_type and float80_type to 80.
1160         * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h
1161         * config/m68k/netbsd-elf.h:
1162         Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE
1163         to evaluate to 80 whenever they would formerly have evaluated to 96.
1164         * config/i386/sco5.h: Remove unnecessary redefinition of
1165         LONG_DOUBLE_TYPE_SIZE.
1166         * doc/rtl.texi: Clarify uses of XFmode and TFmode.
1167         * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for
1168         XFmode, with a bitsize of 80.  Update commentary.
1169         * config/ia64/ia64-modes.def: Likewise.
1170         * config/m68k/m68k-modes.def: Likewise.
1171
1172 2004-07-27  Steven Bosscher  <stevenb@suse.de>
1173
1174         * cfgexpand.c (tree_expand_cfg): Fix comment.
1175
1176         * calls.c (expand_call): Ignore rtx_equal_function_value_matters.
1177         * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets):
1178         Remove.
1179         (prepare_function_start): Don't set rtx_equal_function_value_matters.
1180         * integrate.c (copy_rtx_and_substitute): Don't test for it.
1181         * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets.
1182         Don't set rtx_equal_function_value_matters.  Don't register RTL hooks
1183         here again.  Update leading comment.
1184         * rtl.c (rtx_equal_function_value_matters): Remove.
1185         (rtx_equal_p): Don't test for it.
1186         * simplify-rtx.c (simplify_binary_operation, simplify_subreg):
1187         Likewise.
1188
1189         * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND.
1190         * rtl.c (note_insn_name): Likewise.
1191         * emit-rtl.c (remove_unnecessary_notes): Don't handle it.
1192         * final.c (final_scan_insn): Likewise.
1193
1194         * except.c (finish_eh_generation): Don't call cfg_cleanup from here.
1195         * passes.c (rest_of_handle_eh): Do it here.
1196
1197         * stmt.c (struct nesting): Remove struct nesting block member.
1198         (struct stmt_status): Remove x_block_start_count field.
1199         (current_block_start_count): Remove.
1200
1201 2004-07-27  Brian Booth  <bbooth@redhat.com>
1202
1203         * tree-optimize.c (register_one_dump_file): Update condition that uses
1204         static_pass_number.
1205         (dup_pass_1): Replace with...
1206         (next_pass_1): This.
1207         (NEXT_PASS): Call next_pass_1.
1208         (DUP_PASS): Remove.
1209         (init_tree_optimization_passes): Remove uses of DUP_PASS.
1210         (execute_one_pass): Update condition that uses
1211         static_pass_number.
1212         * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed
1213         integer.
1214
1215 2004-07-27  Nick Clifton  <nickc@redhat.com>
1216
1217         * config/m32r/m32r.c: Include integrate.h in order to get the
1218         prototype for get_hard_reg_initial_val().
1219
1220         * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r"
1221         and tidy up indentation.
1222         (final_presence_set): Use absence_set instead, so that if there is
1223         nothing in the "o" pipe the "s" pipe can be scheduled.
1224
1225 2004-07-27  Diego Novillo  <dnovillo@redhat.com>
1226
1227         * tree-ssa-alias.c (create_name_tags): Ignore pointers that
1228         don't have PT_VARS nor PT_MALLOC set.
1229         Clear name tag from pointers that have not been dereferenced.
1230         (set_pt_anything, set_pt_malloc): Forward declare.
1231         * tree-ssa-copy.c (may_propagate_copy): Compare alias sets,
1232         not type compatibility when determining if a pointer can be
1233         copy propagated.
1234
1235 2004-07-27  Richard Sandiford  <rsandifo@redhat.com>
1236
1237         * expr.h (canonicalize_condition, get_condition): Add an int argument.
1238         * gcse.c (fis_get_condition): Reimplement using get_condition, leaving
1239         it to check whether the condition is still valid at the jump insn.
1240         * ifcvt.c (noce_get_condition): Likewise.
1241         (noce_get_alt_condition): Update call to canonicalize_condition.
1242         * loop-iv.c (simplify_using_initial_values): Update call to
1243         get_condition.  Remove FIXME.
1244         (check_simple_exit): Update call to get_condition.
1245         * loop-unswitch.c (may_unswitch_on): Likewise.
1246         * loop.c (check_dbra_loop): Likewise.
1247         (canonicalize_condition, get_condition): Add an argument to say whether
1248         the condition must still be valid at INSN.
1249         (get_condition_for_loop): Update call to get_condition.  Require that
1250         the condition be valid at INSN.
1251         * predict.c (estimate_probability): Update call to get_condition.
1252         Remove unused earliest parameter.
1253         (expected_value_to_br_prob): Update call to canonicalize_condition.
1254
1255 2004-07-26  Eric Christopher  <echristo@redhat.com>
1256
1257         * tree-dfa.c (add_referenced_var): Register initializers of global
1258         variables.
1259
1260 2004-07-26  Paolo Bonzini  <bonzini@gnu.org>
1261
1262         * config/i386/i386.c (function_arg): Always treat 8-
1263         and 16-byte wide vectors the same, even if MMX/SSE
1264         are disabled.
1265         (contains_128bit_aligned_vector_p): Add comment.
1266
1267 2004-07-26  J"orn Rennecke <joern.rennecke@superh.com>
1268
1269         * ra.h (enum node_type): Rename to:
1270         (enum ra_node_type).
1271         * ra-colorize.c: Likewise.
1272
1273 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
1274
1275         * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag
1276         after simplifying the jump.
1277
1278 2004-06-26  Richard Henderson  <rth@redhat.com>
1279
1280         * calls.c (combine_pending_stack_adjustment_and_call): Make
1281         preferred_unit_stack_boundary argument unsigned.  Make
1282         unadjusted_alignment unsigned.
1283         (expand_call): Make preferred_stack_boundary and
1284         preferred_unit_stack_boundary variables unsigned.
1285         * function.c (assign_stack_local_1): Make alignment unsigned.
1286         * function.h (struct function): Make stack_alignment_needed,
1287         preferred_stack_boundary unsigned.
1288         * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned.
1289         (ix86_compute_frame_layout): Make stack_alignment_needed,
1290         preferred_alignment variables unsigned.
1291         * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned.
1292
1293 2004-07-26  Tom Tromey  <tromey@redhat.com>
1294
1295         * tree.h: Fix typo in comment.
1296
1297 2004-07-26  Daniel Jacobowitz  <dan@debian.org>
1298
1299         PR bootstrap/12804
1300         * ggc-zone.c (struct alloc_chunk): Remove attribute packed.
1301         (MAX_FREE_BIN_SIZE): Increase on 64-bit targets.
1302         (ggc_free): Remove incorrect freeing.
1303         (sweep_pages): Advance PP for large pages.  Fix indentation.
1304
1305 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
1306
1307         PR rtl-optimization/16643
1308         * cfglayout.h (cfg_layout_initialize): Add a flags parameter.
1309         * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
1310         * basic-block.h (reorder_basic_blocks): Add a flags parameter.
1311         * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
1312         (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
1313         * function.c (thread_prologue_and_epilogue_insns): Likewise.
1314         * rtl.h (tracer): Add a flags parameter.
1315         * tracer.c (tracer): Pass it to cfg_layout_initialise.
1316         * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
1317         (rest_of_handle_reorder_blocks): Update calls to tracer and
1318         reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
1319         (rest_of_handle_tracer): Pass 0 to tracer.
1320         (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.
1321
1322 2004-07-25  David Edelsohn  <edelsohn@gnu.org>
1323
1324         PR target/16239
1325         * config/rs6000/rs6000.md (movdi_internal64): Further disparage
1326         f->f.
1327
1328 2004-07-24  Nathan Sidwell  <nathan@codesourcery.com>
1329
1330         * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree).
1331         (BINFO_BASE_ACCESS): Adjust.
1332         (BINFO_BASE_ACCESS_APPEND): New.
1333         (struct tree_binfo): Make base_accesses a VEC(tree) pointer.
1334         * dbxout.c (dbxout_type): Adjust binfo access accessing.
1335         * dwarf2out.c (gen_member_die): Likewise.
1336         * tree-dump.c (deque_and_dump): Likewise.
1337
1338 2004-07-26  Falk Hueffner  <falk@debian.org>
1339
1340         * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div
1341         costs.
1342
1343 2004-07-25  Roger Sayle  <roger@eyesopen.com>
1344
1345         * config/i386/i386.c (output_fp_compare): Use ffreep to pop top
1346         value off of the stack if TARGET_USE_FFREEP.
1347
1348 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
1349
1350         * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC ().
1351         * gengtype-yacc.y: Likewise.  Replace free() with XDELETE ().
1352         * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer
1353         check on invocation of XRESIZEVEC ().
1354
1355 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
1356
1357         * c-common.c (disable_builtin_function): Rename variable n to
1358         new_disabled_builtin.
1359         * c-decl.c (duplicate_decls): Rename parameter decl to new_decl.
1360         Rename local variable old to old_decl.
1361         * gensupport.c (shift_output_template): Rename parameter old to src.
1362         * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to
1363         old_rtx and newx to new_rtx.
1364
1365 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
1366
1367         * Makefile.in (C_PRAGMA_H): New variable to track dependencies
1368         of c-pragma.h.
1369         * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to
1370         enum cpp_ttype.
1371         * c-lex.c: Likewise.
1372
1373 2004-07-25  Roger Sayle  <roger@eyesopen.com>
1374
1375         * fold-const.c (constant_boolean_node): Make extern.
1376         (make_range): Wrap long lines.
1377         (fold_cond_expr_with_comparison): Remove unnecessary call to
1378         pedantic_non_lvalue.  Add missing calls to fold_convert.
1379         (fold_truthop): Add missing calls to fold_convert.
1380         (fold): Likewise.
1381         * tree.h (constant_boolean_node): Add prototype here.
1382         * builtins.c (expand_builtin_strncmp): Add missing calls to
1383         fold_convert.
1384         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
1385         Call fold_convert and constant_boolean_node to correct types.
1386         * tree-ssa-forwprop.c (substitute_single_use_vars): Add
1387         missing call to fold_convert to correct types.
1388
1389 2004-07-26  Niall Douglas  <s_fsfeurope2@nedprod.com>
1390             Brian Ryner  <bryner@brianryner.com>
1391
1392         PR c++/9283
1393         PR c++/15000
1394         * c-common.c (c_common_attribute_table): Allow
1395         handle_visibility_attribute to be called for types.
1396         (handle_visibility_attribute) When given a type, set the visibility
1397         bits on the TYPE_NAME.  When given a decl, don't set no_add_attrs
1398         so that we can check later whether the attribute was present. Added
1399         warning if attribute applied to non class type.
1400         * c-decl.c (diagnose_mismatched_decls): Updated rules for merging
1401         decls and checking that they are consistent.
1402         * common.opt: Added -fvisibility.
1403         * c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
1404         * c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
1405         * flags.h, tree.h: Added assorted support defines for overall patch
1406         * opts.c: Added parsing support for -fvisibility.
1407         * tree.c (build_decl): Set visibility for all decls to be whatever
1408         is in force at that time.
1409         * varasm.c (default_binds_local_p_1): Reworked logic determining
1410         when to make a symbol locally bound.
1411         * doc/invoke.texi: Added documentation for -fvisibility and
1412         -fvisibility-inlines-hidden.
1413
1414 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
1415
1416         * basic-block.h (reorder_block_def): Rename to reorder_block_def_p.
1417         * c-common.c: Add missing casts from void * to other types.
1418         * c-decl.c: Likewise.
1419         * c-format.c: Likewise.
1420         * c-lex.c: Likewise.
1421         * c-pragma.c: Likewise.
1422         * c-typeck.c: Likewise.
1423         * defaults.h: Likewise.
1424         * genconstants.c: Likewise.
1425         * gengtype-lex.l: Likewise.
1426         * genmodes.c: Likewise.
1427         * read-rtl.c: Likewise.
1428         * rtl.c: Likewise.
1429
1430 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
1431
1432         * bitmap.c: Use type-safe memory allocation macros from libiberty.
1433         * c-common.c: Likewise.
1434         * c-decl.c: Likewise.
1435         * c-lang.c: Likewise.
1436         * c-lex.c: Likewise.
1437         * c-opts.c: Likewise.
1438         * c-parse.in: Likewise.
1439         * c-typeck.c: Likewise.
1440         * genconditions.c: Likewise.
1441         * gengtype-lex.l: Likewise.
1442         * gengtype-yacc.y: Likewise.
1443         * gengtype.c: Likewise.
1444         * genmodes.c: Likewise.
1445         * gensupport.c: Likewise.
1446         * read-rtl.c: Likewise.
1447         * read-rtl.c (read_constants): Use INSERT instead of TRUE in call to
1448         htab_find_slot().
1449
1450 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
1451
1452         * c-decl.c (groktypename, groktypename_in_param_context): Rename
1453         variable typename to type_name.
1454         * c-lex.c (interpret_float): Likewise.
1455
1456 2004-07-25  Roger Sayle  <roger@eyesopen.com>
1457
1458         * convert.c (convert_to_real, convert_to_integer,
1459         convert_to_complex): Replace calls to build with calls to buildN.
1460         * coverage.c (tree_coverage_counter_ref): Likewise.
1461         * dojump.c (do_jump): Likewise.
1462         * dwarf2out.c (loc_descriptor_from_tree): Likewise.
1463         * emit-rtl.c (component_ref_for_mem_expr,
1464         set_mem_attributes_minus_bitpos): Likewise.
1465         * explow.c (update_nonlocal_goto_save_area): Likewise.
1466         * expmed.c (expand_shift, make_tree, const_mult_add_overflow_p,
1467         expand_mult_add): Likewise.
1468         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall,
1469         store_constructor, get_inner_reference, expand_expr_real_1,
1470         try_casesi, try_tablejump): Likewise.
1471         * function.c (expand_function_start): Likewise.
1472         * stmt.c (emit_case_bit_tests, expand_end_case_type,
1473         node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise.
1474         * stor-layout.c (place_union_field, layout_type): Likewise.
1475         * tree.c (substitute_in_expr, tree_fold_gcd): Likewise.
1476         * varasm.c (copy_constant): Likewise.
1477
1478 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
1479
1480         * c-common.c: Rename all identifiers named `new'.
1481         * c-decl.c: Likewise.
1482         * gensupport.c: Likewise.
1483         * simplify-rtx.c: Likewise.
1484         * c-common.c (disable_builtin_function): Replace a call to xmalloc()
1485         with XNEW().
1486         * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc()
1487         with XNEWVEC().
1488
1489 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
1490
1491         PR c/15360
1492         * c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized
1493         declarations until after calling pushdecl.
1494         (grokdeclarator): Set DECL_EXTERNAL for variables based on use of
1495         "extern" and not on whether the declaration is initialized.
1496
1497 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
1498
1499         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
1500         (sparc-*-solaris2*): Include sol2.o and sol2-protos.h.
1501         * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h",
1502         "cpplib.h", "c-pragma.h", "c-common.h".
1503         (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini)
1504         (solaris_register_pragmas): New functions.
1505         * config/sol2-protos.h: New file.
1506         * config/sol2.c: New file.
1507         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE)
1508         (REGISTER_TARGET_PRAGMAS): New macros.
1509         (solaris_pending_aligns, solaris_pending_inits)
1510         (solaris_pending_finis): New variables.
1511         * config/t-sol2 (sol2-c.o): Update dependencies.
1512         (sol2.o): New rule.
1513         * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of
1514         SUBTARGET_INSERT_ATTRIBUTES.
1515         (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE.
1516         * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
1517         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
1518         * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
1519         * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
1520         * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
1521         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
1522         * config/sparc/sparc.c (sparc_attribute_table): New.
1523         (TARGET_INSERT_ATTRIBUTES): Define in terms of
1524         SUBTARGET_INSERT_ATTRIBUTES.
1525         (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE
1526         is defined.
1527         * doc/extend.texi (Solaris Pragmas): New section.
1528
1529 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
1530
1531         * c-common.c: Rename all identifiers named `class' to `cl'.
1532         * c-common.h: Likewise.
1533         * c-parse.in: Likewise.
1534         * c-typeck.c: Likewise.
1535         * genmodes.c: Likewise.
1536         * real.c: Likewise.
1537         * real.h: Likewise.
1538         * recog.c: Likewise.
1539         * recog.h: Likewise.
1540         * regrename.c: Likewise.
1541         * tree.h: Likewise.
1542         * c-common.c (builtin_function_2): Change type of 5th parameter from
1543         int to enum built_in_function. Change type of 8th parameter from int
1544         to bool.
1545         * c-decl (builtin_function): Replace call to ggc_alloc_cleared ()
1546         with GGC_CNEW().
1547         * c-typeck.c (convert_arguments): Change type of formal_prec from
1548         int to unsigned int.
1549         * genmodes.c (blank_mode): Make a few negative constants unsigned.
1550         (complete_all_modes, calc_wider_mode, emit_insn_modes_h,
1551         emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size,
1552         emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner,
1553         emit_mode_base_align, emit_class_narrowest_mode): Pass an integer
1554         iterator to for_all_modes () instead of an enum because enums can't
1555         be incremented in C++.
1556
1557
1558 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
1559
1560         * regmove.c (optimize_reg_copy_1): Don't try to replace call-used
1561         hard registers.
1562
1563 2004-07-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1564
1565         * tree-ssa-operands.c (get_stmt_operands, get_expr_operands):
1566         Handle ARRAY_RANGE_REF like ARRAY_REF.
1567
1568 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
1569
1570         * c-typeck.c (digest_init): Don't allow arrays of signed or
1571         unsigned variants of wchar_t to be initialized by wide string
1572         constants.  Do allow arrays of enumerated types compatible with
1573         wchar_t to be initialized by wide string constants.  Refine tests
1574         distinguishing wide and narrow strings and arrays.  Give specific
1575         error for arrays of other integer types initialized by string
1576         constants.
1577         (output_init_element, process_init_element): Check for
1578         INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when
1579         initializing with string constants.
1580
1581 2004-07-25  Richard Henderson  <rth@redhat.com>
1582
1583         * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
1584         on the RESULT_DECL.
1585         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
1586         * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
1587         DECL_IGNORED_P to new decl.
1588
1589 2004-07-24  Zack Weinberg  <zack@codesourcery.com>
1590
1591         * config/ia64/ia64.c (general_xfmode_operand)
1592         (destination_xfmode_operand): Delete.
1593         * config/ia64/ia64.h (PREDICATE_CODES): Remove them.
1594         * config/ia64/ia64.md (*movxf_internal): Use general_operand
1595         and destination_operand.
1596
1597 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
1598
1599         * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing.
1600         (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS.
1601
1602 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
1603             Zack Weinberg  <zack@codesourcery.com
1604
1605         PR 16684
1606         * c-decl.c (diagnose_mismatched_decls): Don't issue a
1607         redundant-declaration warning the first time a builtin is
1608         declared explicitly.
1609
1610 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
1611
1612         * tree.h (staticp): Change return type to bool.
1613
1614 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
1615
1616         * c-common.c (c_staticp): Last episode of the staticp saga.
1617
1618 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
1619
1620         * c-common.h (c_staticp): Change return type from int to bool.
1621         * tree.c (staticp): Likewise.
1622         * langhooks.h (staticp): Likewise.
1623
1624 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
1625
1626         * langhooks-def.h (lhd_staticp): Change return type from int to
1627         bool in prototype to match definition.
1628
1629 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
1630
1631         * system.h (bool, true, false): Don't redefine as preprocessor macros
1632         in C++.
1633
1634 2004-07-24  Roger Sayle  <roger@eyesopen.com>
1635
1636         * expmed.c (init_expmed): A signed modulus by a power of two is
1637         considered cheap if its less than or equal to four instructions.
1638
1639 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
1640
1641         * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR,
1642         GGC_CNEWVAR): New macros.
1643
1644 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
1645
1646         * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter
1647         lists.
1648         * c-decl.c: Likewise.
1649         * c-format.c: Likewise.
1650         * c-lex.c: Likewise.
1651         * c-opts.c: Likewise.
1652         * c-pragma.c: Likewise.
1653         * c-typeck.c: Likewise.
1654         * gencheck.c: Likewise.
1655         * genconditions.c: Likewise.
1656         * genconfig.c: Likewise.
1657         * genflags.c: Likewise.
1658         * gengtype.c: Likewise.
1659         * gensupport.c: Likewise.
1660         * ggc-none.c: Likewise.
1661         * langhooks.c: Likewise.
1662         * statistics.h: Likewise.
1663         * stub-objc.c: Likewise.
1664         * java/decl.c: Likewise.
1665
1666 2004-07-24  Roman Zippel  <zippel@linux-m68k.org>
1667
1668         * config/m68k/m68k.c (output_scc_di): Fix coding style.
1669         (symbolic_operand): Fix prototype.
1670         * config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand.
1671         * config/m68k/m68k.md: Add constants for registers a0 and sp and
1672         use them, change from the "{...}" syntax to the simpler {...}
1673         syntax.
1674         (*cfv4_extendqisi2): Fix destination predicate.
1675         * config/m68k/m68k-protos.h: Remove various declarations also
1676         generated via PREDICATE_CODES.
1677
1678 2004-07-23  Mike Stump  <mrs@apple.com>
1679
1680         * c-typeck.c (convert_for_assignment): Tightened up pointer
1681         converstions that differ in signedness.
1682
1683 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
1684
1685         * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED.
1686
1687 2004-07-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1688
1689         * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'.
1690         * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New.
1691
1692         * gimplify.c (gimplify_compound_lval): Check for no handled
1693         operations, rather than checking for explicit list of nodes.
1694         (is_gimple_addr_expr_arg_or_indirect): New function.
1695         (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove
1696         redundant setting of TREE_INVARIANT.
1697         (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval.
1698         * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p.
1699
1700 2004-07-23  Diego Novillo  <dnovillo@redhat.com>
1701
1702         PR tree-optimization/16688
1703         PR tree-optimization/16689
1704         * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
1705         unnecessary initialization of 'tag'.
1706         (get_tmt_for): Check that the new type tag has the same alias
1707         set as the pointed-to type.
1708         (group_aliases): Only regular variables need to be removed
1709         from the alias set of a name tag.
1710         * tree-ssa-copy.c (may_propagate_copy): Do not allow copy
1711         propagation if the two types are not compatible.
1712         (merge_alias_info): Rename from replace_ssa_names_ann.
1713         Add more checking.
1714         (replace_exp_1): If both arguments are SSA_NAMEs, check that
1715         the propagation can be done.
1716         Only call merge_alias_info on pointers.
1717         (propagate_value): Likewise.
1718         * tree-ssa-copyrename.c: Include langhooks.h.
1719         (copy_rename_partition_coalesce): Call replace_ssa_name_symbol
1720         to do the merging.
1721         Do not coalesce variables with incompatible types.
1722         (rename_ssa_copies): Call replace_ssa_name_symbol.
1723         * tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has
1724         the same type as the underlying _DECL.
1725         * tree-ssanames.c (replace_ssa_name_symbol): New function.
1726         * tree.h (replace_ssa_name_symbol): Declare.
1727
1728 2004-07-23  Richard Henderson  <rth@redhat.com>
1729
1730         PR c++/16277
1731         * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval;
1732         unshare it properly.
1733         (gimplify_modify_expr_rhs): Push assignment from a conditional into
1734         the conditional for all non-register types.
1735
1736 2004-07-23  Richard Henderson  <rth@redhat.com>
1737
1738         * expr.c (expand_expr_real_1): Don't handle non-local variables.
1739         * expr.h (fix_lexical_addr): Remove.
1740         * function.c (NEED_SEPARATE_AP): Remove.
1741         (fix_lexical_addr): Remove.
1742         * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC,
1743         not null decl_function_context.
1744         (create_alias_vars): Likewise.
1745         * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels.
1746         (simple_goto_p): Likewise.
1747         * tree-dfa.c (add_referenced_var): Don't check for non-local variables.
1748         * tree-ssa-ccp.c (get_default_value): Likewise.
1749         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
1750         * tree.c (needs_to_live_in_memory): Likewise.
1751         * tree-flow-inline.h (may_be_aliased): Move...
1752         * tree-ssa-alias.c (may_be_aliased): ... here.  Enhance check for
1753         when TREE_STATIC variables may be addressable.
1754
1755 2004-07-24  Jakub Jelinek  <jakub@redhat.com>
1756
1757         * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp.
1758
1759 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
1760
1761         * print-rtl.c (print_rtx <case 'b'>): Don't attempt to print
1762         bitmap contents if GENERATOR_FILE is defined.
1763         * Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o.
1764         ($(BUILD_PREFIX_1)bitmap.o): Delete rule.
1765
1766 2004-07-23  Joseph S. Myers  <jsm@polyomino.org.uk>
1767
1768         * c-decl.c (start_function): Form composite type of function types
1769         rather than copying type from previous prototype declaration.
1770
1771 2004-07-23  Janis Johnson  <janis187@us.ibm.com>
1772
1773         * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove
1774         the const qualifier for the second argument in the C++ functions.
1775
1776         * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use
1777         specific pointer types.
1778
1779         * config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm,
1780         vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used
1781         for vector bool and/or vector pixel, add C++ and C missing support.
1782         (vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh,
1783         vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh,
1784         vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum,
1785         vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws,
1786         vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add
1787         missing C++ and C support for vector bool and/or vector pixel.
1788         (vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw,
1789         vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw,
1790         vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw,
1791         vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub,
1792         vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix
1793         C++ and C types used for vector bool and/or vector pixel.
1794         (vec_st, vec_stl): Add C++ support for vector pixel.
1795         (vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool.
1796         (vec_all_ne): Add C++ support for vector pixel.
1797
1798         * config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name.
1799         (vec_vmulesb): Add missing C++ function.
1800         (vec_perm): Fix type of third argument in C++ function.
1801         (vec_vsum4shs): Fix C++ function name.
1802         (vec_any_ge): Remove C++ functions for unsupported arg combinations.
1803         (vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the
1804         argument passed to the error handler in C macro.
1805         (vec_nmsub): Remove extra parens around argument names in C macro.
1806         (vec_packpx): Add missing parens in C macro.
1807
1808 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
1809
1810         * machmode.def: Remove vector modes.
1811         * config/alpha/alpha-modes.def: Add supported vector modes.
1812         * config/arm/arm-modes.def: Likewise.
1813         * config/frv/frv-modes.def: Likewise.
1814         * config/i386/i386-modes.def: Likewise.
1815         * config/rs6000/rs6000-modes.def: Likewise.
1816         * config/sh/sh-modes.def: Likewise.
1817
1818 2004-07-23  Matthias Klose  <doko@debian.org>
1819
1820         * intl.c (gcc_init_libintl): Use PACKAGE for the text domain.
1821         * configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE.
1822         * config.h: Regenerate.
1823         * configure: Likewise.
1824
1825 2004-07-22  Mark Mitchell  <mark@codesourcery.com>
1826
1827         * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on
1828         generated SYMBOL_REFs for labels.
1829         * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr):
1830         Change prototype.
1831         (machopic_stub_name): Remove.
1832         (machopic_indirection_name): New function.
1833         (machopic_mcount_stub_name): Likewise.
1834         (machopic_classify_name): Remove.
1835         (machopic_function_base_sym): New function.
1836         (machpoic_classify_symbol): Likewise.
1837         (machopic_classify_ident): Remove.
1838         (machopic_define_ident): Likewise.
1839         (machopic_define_name): Likewise.
1840         (machopic_name_defined_p): Likewise.
1841         (machopic_ident_defined_p): Likewise.
1842         (darwin_strip_name_encoding): Likewise.
1843         (machopic_define_symbol): New function.
1844         * config/darwin.c (hashtab.h): Include.
1845         (machopic_defined_list): Remove.
1846         (machopic_classify_ident): Likewise.
1847         (machopic_classify_name): Likewise.
1848         (machopic_ident_defined_p): Likewise.
1849         (machopic_define_ident): Likewise.
1850         (machopic_define_name): Likewise.
1851         (machopic_symbol_defined_p): New function.
1852         (machopic_classify_symbol): Likewise.
1853         (machopic_data_defined_p): Use machopic_classify_symbol.
1854         (machopic_define_symbol): New function.
1855         (machopic_function_base_sym): New function.
1856         (machopic_non_lazy_pointers): Remove.
1857         (machopic_non_lazy_ptr_name): Likewise.
1858         (machopic_stubs): Likewise.
1859         (machopic_stub_name): Likewise.
1860         (NON_LAZY_POINTER_SUFFIX): New macro.
1861         (STUB_SUFFIX): Likewise.
1862         (machopic_indirection): New structure.
1863         (machopic_indirections): New variable.
1864         (machopic_indirection_hash): New function.
1865         (machopic_indirection_eq): Likewise.
1866         (machopic_indirection_name): Likewise.
1867         (machopic_mcount_stub_name): New function.
1868         (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use
1869         hash table.
1870         (machopic_indirect_data_reference): Rework to use new functions.
1871         (machopic_indirect_call_target): Likewise.
1872         (machopic_legitimize_pic_address): Likewise.
1873         (machopic_output_indirection): New function.
1874         (machopic_finish): Use it.
1875         (machopic_operand_p): Rework to use new functions.
1876         (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS.
1877         (darwin_strip_name_encoding): Remove.
1878         (update_non_lazy_ptrs): Remove.
1879         (update_stubs): Likewise.
1880         (darwin_non_lazy_pcrel): Use new functions.
1881         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise.
1882         (ASM_OUTPUT_LABELREF): Likewise.
1883         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
1884         (MACHO_SYMBOL_FLAG_VARIABLE): New macro.
1885         (MACHO_SYMBOL_FLAG_DEFINED): Likewise.
1886         (TARGET_STRIP_NAME_ENCODING): Do not use
1887         darwin_strip_name_encoding.
1888         (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use
1889         darwin_strip_name_encoding.
1890         * config/i386/darwin.h (FUNCTION_PROFILER): Use
1891         machopic_mcount_stub_name.
1892         * config/i386/i386.c (x86_output_mi_thunk): Use
1893         machopic_indirection_name, not machopic_stub_name.
1894         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use
1895         machopic_function_base_sym.
1896         (print_operand): Use machopic_classify_symbol.
1897         (rs6000_emit_prologue): Use machopic_function_base_sym.
1898         (output_profile_hook): Do not use machopic_stub_name.
1899         (macho_branch_isalnds): Do not use darwin_strip_name_encoding.
1900
1901 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
1902
1903         PR c/7284
1904         * fold-const.c (extract_muldiv_1): Do not treat signed left shift
1905         as multiplication.
1906
1907 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
1908
1909         * doc/implement-c.texi: New file.
1910         * doc/extend.texi (C Implementation): Move to there.
1911         * doc/gcc.texi: Include implement-c.texi.
1912         * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi.
1913
1914 2004-07-22  Jason Merrill  <jason@redhat.com>
1915
1916         * integrate.c (copy_decl_for_inlining): Remove invisible reference
1917         handling.
1918         * tree-inline.c (setup_one_parameter): Likewise.
1919
1920 2004-07-22  Brian Booth  <bbooth@redhat.com>
1921
1922         * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
1923         (substitute_and_fold): Propigate into VUSE operands when possible.
1924         (visit_phi_node): Handle UNKNOWN_VAL latticevalue.
1925         (cp_lattice_meet): Handle merging of latticevalues when
1926         UNKNOWN_VAL is present.
1927         (visit_stmt): Visit assignments with V_MUST_DEFs.
1928         (visit_assignment): Gather ccp information for V_MUST_DEF operands.
1929         (ccp_fold): Deal with RHS' that are constant and virtual.
1930         (evaluate_stmt): Handle UNKNOWN_VAL likely values.
1931         (dump_lattice_value): Dump UNKNOWN_VAL latticevalues.
1932         (initialize): Mark statements with V_MUST_DEFs as VARYING only if the
1933         V_MUST_DEF operand is VARYING. Fix comment and include VOPS when
1934         computing immediate uses.
1935         (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state
1936         transition.
1937         (replace_vuse_in): New function.
1938         (likely_value): Add check of vuse operands.
1939         (get_default_value): Set the default value of virtually defined
1940         variables to UKNOWN_VAL instead of VARYING.
1941
1942 2004-07-22  Richard Henderson  <rth@redhat.com>
1943
1944         * expr.c (emit_push_insn): Don't use set_mem_attributes.
1945
1946 2004-07-22  Richard Henderson  <rth@redhat.com>
1947
1948         * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used
1949         variables due to conditional compilation.
1950
1951 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
1952
1953         * tree-into-ssa.c (set_livein_block): Fix typo in comment.
1954         (rewrite_ssa_into_ssa): Start iterating over SSA names at 1.
1955         Release SSA names that have been re-renamed.
1956         * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the
1957         variable.
1958         * tree-ssa-alias.c (init_alias_info): If aliases have been
1959         computed before, clear existing alias information.
1960         (create_name_tags): Do no fixup PT_ANYTHING pointers.
1961         If the new name tag for a pointer is different than the one it
1962         had before, mark the old tag for renaming.
1963         (replace_may_alias): New function.
1964         (group_aliases): Call it.
1965         (setup_pointers_and_addressables): Always call get_tmt_for.
1966         (maybe_create_global_var): Don't create .GLOBAL_VAR more than
1967         once.
1968         (set_pt_anything): New local function.
1969         (set_pt_malloc): New local function.
1970         (merge_pointed_to_info): Don't merge pointed-to variables from
1971         the original pointer if the destination is pointing to an
1972         unknown location.
1973         (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc.
1974         (add_pointed_to_var): Do not add a variable to the points-to
1975         set if the pointer is already pointing to anywhere.
1976         (collect_points_to_info_r): If the defining statement is a PHI
1977         node, only merge pointed-to information if the argument has
1978         already been visited.
1979         (get_tmt_for): Only create a new tag if the pointer didn't
1980         have one already.
1981         (dump_alias_info): Emit more information.
1982         (dump_points_to_info_for): Likewise.
1983         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't
1984         try to get the annotation of an SSA_NAME.
1985         * tree-ssa-operands.c (add_stmt_operand): Only check for empty
1986         alias sets when checking is enabled.
1987         * tree-ssa-pre.c (need_eh_cleanup): New local variable.
1988         (eliminate): Mark basic blocks that will need
1989         EH information cleaned up.
1990         (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one
1991         predecessor.
1992         Initialize need_eh_cleanup.
1993         (fini_pre): Call tree_purge_all_dead_eh_edges and
1994         cleanup_tree_cfg if needed.
1995         Free need_eh_cleanup.
1996         * tree-ssa.c (verify_ssa_name): New function.
1997         (verify_def): Call it.
1998         Re-arrange to avoid printing too many error messages.
1999         (verify_use): Likewise.
2000         (verify_phi_args): Likewise.
2001         (verify_flow_insensitive_alias_info): New function.
2002         (verify_flow_sensitive_alias_info): New function.
2003         (verify_alias_info): New function.
2004         (verify_ssa): Call verify_alias_info.
2005         Clear TREE_VISITED on all the SSA_NAMEs before scanning the
2006         program.
2007         Re-arrange to avoid printing too many error messages.
2008         * tree-ssanames.c (make_ssa_name): Clear
2009         SSA_NAME_IN_FREE_LIST.
2010         (release_ssa_name): Never release a default definition.
2011         (release_defs): New function.
2012         * tree.h: Declare it.
2013         * tree-ssa-dce.c (remove_dead_stmt): Call it.
2014
2015 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
2016
2017         * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS.
2018         If true, do a depth-first search.  Do a breadht-first search,
2019         otherwise.
2020         (walk_use_def_chains): Add new argument IS_DFS.
2021         Update all users.
2022         * tree-flow.h (walk_use_def_chains): Update prototype.
2023
2024 2004-07-22  Hans-Peter Nilsson  <hp@axis.com>
2025
2026         * config/cris/cris.md: Tweak formatting.
2027         (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi)
2028         (mover2side, moverside, movemside, movei, op3, andu): Replace
2029         live define_peephole:s with define_peephole2 near-equivalents.
2030         Delete the rest.
2031         ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap".  Match all
2032         word-size modes.
2033         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
2034         Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and
2035         "*mov_sidesi_mem" respectively.
2036
2037 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
2038
2039         * tree-cfg.c (gimplify_val): Move from tree-complex.c.
2040         (gimplify_build1): Move from tree-complex.c do_unop.
2041         (gimplify_build2): Move from tree-complex.c do_binop.
2042         (gimplify_build3): New.
2043         * tree-complex.c (gimplify_val, do_unop, do_binop): Remove.
2044         Adjust throughout to call the functions above.
2045         * tree-flow.h: Declare the functions above.
2046         * tree-nested.c (gimplify_val): Rename to...
2047         (tsi_gimplify_val): ... this.
2048
2049         * Makefile.in (tree_complex.o): Update dependencies.
2050         (stor-layout.o): Depend on regs.h.
2051         * c-common.c (handle_vector_size_attribute): Update for
2052         vector types without corresponding vector modes.
2053         * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if
2054         a corresponding vector mode is not available.
2055         * print-tree.c (print_node): Print nunits for vector types
2056         * regclass.c (have_regs_of_mode): New.
2057         (init_reg_sets_1): Initialize it and use it instead
2058         of allocatable_regs_of_mode.
2059         * regs.h (have_regs_of_mode): Declare it.
2060         * stor-layout.c (layout_type): Pick a mode for vector types.
2061         * tree-complex.c (build_word_mode_vector_type, tree_vec_extract,
2062         build_replicated_const, do_unop, do_binop, do_plus_minus,
2063         do_negate, expand_vector_piecewise, expand_vector_parallel,
2064         expand_vector_addition, expand_vector_operations_1,
2065         expand_vector_operations, tree_lower_operations,
2066         pass_lower_vector_ssa, pass_pre_expand): New.
2067         (expand_complex_operations, pass_lower_complex): Remove.
2068         * tree-optimize.c (init_tree_optimization_passes): Adjust
2069         pass ordering for changes in tree-complex.c.
2070         * tree-pass.h: Declare new passes.
2071         * tree.c (finish_vector_type): Remove.
2072         (make_vector_type): New.
2073         (build_vector_type_for_mode, build_vector_type): Rewritten.
2074         * tree.def (VECTOR_TYPE): Document where the number of
2075         subparts is stored.
2076         * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
2077         (make_vector): Remove declaration.
2078
2079 2004-07-21  Richard Henderson  <rth@redhat.com>
2080
2081         * gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE,
2082         TREE_THIS_VOLATILE, may_aliases, or optimization level.
2083         (remove_useless_vars): Dump debugging info.
2084         (expand_used_vars): Move ...
2085         * cfgexpand.c (expand_used_vars): ... here.  Make static.
2086         * tree-flow-inline.h (set_is_used): New.
2087         (set_default_def): Use get_var_ann.
2088         * tree-flow.h: Update decls.
2089         * tree-ssa-live.c (mark_all_vars_used_1, mark_all_vars_used): New.
2090         (create_ssa_var_map): Use it.
2091         * tree-ssa.c (set_is_used): Remove.
2092
2093 2004-07-22  Ben Elliston  <bje@au.ibm.com>
2094
2095         * gdbinit.in: Set a breakpoint on internal_error.
2096
2097 2004-07-21  Richard Henderson  <rth@redhat.com>
2098
2099         * cfgexpand.c (expand_gimple_tailcall): Fix case where we need
2100         to create a new basic block.
2101
2102 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
2103
2104         PR c/15052
2105         * c-decl.c (grokdeclarator): Only pedwarn for qualified void
2106         return type on function definitions.  Move other warnings for
2107         qualified return type to -Wreturn-type.  Do not condition any such
2108         warnings on -pedantic.  Update comments.
2109         (start_function): Only copy function type from previous prototype
2110         declaration if return types are compatible.
2111         * c-typeck.c (function_types_compatible_p): Don't condition
2112         warning for incompatibility of volatile qualifiers on the return
2113         type on -pedantic.  Update comment.
2114         * doc/invoke.texi (-Wreturn-type, -Wextra): Update.
2115
2116 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
2117
2118         * c-typeck.c (set_init_index): Require designator to be of integer
2119         type.
2120
2121 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
2122
2123         PR c/11250
2124         * c-parse.in (init): Change to exprtype.
2125         (primary): Set original_code for STRING to STRING_CST.
2126         Call maybe_warn_string_init for compound literals.
2127         (initdcl, notype_initdcl): Call maybe_warn_string_init.
2128         (initval): Update.
2129         * c-tree.h (maybe_warn_string_init): New.
2130         (pop_init_level, process_init_element): Use struct c_expr.
2131         (struct c_expr): Update comment.
2132         * c-typeck.c (maybe_warn_string_init): New function.
2133         (digest_init): Call it.  Additional parameter strict_string.  All
2134         callers changed.
2135         (output_init_element): Likewise.
2136         (struct constructor_stack): Use struct c_expr for
2137         replacement_value.
2138         (really_start_incremental_init, push_init_level): Update.
2139         (pop_init_level): Update.  Return struct c_expr.
2140         (process_init_level): Update.  Take struct c_expr argument.
2141
2142 2004-07-21  David S. Miller  <davem@nuts.davemloft.net>
2143
2144         * config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous
2145         commit.
2146
2147 2004-07-21  Eric Christopher  <echristo@redhat.com>
2148
2149         * builtins.c (expand_builtin_setjmp_receiver): Fix comment for code
2150         removal.
2151         * c-decl.c (pop_scope): Ditto.
2152         * calls.c (expand_call): Remove call to current_nesting_level,
2153         update comment accordingly. Remove calls to expand_start_target_temps
2154         and expand_end_target_temps.
2155         * cfgexpand.c (construct_init_block): Remove call to
2156         expand_start_bindings_and_block.
2157         (construct_exit_block): Remove call to expand_end_bindings.
2158         * expr.c (safe_from_p): Remove BIND_EXPR handling.
2159         (expand_expr_real_1): Ditto. Fix formatting.
2160         (expand_vars): Delete.
2161         * stmt.c (POPSTACK): Remove block_stack.
2162         (stmt_status): Remove x_block_stack.
2163         (block_stack): Delete.
2164         (expand_start_bindings_and_block): Ditto.
2165         (expand_start_target_temps): Ditto.
2166         (expand_end_target_temps): Ditto.
2167         (current_nesting_level): Ditto.
2168         (warn_about_unused_variables): Ditto.
2169         (expand_end_bindings): Ditto.
2170         * tree.h: Remove declarations for above.
2171
2172 2004-07-21  Steven Bosscher  <stevenb@suse.de>
2173
2174         * rtl.h (insn_note): Remove NOTE_INSN_PREDICTION.
2175         * rtl.c (note_insn_name): Likewise.
2176         * print-rtl.c (print_rtx): Don't print it.
2177         * cfgrtl.h (can_delete_note_p): Don't handle it.
2178         (rtl_delete_block): Likewise.
2179         * passes.c (rest_of_handle_guess_branch_prob): Remove.
2180         (rest_of_compilation): Don't call it.
2181         * predict.c (process_note_predictions, process_note_prediction,
2182         note_prediction_to_br_prob): Remove.
2183         * basic-block.c (note_prediction_to_br_prob): Remove prototype.
2184         * stmt.c (return_prediction): Remove.
2185         (expand_value_return): Don't call it.  Don't add prediction
2186         notes for return statements.
2187
2188 2004-07-21  Josef Zlomek  <zlomekj@suse.cz>
2189
2190         * var-tracking.c (vt_find_locations): Set the in_pending bitmap at
2191         once.
2192
2193 2004-07-21  Paolo Bonzini  <bonzini@gnu.org>
2194
2195         * c-common.c (vector_types_convertible_p): Use vector types'
2196         TYPE_SIZE and TREE_TYPE instead of their mode.
2197         * convert.c (convert_to_integer): Likewise.
2198         (convert_to_vector): Likewise.
2199         * fold-const.c (fold_convert): Likewise.
2200         * varasm.c (output_constant): Likewise.
2201         * expr.c (store_constructor): Split ARRAY_TYPE and VECTOR_TYPE.
2202         Allow a VECTOR_TYPE initializer to be made of several vectors.
2203         For ARRAY_TYPEs and VECTOR_TYPES, simplify a bit the handling
2204         of cleared and need_to_clear, and use fold_convert.
2205         * c-typeck.c (build_binary_op): Do not use RDIV_EXPR for
2206         integer vectors.
2207
2208 2004-07-20  Richard Henderson  <rth@redhat.com>
2209
2210         * cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Split,
2211         (expand_gimple_basic_block): out from here.  Renamed from expand_block.
2212
2213 2004-07-20  David S. Miller  <davem@nuts.davemloft.net>
2214
2215         * config/sparc/sparc.c (sparc_rtx_costs case MULT): Emit
2216         enormous cost if not TARGET_HARD_MUL.
2217
2218 2004-07-20  Andrew Pinski  <apinski@apple.com>
2219
2220         PR target/16557
2221         * config/i386/darwin.h (CC1_SPEC): Move the -g SPECs from ...
2222         (ASM_SPEC): here.
2223
2224 2004-07-21  Paul brook  <paul@codesourcery.com>
2225
2226         * config/arm/arm.c (thumb_expand_prologue): Remove bogus GEN_INT.
2227
2228 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2229
2230         * fold-const.c (operand_equal_p): Temporarily support NULL args.
2231         (operand_equal_p, case ARRAY_REF): Compare args 2 and 3.
2232         (operand_equal_p, case COMPONENT_REF): Likewise, for arg 2.
2233
2234 2004-07-20  Zack Weinberg  <zack@codesourcery.com>
2235
2236         * rtl.h (plus_constant): Delete.
2237         (plus_constant_wide): Rename to plus_constant.
2238         (plus_constant_for_output_wide): Delete vestigial prototype.
2239         (GEN_INT): Remove unnecessary cast.
2240         * tree.h (build_int_2, size_int_type): Delete.
2241         (build_int_2_wide): Rename to build_int_2.
2242         (size_int_wide): Rename to size_int_kind.
2243         (size_int_type_wide): Rename to size_int_type.
2244         (size_int, ssize_int, bitsize_int, sbitsize_int): Use size_int_kind.
2245         Remove unnecessary cast.
2246         * tree.c (build_int_2_wide): Rename build_int_2; update comment.
2247         * explow.c (plus_constant_wide): Rename plus_constant; update comment.
2248         * fold-const.c (size_int_wide): Rename size_int_kind. Use size_int_type.
2249         (size_int_type_wide): Rename size_int_type.
2250         (int_const_binop): Use size_int_type.
2251         * c-lex.c (interpret_integer): Use build_int_2.
2252         * final.c (split_double): Remove unnecessary casts.
2253         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use build_int_2.
2254
2255 2004-07-20  Richard Henderson  <rth@redhat.com>
2256
2257         * gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c.
2258         (gimplify_compound_lval): Use is_gimple_tmp_reg.
2259         * tree-gimple.c (is_gimple_tmp_var): Move from gimplify.c.
2260         (is_gimple_tmp_reg): New.
2261         * tree-gimple.h (is_gimple_tmp_reg): Declare.
2262
2263 2004-07-20  Richard Henderson  <rth@redhat.com>
2264
2265         * tree-pretty-print.c (dump_generic_node): Dump
2266         CALL_EXPR_HAS_RETURN_SLOT_ADDR.
2267
2268 2004-07-20  Frank Ch. Eigler  <fche@redhat.com>
2269
2270         * tree-mudflap.c (mf_set_options_fndecl): New tree.
2271         (mudflap_init): Set it.
2272         (mudflap_register_call): Remove __mf_init call.
2273         (mudflap_finish_file): Emit call to __mf_init here.  Emit a call to
2274         to pass "-ignore-reads" option to libmudflap if needed.
2275
2276 2004-07-20  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
2277
2278         PR c++/14607
2279         * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY): Define.
2280         (MAKE_DECL_ONE_ONLY): Undefine.
2281         * pa-protos.h (som_text_section_asm_op, one_only_readonly_data_section,
2282         readonly_data, one_only_data_section, forget_section): New prototypes.
2283         * pa.c (pa_init_machine_status, som_text_section_asm_op): New
2284         functions.
2285         (pa_select_section): Add one-only (COMDAT) support.
2286         * pa.h (struct machine_function): Define.
2287         * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete.
2288         (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op.
2289         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
2290         ONE_ONLY_TEXT_SECTION_ASM_OP, ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
2291         ONE_ONLY_DATA_SECTION_ASM_OP): New defines.
2292         (EXTRA_SECTIONS): Add in_one_only_readonly_data and in_one_only_data.
2293         (EXTRA_SECTION_FUNCTIONS): Rework to use individual function macros.
2294         (READONLY_DATA_FUNCTION, ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
2295         ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New defines
2296         for EXTRA_SECTION_FUNCTIONS.
2297         * doc/install.texi: Update binutils requirements.
2298
2299 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
2300
2301         * vec.h (VEC_T_length, VEC_T_index, VEC_T_iterate, VEC_T_truncate,
2302         VEC_T_replace, VEC_T_quick_insert, VEC_T_safe_insert,
2303         VEC_T_ordered_remove, VEC_T_unordered_remove): Use unsigned, not
2304         size_t.
2305         (struct VEC): Use unsigned for num and alloc.
2306         * vec.c (struct vec_prefix): Likewise.
2307         (vec_o_reserve): Adjust.
2308
2309         * dbxout.c (dbxout_type): Fix printf format.
2310
2311         * tree.h (binfo_member): Remove.
2312         * tree.c (binfo_member): Remove.
2313
2314 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
2315
2316         * tree.h: Include vec.h
2317         (DEF_VEC_P(tree)): New type.
2318         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): Adjust.
2319         (BINFO_BASE_APPEND, BINFO_BASE_ITERATE): New.
2320         (BINFO_LANG_SLOT): Remove.
2321         (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF): New.
2322         (struct tree_binfo): Turn base_binfos into a trailing
2323         VEC(tree). Add vtt_subvtt, vtt_vptr, primary fields.
2324         (binfo_lang_slots): Remove.
2325         * tree.c (binfo_lang_slots): Remove.
2326         (make_tree_binfo_stat): Take a base binfo count, not a
2327         lang slot count.  Adjust.
2328         * Makefile.in (TREE_H): Add vec.h
2329         * alias.c (record_component_aliases): Adjust BINFO access.
2330         * dbxout.c (dbxout_type): Likewise.
2331         * dwarf2out.c (gen_member_die): Likewise.
2332         * sdbout.c (sdbout_one_type): Likewise.
2333         * tree-dump.c (deque_and_dump): Likewise.
2334         * config/i386/i386.c (classify_argument,
2335         contains_128bit_aligned_vector_p): Likewise.
2336         * config/sh/symbian.c (symbian_export_vtable_and_rtti_p): Likewise.
2337         * doc/c-tree.texi (Classes): Update BINFO documentation.
2338
2339 2004-07-20  Steven Bosscher  <stevenb@suse.de>
2340
2341         * c-common.h (check_case_value): Remove prototype.
2342         (c_add_case_label): Adjust prototype.
2343         * c-common.c (check_case_value): Make static.
2344         (check_case_bounds): New function.
2345         (c_add_case_label): Use it.  Take new argument orig_type.
2346         * c-typeck.c (struct c_switch): New orig_type field.
2347         (c_start_case): Set it.
2348         (do_case): Pass it to c_add_case_label.
2349         * expr.c (expand_expr_real_1): Don't warn for out-of-bounds
2350         cases from here.  Add the labels in reverse order.
2351         * stmt.c (struct case_node): Adjust comment.  Remove balance field.
2352         (add_case_node): Return nothing, don't check for duplicate cases.
2353         Insert new case nodes in a list, not in an AVL tree.
2354         (expand_end_case_type): Don't turn a case tree into a case list.
2355         (case_tree2list): Remove.
2356         * tree.h (add_case_node): Adjust prototype.
2357
2358 2004-07-19  Paolo Bonzini  <bonzini@gnu.org>
2359
2360         * genattr.c (struct range, struct function_unit,
2361         write_units, extend_range, init_range): Remove them.
2362         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
2363         Output "#define INSN_SCHEDULING" here.
2364         * genattrtab.c (struct range, struct function_unit_op,
2365         struct function_unit, struct dimension, enum operator,
2366         operate_exp, expand_units, simplify_knowing,
2367         encode_units_mask, simplify_by_exploding,
2368         find_and_mark_used_attributes, unmark_used_attributes,
2369         add_values_to_cover, increment_current_value,
2370         test_for_current_value, simplify_with_current_value,
2371         simplify_with_current_value_aux, gen_unit,
2372         write_unit_name, write_function_unit_info,
2373         write_complex_function, write_toplevel_expr,
2374         find_single_value, extend_range): Remove.
2375         (write_attr_get): Do not handle common_av->value
2376         being an FFS.
2377         (struct attr_desc): Remove func_units_p and blockage_p.
2378         (write_attr_valueq): Do not handle them.
2379         (find_attr): Do not clear them.
2380         (make_internal_attr): Do not initialize them.
2381         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
2382         * sched-vis.c (init_target_units, insn_print_units,
2383         init_block_visualization, print_block_visualization,
2384         visualize_scheduled_insns, visualize_no_unit,
2385         visualize_stall_cycles, visualize_alloc,
2386         visualize_free, target_units, get_visual_tbl_length,
2387         MAX_VISUAL_LINES, INSN_LEN, n_visual_lines,
2388         visual_tbl_line_length, visual_tbl, n_vis_no_unit,
2389         MAX_VISUAL_NO_UNIT, vis_no_unit): Remove.
2390         * haifa-sched.c (blockage_range, clear_units,
2391         schedule_unit, actual_hazard, potential_hazard,
2392         insn_unit, unit_last_insn, unit_tick,
2393         actual_hazard_this_instance, potential_hazard,
2394         schedule_unit, max_insn_queue_index_value): Remove.
2395         (MAX_INSN_QUEUE_INDEX): Removed, renamed throughout to
2396         max_insn_queue_index.
2397         * rtl.def (DEFINE_FUNCTION_UNIT): Remove.
2398         * doc/md.texi (Processor pipeline description): Remove
2399         references to old pipeline descriptions.
2400         (Automaton pipeline description): Merge with the above.
2401         (Old pipeline description, Comparison of the two descriptions):
2402         Remove.
2403
2404         * bt-load.c (migrate_btr_def): Remove references to
2405         use_pipeline_interface.
2406         * haifa-sched.c (insn_cost, schedule_insn,
2407         schedule_block, advance_one_cycle, sched_init,
2408         queue_to_ready, sched_finish): Likewise.
2409         * modulo-sched.c (sms_schedule, advance_one_cycle,
2410         ps_has_conflicts): Likewise.
2411         * sched-rgn.c (init_ready): Likewise.
2412         (debug_dependencies): Likewise, and remove an "if (1)".
2413         * target.h (use_dfa_pipeline_interface): Remove.
2414         * config/alpha/alpha.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2415         * config/arc/arc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2416         * config/arm/arm.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2417         * config/c4x/c4x.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2418         * config/frv/frv.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2419         * config/i386/i386.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2420         * config/ia64/ia64.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2421         * config/iq2000/iq2000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2422         * config/m32r/m32r.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2423         * config/mcore/mcore.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2424         * config/mips/mips.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2425         * config/pa/pa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2426         * config/rs6000/rs6000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2427         * config/s390/s390.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2428         * config/sh/sh.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2429         * config/sparc/sparc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2430         * config/v850/v850.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2431         * config/xtensa/xtensa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2432         * doc/tm.texi (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
2433
2434 2004-07-19  Roger Sayle  <roger@eyesopen.com>
2435
2436         * rtlanal.c (reg_set_p): Add check for regs_invalidated_by_call.
2437
2438 2004-07-19  Jeff Law  <law@redhat.com>
2439
2440         * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): New.
2441         (get_eq_expr_value): Use it.  Simplify slightly.
2442
2443 2004-07-19  Maciej W. Rozycki  <macro@linux-mips.org>
2444
2445         * config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list.
2446         (umulsidi3_32bit_r4000): Likewise.
2447
2448 2004-07-19  Nathan Sidwell  <nathan@codesourcery.com>
2449
2450         * vec.h: Propagate location information properly.
2451         (VEC_T_iterate): Add result pointer parameter.
2452         (VEC_T_space): New.
2453         (VEC_T_reserve): Use it.
2454
2455 2004-07-19  Daniel Jacobowitz  <dan@debian.org>
2456
2457         * Makefile.in (c-format.o): Depend on c-format.h.
2458         * c-format.h: New file.
2459         (struct format_char_info): Add CHAIN member.
2460         * c-format.c: Move some types and constants to c-format.h.
2461         (format_type_error): Set to -1.
2462         (struct function_format_info): Use an int for format_type.
2463         (decode_format_type): Return an int.  Return format_type_error
2464         on error.
2465         (print_char_table, asm_fprintf_char_table, gcc_diag_char_table)
2466         (gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table)
2467         (scan_char_table, time_char_table, monetary_char_table): Initialize
2468         CHAIN to NULL.
2469         (n_format_types): New variable.
2470         (check_format_info_main): Handle CHAIN in format_char_info.
2471         (handle_format_attribute): Handle TARGET_FORMAT_TYPES and
2472         TARGET_N_FORMAT_TYPES.
2473         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
2474         (sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c.
2475         * config/sol2-c.c: New file.
2476         * config/t-sol2: New file.
2477         * config/sol2.h (TARGET_N_FORMAT_TYPES, TARGET_FORMAT_TYPES): Define.
2478         * config/sparc/elf.h, config/sparc/sp64-elf.h: Undefine
2479         TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES.
2480
2481         * doc/extend.texi (Target Format Checks): New section.
2482         (Function Attributes): Mention it.
2483         * doc/invoke.texi: Mention target format checks.
2484         * doc/sourcebuild.texi: Mention target format checks.
2485         * dc/tm.texi (Misc): Document TARGET_N_FORMAT_TYPES and
2486         TARGET_FORMAT_TYPES.
2487
2488 2004-07-19  Andreas Krebbel  <krebbel1@de.ibm.com>
2489
2490         * config/s390/s390-protos.h (s390_return_address_offset): Prototype
2491         added.
2492         * config/s390/s390.c (regclass_map initializer): Register 35 added to
2493         ADDR_REGS.
2494         (load_multiple_operation, store_multiple_operation): Removed
2495         pointless sanity check.
2496         (s390_decompose_address): Added check for return_address_pointer_rtx.
2497         (s390_return_addr_rtx): Use return_address_pointer_rtx for count == 0.
2498         (s390_return_address_offset): New function.
2499         * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Increased to 36.
2500         (FRAME_REGNO_P): Added check for register 35.
2501         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
2502         REG_ALLOC_ORDER): Appended entry for register 35.
2503         (REG_CLASS_CONTENTS): Adjusted class masks for register 35.
2504         (EH_RETURN_HANDLER_RTX): Use return_address_pointer_rtx.
2505         (RETURN_ADDRESS_POINTER_REGNUM): New macro.
2506         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Return address pointer
2507         is eliminable using stack pointer or hard frame pointer.
2508         (REGISTER_NAMES): Added name for register 35.
2509         * config/s390/s390.md ("load_multiple", "store_multiple"): Removed
2510         pointless sanity check.
2511
2512 2004-07-19  Roger Sayle  <roger@eyesopen.com>
2513
2514         * fold-const.c (tree_expr_nonzero_p): Add function prototype.
2515         (fold) <EQ_EXPR>: Move tree_expr_nonzero_p optimization from
2516         fold_relational_const to here, i.e. "(x | 5) == 0" -> false.
2517         (fold) (UNEQ_EXPR>: Add optimizations for unordered comparisons
2518         of the form "x op x" where op is UNLE, UNGE, UNEQ or LTGT.
2519         (fold_relational_const): Tidy up handling of floating point
2520         comparisons by calling real_compare.  Remove tree_expr_nonzero_p
2521         transformation; fold_relational_const assumes constant operands.
2522
2523 2004-07-19  Gabriel Dos Reis  <gdr@integrable-solution.net>
2524
2525         * doc/sourcebuild.texi: Add libcpp, now that CPP has its own
2526         directory.
2527
2528 2004-07-19  Joseph S. Myers  <jsm@polyomino.org.uk>
2529
2530         * c-tree.h (struct c_expr): Define.
2531         (C_SET_EXP_ORIGINAL_CODE): Remove.
2532         (parser_build_binary_op, build_compound_expr): Update prototypes.
2533         * c-parse.in (%union): Add exprtype.
2534         (FUNC_NAME): Mark as ttype.
2535         (expr, expr_no_commas, cast_expr, unary_expr, primary): Change to
2536         exprtype.
2537         (expr): Update.  Define directly in terms of expr_no_commas
2538         instead of using nonnull_exprlist.
2539         (nonnull_exprlist, unary_expr, cast_expr, expr_no_commas, primary,
2540         offsetof_member_designator, typespec_nonreserved_nonattr, init,
2541         initval, designator, component_declarator,
2542         component_notype_declarator, enumerator, array_declarator,
2543         condition, exexpr, switch_statement, stmt_nocomp, stmt,
2544         nonnull_asm_operands, ivar_declarator, receiver): Update.  Don't
2545         set C_EXP_ORIGINAL_CODE.  Use TREE_NO_WARNING for assignments
2546         where appropriate.
2547         * c-common.h (C_EXP_ORIGINAL_CODE): Remove.
2548         * c-common.c (c_common_truthvalue_conversion): Don't check
2549         C_EXP_ORIGINAL_CODE.
2550         * c-typeck.c (parser_build_binary_op): Use c_expr structures.
2551         Don't use C_EXP_ORIGINAL_CODE.
2552         (default_conversion, default_function_array_conversion): Don't use
2553         C_EXP_ORIGINAL_CODE.  Preserve TREE_NO_WARNING.
2554         (internal_build_compound_expr): Merge into build_compound_expr.
2555         (build_compound_expr): Take two operands instead of a TREE_LIST.
2556         * objc/objc-act.c (get_super_receiver): Update calls to
2557         build_compound_expr.
2558
2559 2004-07-12  Paolo Bonzini  <bonzini@gnu.org>
2560
2561         * config/sh/sh.c (sh_use_dfa_interface): Remove.
2562         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Set to
2563         hook_int_void_1.
2564         * config/sh/sh.md: Extract pipeline descriptions
2565         into separate files.
2566         * config/sh/sh1.md: New file, extracted from sh.md.
2567         * config/sh/sh4.md: New file, extracted from sh.md.
2568         * config/sh/shmedia.md: New file, extracted from sh.md
2569         and rewritten using new-style pipeline description.
2570
2571 2004-07-18  Zack Weinberg  <zack@codesourcery.com>
2572
2573         * config/pa/pa.md: Delete the two remaining define_peephole
2574         patterns.
2575
2576 2004-07-18  Steven Bosscher  <stevenb@suse.de>
2577             Joseph S. Myers  <jsm@polyomino.org.uk>
2578
2579         * c-common.c (c_common_truthvalue_conversion): Don't warn if
2580         TREE_NO_WARNING is set.
2581
2582 2004-07-18  Roger Sayle  <roger@eyesopen.com>
2583
2584         * builtins.c (simplify_builtin_memcmp, simplify_builtin_strcmp,
2585         simplify_builtin_strncmp): Delete.
2586         (fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
2587         Change argument to accept an arglist instead of an "exp".  Assume
2588         that the return type is always integer_type_node.  Copy missing
2589         transformations from their now obsolete simplify_builtin_*
2590         equivalents.
2591         (fold_builtin_1): Pass arglist instead of exp to fold_builtin_memcmp,
2592         fold_builtin_strcmp and fold_builtin_strncmp.
2593         (simplify_builtin): Call fold_builtin_memcmp, fold_builtin_strcmp
2594         and fold_builtin_strncmp instead of simplify_builtin_memcmp,
2595         simplify_builtin_strcmp and simplify_builtin_strncmp respectively.
2596
2597 2004-07-18  Daniel Jacobowitz  <dan@debian.org>
2598
2599         * Makefile.in (tree-alias-common.o): Update dependencies.
2600
2601 2004-07-17  Sebastian Pop  <pop@cri.ensmp.fr>
2602
2603         * cfgloop.c (flow_loop_nested_p): Fix comment.
2604
2605 2004-07-17  Jason Merrill  <jason@redhat.com>
2606
2607         PR c++/16115
2608         * stor-layout.c (relayout_decl): New fn.
2609         * tree.h: Declare it.
2610         (DECL_BY_REFERENCE): New macro.
2611
2612 2004-07-17  Eric Botcazou  <ebotcazou@act-europe.fr>
2613
2614         * libgcc2.c (__enable_execute_stack): New symbol.
2615         * libgcc-std.ver (GCC_3.4.2): New version.  Inherit from GCC_3.4
2616         and declare __enable_execute_stack.
2617         * mklibgcc.in (lib2funcs): Add _enable_execute_stack.
2618         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy.
2619         * config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into
2620         ENABLE_EXECUTE_STACK.
2621         * config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize
2622         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
2623         * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into
2624         ENABLE_EXECUTE_STACK.
2625         * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
2626         * config/i386/i386.c (x86_initialize_trampoline): Conditionalize
2627         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
2628         * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into
2629         ENABLE_EXECUTE_STACK.
2630         * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
2631         * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
2632         * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
2633         * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
2634         * config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize
2635         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
2636         (sparc64_initialize_trampoline): Likewise.
2637         * doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro.
2638
2639 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
2640
2641         * langhooks.h (builtin_function): New langhook.
2642         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION): New.
2643         (LANG_HOOKS_INITIALIZER): Update.
2644         * tree.h (builtin_function): Remove.
2645         * doc/tm.texi: Update.
2646         * c-tree.h (builtin_function): Declare.
2647         * c-common.c, config/alpha/alpha.c, config/arm/arm.c,
2648         config/c4x/c4x.c, config/frv/frv.c, config/i386/i386.c,
2649         config/ia64/ia64.c, config/iq2000/iq2000.c,
2650         config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
2651         config/stormy16/stormy16.c: All callers of builtin_function
2652         changed.
2653
2654 2004-07-17  Andrew Pinski  <pinskia@physics.uc.edu>
2655
2656         PR target/16556
2657         * config/i386/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
2658         Remove white space after the backslash.
2659
2660 2004-07-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
2661
2662         PR rtl-optimization/16294
2663         * resource.c (return_insn_p): New predicate.
2664         (mark_target_live_regs): Use it.  Special-case return insns.
2665         (init_resource_info): Use it.  Don't scan the epilogue past
2666         a return.
2667
2668 2004-07-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2669
2670         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Do not
2671         destroy dominance information.
2672         * passes.c (rest_of_handle_loop2):  Free dominance information.
2673         * tree-cfg.c (cleanup_tree_cfg): Remove unreachable blocks before
2674         jump threading.
2675         (thread_jumps): Update dominance information and remove unreachable
2676         blocks.
2677         * tree-ssa-phiopt.c (replace_phi_with_stmt):  Update dominance
2678         information and remove the unreachable block.
2679
2680 2004-07-17  Graham Stott  <graham.stott@btinternet.com>
2681
2682         * emit-rtl.c (reorder_insns): Don't set BB for a BARRIER insn.
2683
2684 2004-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
2685
2686         * doc/sourcebuild.texi: Remove libf2c entry.
2687
2688 2004-07-17  Paolo Bonzini  <bonzini@gnu.org>
2689
2690         * config/i386/i386.md (movv16qi_internal): Fix typo.
2691
2692 2004-07-17  Steven Bosscher  <stevenb@suse.de>
2693
2694         * final.c (final_scan_insn): Fix broken commit from previous
2695         patch.
2696
2697 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
2698
2699         * c-typeck.c (parser_build_binary_op): Condition warnings for
2700         X<=Y<=Z on -Wparentheses instead of -Wextra.
2701         * doc/invoke.texi: Update.  Document that most of -Wparentheses is
2702         supported for C only.
2703
2704 2004-07-17  Steven Bosscher  <stevenb@suse.de>
2705
2706         * cfgcleanup.c (try_simplify_condjump): Don't remove line
2707         notes to avoid unreachable code warnings.
2708         * toplev.c (backend_init): Don't emit line notes for
2709         unreachable code warnings.
2710
2711         * combine.c (distribute_notes): Don't distribute a
2712         REG_VTABLE_REF note.
2713         * final.c (final_scan_insn): Don't handle it.
2714         * rtl.c (reg_note_name): Remove it.
2715         * rtl.h (enum reg_node): Dito.
2716
2717         * emit-rtl.c (force_line_numbers, restore_line_number_status):
2718         Remove.
2719         * rtl.h (force_line_numbers, restore_line_number_status):
2720         Remove prototypes.
2721
2722         * stmt.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Move...
2723         * tree-eh.c (using_eh_for_cleanups_p): ...here.  Make static.
2724         (using_eh_for_cleanups): Also moved here.
2725
2726         * expr.c (expand_expr_real_1) <CASE_LABEL_EXPR>: Die if we see one.
2727         <SWITCH_EXPR>: Die if we have a non-NULL SWITCH_BODY.  Update calls
2728         to expand_start_case and add_case_node.
2729         * stmt.c (struct nesting): Cleanup unused fields condition_code,
2730         last_unconditional_cleanup, nominal_type, printname, and
2731         line_number_status.
2732         (struct fixup_goto): Remove.
2733         (struct stmt_status): Remove x_goto_fixup_chain field.
2734         (goto_fixup_chain): Remove.
2735         (strip_default_case_nodes, group_case_nodes, emit_jump_if_reachable,
2736         pushcase, pushcase_range): Remove.
2737         (expand_start_bindings_and_block): Don't set unused fields in
2738         the nesting stack.
2739         (expand_start_case, add_case_node): Cleanup unused formal arguments.
2740         (expand_end_case_type): Don't simplify the case-list.  Use emit_jump
2741         instead of emit_jump_if_reachable.
2742         (emit_case_nodes): Likewise.
2743         * tree-cfg.c (group_case_labels, cleanup_dead_labels): No longer
2744         static.
2745         (update_eh_label): Work around left-over exception handing regions.
2746         * tree-flow.h (group_case_labels, cleanup_dead_labels): Add protos.
2747         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): New function.
2748         (pass_cleanup_cfg_post_optimizing): New pass.
2749         (init_tree_optimization_passes): Run the new pass after all
2750         optimizations.
2751         * tree.h (pushcase, pushcase_range): Remove prototypes.
2752         (expand_start_case, add_case_node): Update prototypes.
2753
2754 2004-07-16  Krister Walfridsson  <cato@df.lth.se>
2755
2756         * tree-inline.c (estimate_num_insns_1): Correct increase of count.
2757
2758 2004-07-16  Richard Henderson  <rth@redhat.com>
2759
2760         * builtins.c (std_expand_builtin_va_arg): Remove.
2761         (expand_builtin_va_arg): Remove.
2762         * expr.h: Don't declare them.
2763         * gimplify.c (mark_decls_volatile_r): Remove.
2764         (copy_if_shared_r): Don't call it.
2765         * target-def.h: Don't test EXPAND_BUILTIN_VA_ARG.
2766         * expr.c (expand_expr_real_1): Don't handle VA_ARG_EXPR.
2767         * gimple-low.c (lower_stmt): Likewise.
2768         * tree-cfg.c (cfg_remove_useless_stmts_bb): Likewise.
2769         * tree-gimple.c (is_gimple_tmp_rhs, is_gimple_stmt): Likewise.
2770         * tree-ssa-operands.c (get_expr_operands): Likewise.
2771         * doc/tm.texi (TARGET_GIMPLIFY_VA_ARG_EXPR): Don't mention
2772         EXPAND_BUILTIN_VA_ARG.
2773         * system.h (EXPAND_BUILTIN_VA_ARG): Poison.
2774         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/i386/i386.h,
2775         config/ia64/ia64.h, config/rs6000/rs6000.h, config/s390/s390.h,
2776         config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Remove.
2777
2778 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
2779
2780         * tree-ssa-pre.c (insert_aux): Break out if we hit
2781         a critical edge.
2782
2783 2004-07-16  Richard Henderson  <rth@redhat.com>
2784
2785         * basic-block.h (remove_fake_exit_edges): Declare.
2786         * cfganal.c (remove_fake_predecessors): Rename from
2787         remove_fake_successors; iterate over predecessors.
2788         (remove_fake_exit_edges): New.
2789         * cfgcleanup.c (try_optimize_cfg): Use it.
2790         * gcse.c (one_pre_gcse_pass, store_motion): Likewise.
2791         * predict.c (estimate_probability): Likewise.
2792         (tree_estimate_probability, note_prediction_to_br_prob): Likewise.
2793         * tree-cfg.c (make_edges): Likewise.
2794         * tree-ssa-pre.c (fini_pre): Likewise.
2795         * profile.c (instrument_edges): Don't remove_fake_edges.
2796         (branch_prob): Do it earlier here.
2797
2798 2004-07-16  Richard Henderson  <rth@redhat.com>
2799
2800         * tree-ssa-operands.c (get_expr_operands): Fix 2004-07-15
2801         switchification wrt CONSTRUCTOR.  Document the reason.
2802
2803 2004-07-16  Frank Ch. Eigler  <fche@redhat.com>
2804
2805         * tree-mudflap.c (mf_file_function_line_tree): Correct typo
2806         that prevented descriptive __mf_check source location strings.
2807
2808 2004-07-16  Richard Henderson  <rth@redhat.com>
2809
2810         * tree-def (WITH_SIZE_EXPR): New.
2811         * explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR.
2812         * expr.c (expand_expr_real_1): Likewise.
2813         * gimplify.c (maybe_with_size_expr): New.
2814         (gimplify_arg, gimplify_modify_expr): Use it.
2815         (gimplify_modify_expr_to_memcpy): Take size parameter.
2816         (gimplify_modify_expr_to_memset): Likewise.
2817         (gimplify_expr): Handle WITH_SIZE_EXPR.
2818         * tree-alias-common.c (find_func_aliases): Likewise.
2819         * tree-eh.c (tree_could_trap_p): Likewise.
2820         (tree_could_throw_p): Likewise.
2821         * tree-gimple.c (is_gimple_lvalue): Likewise.
2822         (get_call_expr_in): Likewise.
2823         * tree-inline.c (estimate_num_insns_1): Likewise.
2824         (expand_calls_inline): Likewise.
2825         * tree-nested.c (convert_call_expr): Likewise.
2826         * tree-pretty-print.c (dump_generic_node): Likewise.
2827         * tree-sra.c (sra_walk_expr): Likewise.
2828         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
2829         * tree-ssa-ccp.c (get_rhs, set_rhs): Likewise.
2830         * tree-ssa-operands.c (get_expr_operands): Likewise.
2831         * tree-tailcall.c (find_tail_calls): Likewise.
2832
2833         * calls.c (expand_call): Reset old_stack_allocated after
2834         calling emit_stack_restore.
2835
2836 2004-07-16  Richard Henderson  <rth@redhat.com>
2837
2838         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING,
2839         lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
2840         * langhooks.c (lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
2841         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
2842         copy_res_decl_for_inlining.
2843
2844         * tree-inline.c (declare_return_variable): New modify_dest argument.
2845         Use it as the return value, when possible or manditory.  Handle
2846         TREE_ADDRESSABLE types.
2847         (expand_call_inline): Extract MODIFY_EXPR lhs for call.  Simplify
2848         replacement of CALL_EXPR.
2849
2850 2004-07-16  Richard Henderson  <rth@redhat.com>
2851
2852         * tree-flow.h (struct var_ann_d): Remove has_hidden_use.
2853         * gimple-low.c (expand_var_p): Don't check it.
2854         * tree-ssa-alias.c (setup_pointers_and_addressables): Likewise.
2855         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
2856         * tree-ssa-operands.c (add_stmt_operand): Likewise.
2857         * tree-dfa.c (find_hidden_use_vars, find_hidden_use_vars_r): Kill.
2858         (find_referenced_vars): Don't call them.
2859         * tree-flow-inline.h (has_hidden_use, set_has_hidden_use): Kill.
2860
2861 2004-07-16  Richard Henderson  <rth@redhat.com>
2862
2863         * function.c (pass_by_reference): True for all variable sized types.
2864
2865 2004-07-16  Sebastian Pop  <pop@cri.ensmp.fr>
2866
2867         * Makefile.in (tree-pretty-print.o): Depend on tree-chrec.h.
2868         * tree-pretty-print.c: Include tree-chrec.h.
2869         (dump_generic_node): Pretty print SCEV_KNOWN, SCEV_NOT_KNOWN
2870         and POLYNOMIAL_CHREC nodes.
2871
2872 2004-07-16  Steve Ellcey  <sje@cup.hp.com>
2873
2874         * builtins.c (expand_builtin_stpcpy): Do not create temporary
2875         reg with VOIDmode.
2876
2877 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
2878
2879         * config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi).
2880
2881 2004-07-16  Andreas Krebbel  <krebbel1@de.ibm.com>
2882
2883         * config/s390/s390.md: Changed every occurence of BASE_REGISTER
2884         to BASE_REGNUM.
2885         * config/s390/s390.c: Likewise.
2886         * config/s390/s390.h: Likewise.
2887
2888 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
2889
2890         * config/mips/mips.md (addsi3, adddi3): Remove special handling
2891         of $sp adds.  Remove REGNO checks from mips16 patterns.
2892
2893 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
2894
2895         * config/mips/mips.md: Delete outdated comment.
2896
2897 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
2898
2899         * config/mips/mips.c (get_float_compare_codes): Delete.
2900         (mips_emit_compare): New function, mostly extracted from
2901         get_float_compare_codes and gen_conditional_branch.
2902         (gen_conditional_branch, gen_conditional_move): Use it.
2903
2904 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
2905
2906         * genautomata.c (add_vect): Speedup by using integers as
2907         bit-vectors for walking through the comb_vect and finding
2908         a match.
2909
2910 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
2911
2912         * config/mips/mips.c (mips_zero_if_equal): Only use XORs if the second
2913         operand is an uns_arith_operand; use subtraction otherwise.
2914         * config/mips/mips.md (cmpsi, cmpdi): Allow any nonmemory_operand,
2915         not just arith_operands.
2916
2917 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
2918
2919         * config/mips/mips-protos.h (gen_int_relational): Delete.
2920         (mips_emit_scc): Declare.
2921         * config/mips/mips.c (internal_test): Delete.
2922         (sle_operand, sleu_operand): New functions.
2923         (map_test_to_internal_test, gen_int_relational): Delete.
2924         (mips_emit_binary, mips_relational_operand_ok_p)
2925         (mips_emit_int_relational, mips_zero_if_equal)
2926         (mips_emit_scc): New functions.
2927         (gen_conditional_branch): Rework to use mips_emit_int_relational.
2928         * config/mips/mips.h (PREDICATE_CODES): Add sle_operand and
2929         sleu_operand.
2930         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
2931         (sltu, sleu): Use mips_emit_scc.
2932         (*sge_[sd]i, *sgeu_[sd]i): New patterns.
2933         (*sle_[sd]i, *sle_[sd]i_mips16): Use sle_operand.
2934         (*sleu_[sd]i, *sleu_[sd]i_mips16): Use sleu_operand.
2935
2936 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
2937
2938         * config/mips/mips.md (*sgt_di_mips16): Fix destination constraint.
2939
2940 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
2941
2942         * config/mips/mips.md (*seq_[sd]i): Renamed from seq_[sd]i_zero.
2943         (*sne_[sd]i): Likewise sne_[sd]i_zero.
2944         (*sgt_[sd]i): ...and sgt_[sd]i.
2945         (*slt_[sd]i): ...and slt_[sd]i.
2946         (*sgtu_[sd]i): ...and sgtu_[sd]i.
2947         (*sltu_[sd]i): ...and sltu_[sd]i.
2948         (*sleu_[sd]i): ...and sleu_[sd]i_const.
2949         Name previously unnamed mips16 patterns.  Formatting fixes.
2950
2951 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
2952
2953         * config/mips/mips.c (cmp_operands): Renamed from branch_cmp.
2954         (branch_type): Delete.
2955         (gen_conditional_branch, gen_conditional_move)
2956         (mips_gen_conditional_trap): Update after name change.  Get the
2957         comparison mode from cmp_operands[0].
2958         * config/mips/mips.h (cmp_type, branch_type): Delete.
2959         (cmp_operands): Renamed from branch_cmp.
2960         * config/mips/mips.md (cmpsi, cmpdi, cmpsf, cmpdf): Update after
2961         name change.  Don't set branch_type.
2962         (seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu): Check the
2963         mode class of cmp_operands[0] rather than branch_type.  Update after
2964         name change.
2965
2966 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
2967
2968         * config/mips/mips.c (mips_rtx_costs): In mips16 code, set the cost
2969         of 0...255 to 0 when inside a SET.
2970
2971 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
2972
2973         * config/mips/mips.md: Remove mips16 define_peepholes.
2974
2975 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
2976
2977         * tree-ssa-pre.c (init_pre): Connect infinite loops to exit.
2978         (fini_pre): Remove fake edges.
2979
2980 2004-07-15  Richard Henderson  <rth@redhat.com>
2981
2982         * tree-ssa-operands.c (get_expr_operands): Use a switch.  Split out...
2983         (get_indirect_ref_operands, get_call_expr_operands): ... these.
2984
2985 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
2986
2987         * vec.h (VEC_address): New function.
2988
2989 2004-07-14  Jason Merrill  <jason@redhat.com>
2990
2991         PR middle-end/15885
2992         * gimplify.c (gimplify_arg): New fn, split out from...
2993         (gimplify_call_expr): Here.  Special-case BUILT_IN_VA_START.
2994
2995 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
2996
2997         * config/m68k/m68k.c (output_move_qimode): Abort on an attempt to
2998         generate code which is generated by pushqi1 now
2999         * config/m68k/m68k.h (MOVE_BY_PIECES_P): Remove.
3000
3001 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
3002
3003         * combine.c (simplify_set): match the mode of the constant 0 with
3004         the tested operand to match the compare behaviour and the
3005         simplify_relational_operation() expectation.
3006
3007 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
3008
3009         * config/rs6000/rs6000.md ("bunordered"): Disable for e500.
3010         ("bordered"): Same.
3011
3012 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
3013
3014         * config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow
3015         unconditionally.
3016         * config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove.
3017
3018 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
3019
3020         * config/mips/mips.c (mips_adjust_insn_length): Fix handling of
3021         calls in mips16 code.
3022
3023 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
3024
3025         * config/mips/mips.md: In the mips16 li/neg splitter, use SImode for
3026         the destination of the li as well as for the neg.
3027
3028 2004-07-15  Frank Ch. Eigler  <fche@redhat.com>
3029
3030         g++/15861
3031         * cgraphunit.c (cgraph_build_static_cdtor): Add priority argument.
3032         * cgraph.h: Update declaration.
3033         * c-decl.c (build_cdtor): Update call with default priority.
3034         * coverage.c (create_coverage): Ditto.
3035         * tree-mudflap.c (mf_init_fndecl): New tree.
3036         (mudflap_init): Set it.
3037         (mudflap_register_call): Arrange to call __mf_init before the first
3038         __mf_register call.
3039         (mudflap_finish_file): Mark the mudflap static initializer as extra
3040         high priority, to beat all C++ static constructors.
3041
3042 2004-07-15  Jeff Law  <law@redhat.com>
3043
3044         * loop.c (check_insn_for_givs): Restore check for code labels that was
3045         accidentally deleted by a recent checkin.
3046
3047 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
3048
3049         * vec.h (VEC_T_truncate): Allow truncation of an empty vector.
3050         (VEC_T_quick_insert, VEC_T_ordered_remove): Fix sizeof(T) thinko.
3051
3052 2004-07-14  Richard Henderson  <rth@redhat.com>
3053
3054         * print-tree.c (print_node): Fix casts last change.
3055
3056 2004-07-15  Paul Brook  <paul@codesourcery.com>
3057
3058         * dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO
3059         to TARGET_UNWIND_INFO.
3060         * except.c (output_function_exception_table): Ditto.
3061         * except.h: Ditto.
3062         * opts.c (decode_options): Ditto.
3063         * passes.c (rest_of_handle_final): Ditto.
3064         * final.c (final_start_function): Ditto.
3065         (final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with
3066         target hook.
3067         * targhooks.h (default_unwind_emit): Declare.
3068         * targhooks.c (default_unwind_emit): New function.
3069         * target-def.h: Define and use TARGET_UNWIND_EMIT.
3070         * target.h (struct gcc_target): Add unwind_emit.
3071         * config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define.
3072         * config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO.
3073         Remove IA64_UNWIND_EMIT.
3074         * doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO.
3075
3076 2004-07-14  Richard Henderson  <rth@redhat.com>
3077
3078         * print-tree.c (print_node): Handle SSA_NAME.
3079
3080 2004-07-14  James E Wilson  <wilson@specifixinc.com>
3081
3082         PR target/16325
3083         * config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value
3084         and ! TARGET_64BIT, include REG_PARM_STACK_SPACE.
3085
3086 2004-07-15  Jakub Jelinek  <jakub@redhat.com>
3087
3088         * expr.c (expand_assignment): Reenable bitfield += optimizations.
3089         Use alias set 0 for memory, do proper mode calculations and adjust
3090         address for memories.
3091
3092 2004-07-14  Per Bothner  <per@bothner.com>
3093
3094         * input.h:  If USE_MAPPED_LOCATION, define separate expanded_location
3095         structure with extra column field.
3096         * tree.c (expand_location):  Also fill in column field.
3097         * gengtype-lex.l:  Ignore expanded_location typedef, sinze gengtype
3098         gets confused by the two conditionally-compiled definitions.
3099
3100 2004-07-14  Eric Christopher  <echristo@redhat.com>
3101
3102         * calls.c (expand_call): Fix typo in comment.
3103
3104 2004-07-14  Steve Ellcey  <sje@cup.hp.com>
3105
3106         * config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED
3107         comparision of TFmode.
3108
3109 2004-07-14  Richard Henderson  <rth@redhat.com>
3110
3111         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Move indirect ...
3112         (alpha_gimplify_va_arg): ... handling here.  Use pass_by_reference.
3113         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Use pass_by_reference.
3114         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
3115         * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
3116         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
3117         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
3118         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
3119         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
3120
3121 2004-07-14  Mike Stump  <mrs@apple.com>
3122
3123         * config/darwin.h (WINT_TYPE): Define to be int to match
3124         system header files.
3125
3126 2004-07-14  Bob Wilson  <bob.wilson@acm.org>
3127
3128         * config/xtensa/xtensa.c (function_arg_advance): Check for args
3129         that must be passed in the stack.
3130         (xtensa_gimplify_va_arg_expr): Skip special-case padding for small
3131         arguments if the size is not a constant.
3132
3133 2004-07-14  Per Bothner  <per@bothner.com>
3134
3135         * c-typeck.c (emit_side_effect_warnings):  Use EXPR_HAS_LOCATION
3136         instead of EXPR_LOCUS in a boolean context, which is always true
3137         if --enable-mapped-location.
3138         * stmt.c (warn_if_unused_value):  Likewise.  Also use EXPR_LOCATION.
3139
3140 2004-07-14  Richard Henderson  <rth@redhat.com>
3141
3142         * dominance.c (struct dom_info): Add fake_exit_edge.
3143         (init_dom_info): Allocate it.
3144         (free_dom_info): Free it.
3145         (calc_dfs_tree): Set it.  Handle noreturn and infinite loops
3146         in two passes.
3147         (calc_idoms): Honor fake_exit_edge.
3148
3149 2004-07-13  Jason Merrill  <jason@redhat.com>
3150
3151         * tree-gimple.c (is_gimple_reg_rhs, is_gimple_mem_rhs): New fns.
3152         (rhs_test_for): New fn.
3153         (is_gimple_tmp_rhs): Rename from is_gimple_rhs.
3154         * tree-gimple.h: Declare them.
3155         * gimplify.c (gimplify_modify_expr): Use the new fns.
3156
3157 2004-07-14  Richard Henderson  <rth@redhat.com>
3158
3159         * config/arm/arm-protos.h (arm_va_arg): Remove.
3160         * config/arm/arm.c (arm_va_arg): Remove.
3161         (arm_init_expanders): Fix alignment of arg_pointer_rtx.
3162         * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG): Remove.
3163
3164 2004-07-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3165
3166         * pa.c (fix_range): New function to mark a range(s) of registers as
3167         fixed registers.
3168         (override_options): Call fix_range if the -mfixed-range option string
3169         is not empty.
3170         * pa.h (TARGET_OPTIONS): Add -mfixed-range option.
3171         * doc/invoke.texi (-mfixed-range): Document new option.
3172
3173 2004-07-14  David Edelsohn  <edelsohn@gnu.org>
3174
3175         * config/rs6000/rs6000.c (function_arg_padding): Do not pad SFmode
3176         for TARGET_64BIT.
3177         (rs6000_gimplify_va_arg): Use size_int instead of build_int_2.
3178
3179 2004-07-14  Roger Sayle  <roger@eyesopen.com>
3180
3181         * expmed.c (expand_sdiv_pow2): New function to expand signed division
3182         by a positive power of two, split out from expand_divmod.  Provide
3183         an alternate implementation when shifts are expensive.  Lower the
3184         threshold for using a branchless implementation to BRANCH_COST >= 2.
3185         (expand_divmod): Call expand_sdiv_pow2 for suitable divisions.
3186
3187 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
3188
3189         * tree-dfa.c (make_rename_temp): *Really* work just
3190         like create_tmp_var if called while outside SSA form.
3191
3192 2004-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
3193
3194         * config/s390/s390.md ("udivsi3"): Ensure trap is generated
3195         for division by zero.
3196         ("umodsi3"): Likewise.
3197
3198 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
3199
3200         * config/mips/mips.c (mips_output_move): When generating mips16 code,
3201         force loads of negative constants to be split.
3202         * config/mips/mips.md (*movhi_mips16, *movqi_mips16): Likewise.
3203         Generalize SImode li/neg splitter to cope with other modes.
3204
3205 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
3206
3207         * expmed.c: Remove more references to QUEUED in the comments.
3208         * expr.c: Likewise.
3209
3210 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
3211
3212         Revert:
3213         2004-07-13  Richard Henderson  <rth@redhat.com>
3214         * config/mips/mips.c (mips_pass_by_reference): Handle mode sizes
3215         correctly.
3216
3217 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
3218
3219         * tree-dfa.c (make_rename_temp): Work just like
3220         create_tmp_var if called while outside SSA form.
3221
3222 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
3223
3224         * expr.c (enqueue_insn, finish_expr_for_function,
3225         protect_from_queue, queued_subexp_p, mark_queue,
3226         emit_insns_enqueued_after_mark, emit_queue,
3227         expand_increment): Remove.
3228         (store_constructor): Expand increment as an assignment.
3229         (expand_expr_real_1 <case PREINCREMENT_EXPR,
3230         case PREDECREMENT_EXPR, case POSTINCREMENT_EXPR,
3231         case POSTDECREMENT_EXPR>): Abort.
3232         * expr.h (QUEUED_VAR, QUEUED_INSN, QUEUED_COPY,
3233         QUEUED_BODY, QUEUED_NEXT, finish_expr_for_function,
3234         protect_from_queue, emit_queue, queued_subexp_p): Remove.
3235         * function.h (pending_chain, x_pending_chain): Remove.
3236         * rtl.def (QUEUED): Remove.
3237
3238         * emit-rtl.c (copy_insn_1, copy_most_rtx,
3239         set_used_flags, verify_rtx_sharing): Remove references to QUEUED.
3240         * genattrtab.c (attr_copy_rtx, clear_struct_flag,
3241         encode_units_mask): Likewise.
3242         * local-alloc.c (equiv_init_varies_p): Likewise.
3243         * rtl.c (copy_rtx): Likewise.
3244         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
3245         * simplify-rtx.c (simplify_gen_subreg): Likewise.
3246         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Likewise.
3247
3248         * builtins.c (expand_builtin, expand_builtin_apply,
3249         expand_builtin_mathfn, expand_builtin_mathfn_2,
3250         expand_builtin_mathfn_3, expand_builtin_setjmp_setup):
3251         Remove calls to emit_queue and protect_from_queue.
3252         * calls.c (expand_call, precompute_arguments,
3253         precompute_register_parameters, rtx_for_function_call,
3254         store_one_arg): Likewise.
3255         * dojump.c (do_compare_and_jump, do_jump): Likewise.
3256         * explow.c (memory_address): Likewise.
3257         * expmed.c (clear_by_pieces_1, clear_storage,
3258         clear_storage_via_libcall, emit_group_load,
3259         emit_group_store, emit_store_flag,
3260         expand_expr_real_1, store_by_pieces,
3261         store_constructor, store_expr, try_casesi,
3262         try_tablejump): Likewise.
3263         * function.c (expand_pending_sizes): Likewise.
3264         * optabs.c (emit_cmp_and_jump_insns,
3265         emit_conditional_add, emit_conditional_move,
3266         expand_fix, expand_float, prepare_cmp_insn): Likewise.
3267         * stmt.c (emit_case_bit_tests,
3268         expand_asm_expr, expand_computed_goto,
3269         expand_decl_init, expand_end_case_type,
3270         expand_end_stmt_expr, expand_expr_stmt_value,
3271         expand_return, expand_start_case,
3272         optimize_tail_recursion): Likewise.
3273         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
3274         * config/s390/s390.c (s390_expand_cmpmem): Likewise.
3275
3276 2004-07-14  Ben Elliston  <bje@au.ibm.com>
3277
3278         * vec.h: Comment fix.
3279
3280 2004-07-13  Richard Henderson  <rth@redhat.com>
3281
3282         * target.h (struct gcc_target): Add calls.pass_by_reference.
3283         * target-def.h (TARGET_PASS_BY_REFERENCE): New.
3284         * function.c (pass_by_reference): Use the hook.
3285         * system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison.
3286         * targhooks.c, targhooks.h (hook_pass_by_reference_false): New.
3287         (hook_pass_by_reference_must_pass_in_stack): New.
3288         * config/alpha/alpha.c (function_arg): Don't query pass-by-ref.
3289         (alpha_pass_by_reference): New.
3290         (TARGET_PASS_BY_REFERENCE): New.
3291         * config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3292         * config/arc/arc.c (arc_pass_by_reference): New.
3293         (TARGET_PASS_BY_REFERENCE): New.
3294         * config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3295         (FUNCTION_ARG_CALLEE_COPIES): True.
3296         * config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove.
3297         * config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New.
3298         (arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference.
3299         * config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3300         * config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3301         * config/cris/cris.c (cris_pass_by_reference): New.
3302         (TARGET_PASS_BY_REFERENCE): New.
3303         * config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref.
3304         (FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise.
3305         (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3306         * config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New.
3307         * config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3308         * config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill.
3309         * config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New.
3310         (frv_function_arg_pass_by_reference): Remove.
3311         * config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3312         * config/i386/i386-protos.h (function_arg_pass_by_reference): Remove.
3313         * config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New.
3314         (ix86_pass_by_reference): Rename from function_arg_pass_by_reference.
3315         * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3316         * config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill.
3317         * config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New.
3318         (ia64_pass_by_reference): Rename from
3319         ia64_function_arg_pass_by_reference.
3320         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3321         * config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3322         * config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill.
3323         * config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New.
3324         (iq2000_pass_by_reference): Rename from function_arg_pass_by_reference.
3325         * config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3326         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
3327         * config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove.
3328         * config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New.
3329         (m32r_pass_by_reference): Adjust prototype.  Make static.
3330         Handle mode sizes correctly.
3331         * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3332         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c
3333         (m68hc11_function_arg_pass_by_reference): Remove.
3334         * config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3335         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
3336         * config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New.
3337         * config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3338         * config/mips/mips-protos.h (function_arg_pass_by_reference): Remove.
3339         * config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New.
3340         (mips_va_arg): Use pass_by_reference.
3341         (mips_pass_by_reference): Rename from function_arg_pass_by_reference.
3342         Handle mode sizes correctly.
3343         * config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3344         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
3345         * config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill.
3346         * config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New.
3347         (mmix_pass_by_reference): Rename from
3348         mmix_function_arg_pass_by_reference.
3349         * config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3350         (FUNCTION_ARG_CALLEE_COPIES): True.
3351         * config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New.
3352         (mn10300_pass_by_reference): New.
3353         * config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3354         (FUNCTION_ARG_CALLEE_COPIES): True.
3355         * config/pa/pa.c (pa_pass_by_reference): New.
3356         (TARGET_PASS_BY_REFERENCE): New.
3357         * config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3358         (FUNCTION_ARG_CALLEE_COPIES): True.
3359         * config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill.
3360         * config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New.
3361         (rs6000_pass_by_reference): Rename from function_arg_pass_by_reference.
3362         * config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3363         * config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill.
3364         * config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New.
3365         (s390_pass_by_reference): Rename from
3366         s390_function_arg_pass_by_reference.
3367         (s390_function_arg_advance): Don't query pass-by-ref.
3368         (s390_function_arg): Likewise.
3369         (s390_gimplify_va_arg): Use pass_by_reference.
3370         (s390_call_saved_register_used): Likewise.
3371         * config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3372         * config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New.
3373         (shcompact_byref, sh_pass_by_reference): New.
3374         * config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3375         (SHCOMPACT_BYREF): Remove.
3376         * config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill.
3377         * config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New.
3378         (sparc_pass_by_reference): Rename from function_arg_pass_by_reference.
3379         (sparc_gimplify_va_arg): Use pass_by_reference.
3380         * config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3381         * config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3382         * config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New.
3383         (v850_pass_by_reference): New.
3384         * config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
3385         (FUNCTION_ARG_CALLEE_COPIES): True.
3386         * doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from
3387         FUNCTION_ARG_PASS_BY_REFERENCE docs.
3388
3389 2004-07-14  Richard Henderson  <rth@redhat.com>
3390             Richard Sandiford  <rsandifo@redhat.com>
3391
3392         * config/mips/mips-protos.h (mips_va_arg): Delete.
3393         * config/mips/mips.h (EXPAND_BUILTIN_VA_ARG): Delete.