OSDN Git Service

* darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-07-07  Mike Stump  <mrs@apple.com>
2
3         * darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore.
4         * darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name) 
5         (machopic_finish): Likewise.
6
7 2004-07-07  Richard Henderson  <rth@redhat.com>
8
9         * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look
10         through any value-preserving cast.
11
12 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
13
14         * function.c (assign_parm_find_data_types): Call
15         FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined.
16
17 2004-07-07  Steven Bosscher  <stevenb@suse.de>
18
19         * tree-cfg.c (group_case_labels): Remove case labels that have
20         the same target as the default case.
21
22 2004-07-07  Steven Bosscher  <stevenb@suse.de>
23
24         * tree-inline.c (optimize_inline_calls): Set DECL_INLINED_FNS
25         regardless of DECL_LANG_SPECIFIC being present or not.
26         * tree.h (DECL_NUM_STMTS): Purge.
27
28 2004-07-07  Andrew Pinski  <apinski@apple.com>
29
30         * configure: Regenerate with the right autoconf.
31
32 2004-07-07  David Edelsohn  <edelsohn@gnu.org>
33
34         * ifcvt.c (total_bb_rtx_cost): New function.
35         (find_if_case_1): Compare rtx_cost of basic block to cost of
36         BRANCH_COST insns.
37         (find_if_case_2): Same.
38
39 2004-07-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
40
41         PR target/10567
42         * config/sparc/sparc.c (load_pic_register): Honor flag_delayed_branch.
43         (output_return): Likewise.
44         (output_sibcall): Abort if !flag_delayed_branch.
45         (sparc_function_ok_for_sibcall): Return 0 if !flag_delayed_branch.
46         (emit_and_preserve): New function.
47         (sparc_output_mi_thunk): Use it.  Honor flag_delayed_branch.  Emit an
48         indirect jump to the thunked-to function if !flag_delayed_branch.
49         * config/sparc/sparc.md (delayed_branch): New attribute.
50         (load_pcrel_sym): Honor flag_delayed_branch.  Use above
51         attribute to compute the length of the insn.
52         (goto_handler_and_restore): Likewise.
53
54 2004-07-07  Andrew Pinski  <apinski@apple.com>
55
56         PR tree-optimization/15777
57         * fold-const.c (fold_single_bit_test): Fold the x^1 expression.
58
59         * expr.c (expand_expr_real_1): Fix formating.
60         BUFFER_REF and IN_EXPR are dead.
61         * fold-const.c (non_lvalue): BUFFER_REF is dead.
62         * tree-inline.c (estimate_num_insns_1): Likewise.
63         * tree-pretty-print.c (dump_generic_node): BUFFER_REF,
64         IN_EXPR, SET_LE_EXPR, and CARD_EXPR are dead.
65         * tree.def (BUFFER_REF, IN_EXPR, SET_LE_EXPR, CARD_EXPR): Kill.
66
67 2004-07-07  H.J. Lu  <hongjiu.lu@intel.com>
68
69         * collect2.c (dump_file): Don't call cplus_demangle if
70         HAVE_LD_DEMANGLE is defined.
71         (main): Pass "--demangle" to ld if no_demangle is not 0 and
72         HAVE_LD_DEMANGLE is defined. Don't set current_demangling_style
73         if HAVE_LD_DEMANGLE is defined.
74
75         * configure.ac (--with-demangler-in-ld): Added
76         (HAVE_LD_DEMANGLE): Define if ld supports --demangle when
77         --with-demangler-in-ld is used.
78         * config.in: Regenerated.
79         * configure: Likewise.
80
81 2004-07-07  Roger Sayle  <roger@eyesopen.com>
82
83         * config/rs6000/rs6000.c (struct processor_costs): Add new fields
84         for simple floating point operations "fp", double precision
85         multiplication "dmul", and single and double precision division
86         "sdiv" and "ddiv".  Update all CPU variant tables as appropriate.
87         (ppc630_cost): New table split from ppc620_cost, to distinguish
88         differences in floating point latencies.
89         (rs6000_override_options): Use ppc630_cost for PROCESSOR_PPC630.
90         (rs6000_rtx_costs): Add support for single and double precision
91         floating point addition, subtraction, multiplication, division,
92         fused-multiply-add, fused-multiply-sub, negation, absolute value
93         and negative absolute value.  Tweak MEM case to use prefered idiom.
94
95 2004-07-07  Richard Henderson  <rth@redhat.com>
96
97         * tree-flow-inline.h (may_propagate_copy): Move...
98         * tree-ssa-copy.c (may_propagate_copy): ... here.  Fail if we
99         attempt to copy between types requiring conversion.
100         * tree-flow.h (may_propagate_copy): Update decl.
101         * tree-ssa-dom.c (cprop_operand): Tidy redundant tests.
102
103 2004-07-07  Jakub Jelinek  <jakub@redhat.com>
104
105         * config/i386/i386.c (override_options): Don't set x86_prefetch_sse
106         from -mtune= option.
107
108 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
109
110         * builtins.c: Rename movstr*, except for movstrict*, to
111         movmem* and clrstr* to clrmem*.
112         * expr.c: Likewise.
113         * expr.h: Likewise.
114         * genopinit.c: Likewise.
115         * integrate.c: Likewise.
116         * local-alloc.c: Likewise.
117         * optabs.c: Likewise.
118         * optabs.h: Likewise.
119         * config/alpha/alpha.h: Likewise.
120         * config/alpha/alpha.md: Likewise.
121         * config/arm/arm-protos.h: Likewise.
122         * config/arm/arm.c: Likewise.
123         * config/arm/arm.md: Likewise.
124         * config/avr/avr.md: Likewise.
125         * config/c4x/c4x.c: Likewise.
126         * config/c4x/c4x.md: Likewise.
127         * config/frv/frv.md: Likewise.
128         * config/i386/i386-protos.h: Likewise.
129         * config/i386/i386.c: Likewise.
130         * config/i386/i386.h: Likewise.
131         * config/i386/i386.md: Likewise.
132         * config/i860/i860.c: Likewise.
133         * config/i860/i860.md: Likewise.
134         * config/ip2k/ip2k.md: Likewise.
135         * config/ip2k/libgcc.S: Likewise.
136         * config/ip2k/t-ip2k: Likewise.
137         * config/m32r/m32r.c: Likewise.
138         * config/m32r/m32r.md: Likewise.
139         * config/mcore/mcore.md: Likewise.
140         * config/mips/mips.c: Likewise.
141         * config/mips/mips.md: Likewise.
142         * config/ns32k/ns32k.c: Likewise.
143         * config/ns32k/ns32k.h: Likewise.
144         * config/ns32k/ns32k.md: Likewise.
145         * config/pa/pa.c: Likewise.
146         * config/pa/pa.md: Likewise.
147         * config/pdp11/pdp11.h: Likewise.
148         * config/pdp11/pdp11.md: Likewise.
149         * config/rs6000/rs6000.c: Likewise.
150         * config/rs6000/rs6000.md: Likewise.
151         * config/s390/s390-protos.h: Likewise.
152         * config/s390/s390.c: Likewise.
153         * config/s390/s390.md: Likewise.
154         * config/sh/lib1funcs.asm: Likewise.
155         * config/sh/sh.c: Likewise.
156         * config/sh/sh.md: Likewise.
157         * config/sh/t-sh: Likewise.
158         * config/sparc/sparc.h: Likewise.
159         * config/vax/vax.md: Likewise.
160         * config/xtensa/xtensa.c: Likewise.
161         * config/xtensa/xtensa.md: Likewise.
162         * doc/invoke.texi: Likewise.
163         * doc/md.texi: Likewise.
164         * doc/rtl.texi: Likewise.
165
166 2004-07-07  Richard Sandiford  <rsandifo@redhat.com>
167
168         PR target/16407
169         * config/mips/mips-protos.h (mips_declare_common_object): Declare.
170         * config/mips/mips.c (mips_declare_common_object): New function,
171         mostly split out from...
172         (mips_output_aligned_decl_common): ...here.
173         * config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of...
174         (ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition.
175         * config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this
176         rather than ASM_OUTPUT_LOCAL.  Call mips_declare_common_object.
177
178 2004-07-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
179
180         PR c/16392
181         * function.c (assign_parms): Fix typo from previous change.
182
183 2004-07-07  Jason Merrill  <jason@redhat.com>
184
185         PR c++/15815
186         * doc/extend.texi (C++ Interface): Correct information and
187         discourage use.
188
189 2004-07-07  Vladimir Makarov  <vmakarov@redhat.com>
190
191         PR target/16130
192         PR target/16142
193         PR target/16143
194         * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm
195         insn.
196         
197 2004-07-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
198
199         PR target/1679.
200         * config/m32r/m32r.c (m32r_function_symbol): New function:
201         Generate a symbol name RTX with the correct m32r specific flags
202         set. 
203         (block_move_call): Use new function to generate correct symbol.
204         * config/m32r/m32r-protos.h: Add prototype for new funcion.
205         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new
206         function.
207
208 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
209
210         * tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE,
211         TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES,
212         TYPE_BINFO_BASETYPE): Remove.
213         (BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename
214         to ...
215         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
216         here.
217         (BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ...
218         (BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here.
219         (BINFO_INHERITANCE_CHAIN): Redocument as it is actually used.
220         (struct tree_binfo): Rename base_types to base_binfos.
221         * alias.c (record_component_aliases): Adjust BINFO macros.
222         * dbxout.c (dbxout_type): Likewise.
223         * dwarf2out.c (gen_member_die): Likewise.
224         * sdbout.c (sdbout_one_type): Likewise.
225         * tree-dump.c (deque_and_dump): Likewise.
226         * config/i386/i386.c (classify_argument,
227         contains_128bit_aligned_vector_p): Likewise.
228
229 2004-07-07  Nick Clifton  <nickc@redhat.com>
230
231         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Change
232         arguments to match TARGET_SETUP_INCOMING_VARARGS prototype. 
233
234 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
235
236         * vec.h: Fix the example use.
237
238 2004-07-06  Richard Henderson  <rth@redhat.com>
239
240         * langhooks-def.h (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Remove.
241         * langhooks.h (struct lang_hooks): Remove gimple_before_inlining.
242         * tree-inline.c (copy_body_r, setup_one_parameter,
243         initialize_inlined_parameters, expand_call_inline,
244         declare_inline_vars): Don't check it.
245         (expand_calls_inline): Remove old version, rename new version
246         from gimple_expand_calls_inline.
247         * tree-optimize.c (execute_gimple): Remove.
248         (pass_gimple): Don't run anything.
249
250 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
251
252         * doc/sourcebuild.texi: Use semicolons instead of commas in
253         section title.
254
255 2004-07-06  Richard Henderson  <rth@redhat.com>
256
257         * tree-sra.c (struct sra_walk_fns): Revert 2004-07-05 change.
258         (sra_walk_modify_expr, scan_init): Likewise.
259         (generate_element_zero): Check visited before scanning children.
260         (generate_element_init): Set visited on error.
261         (scalarize_init): Handle generate_element_init failure similar
262         to use_block_copy.
263
264 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
265
266         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define.
267         (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG.
268
269 2004-07-06  Richard Henderson  <rth@redhat.com>
270
271         * config/i386/i386.c (legitimize_pic_address): Make static.
272         (legitimize_address): Handle CONST with TLS operand.
273         (ix86_expand_move): Don't call legitimize_pic_address directly.
274         * config/i386/i386-protos.h (legitimize_pic_address): Remove.
275
276 2004-07-06  Roger Sayle  <roger@eyesopen.com>
277
278         * ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field.
279         (noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway.
280         (noce_process_if_block): Initialize if_info.b_unconditional if insn_b
281         is currently executed unconditionally, i.e. not in "else_bb".
282
283 2004-07-06  Steven Bosscher  <stevenb@suse.de>
284
285         * config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove.
286         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
287         * config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove.
288         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
289         * config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove.
290         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
291         * config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove.
292         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
293         * config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove.
294         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
295         * config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove.
296         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
297         * config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove.
298         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
299         * config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove.
300         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
301
302 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
303
304         * dojump.c (do_jump): REFERENCE_EXPR is dead.
305         * expr.c (expand_expr_real_1): Ditto.
306         * tree-inline.c (estimate_num_insns_1): Ditto.
307         * tree-pretty-print.c (dump_generic_node): Ditto.
308         (op_symbol): Ditto.
309         * tree.def: Ditto.
310
311 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
312
313         * tree-ssa-pre.c (reference_node_pool): New pool.
314         (find_or_generate_expression): Class 'r' is okay too.
315         (create_value_expr_from): Ditto.
316         (add_to_sets): LHS should not include vuses.
317         (eliminate): Ditto.
318         (compute_avail): Reverse ordering of tests.
319         Valuize INDIRECT_REF as well.
320
321 2004-07-06  Richard Sandiford  <rsandifo@redhat.com>
322
323         PR rtl-optimization/16380
324         * loop.c (check_dbra_loop): Sink comparison instructions if they
325         do something other than set cc0.
326
327 2004-07-06  James E Wilson  <wilson@specifixinc.com>
328
329         * doc/interface.texi (longjmp and automatic variables): Delete
330         paragraph recommending taking the address of a variable.
331
332 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
333
334         * vec.h (VEC_embedded_alloc): Remove.
335         (VEC_embedded_size, VEC_embedded_init): New.
336         (VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add
337         MEM_STAT_INFO.
338         (VEC_truncate): New.
339         (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL.
340         (vec_embedded_alloc): Remove.
341         * vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust.
342         (vec_embedded_alloc): Remove.
343
344 2004-07-06  Mark Mitchell  <mark@codesourcery.com>
345
346         * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h.
347         (gt-langhooks.h): Remove.
348
349 2004-07-06  George Helffrich <george@gly.bris.ac.uk>
350
351         * xcoffout.h (DBX_FINISH_SYMBOL): Fix typo.
352
353 2004-07-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
354
355         * config/sparc/sparc.c (get_pc_symbol): Rename into
356         add_pc_to_pic_symbol.
357         (get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name.
358         (load_pic_register): Account for previous changes.
359         Use reg_names.  Don't create the label twice.
360         * config/sparc/sparc.md (UNSPEC_GET_PC): Rename into
361         UNSPEC_LOAD_PCREL_SYM.
362         (get_pc): Rename into load_pcrel_sym.  Add predicate to
363         operands.  Remove condition.
364
365 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
366
367         * dbxout.c (dbxout_type): Don't test whether the binfo slot of
368         RECORD, UNION & QUAL_UNION is actually a binfo.
369
370         * tree.h (TREE_VIA_VIRTUAL): Rename to ...
371         (BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only.
372         (BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags.
373         * dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P.
374         * dwarf2out.c (add_data_member_location_attribute): Likewise.
375         (gen_inheritance_die): Likewise.
376         * tree-dump.c (deque_and_dump): Likewise.
377         * doc/c-tree.texi (Binfos): Add under reconstruction note.
378
379 2004-07-06  Steven Bosscher  <stevenb@suse.de>
380
381         * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
382         Define.
383         * config/mcore/mcore.md: Model memory latency with a simple DFA
384         pipeline description instead of a define_function_unit.
385
386 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
387
388         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg.
389         * langhooks.h (var_mod_type_p): Likewise.
390         * c-decl.c (finish_decl): Add extra arg to variably_modified_type_p.
391         * expr.c (count_type_elements): Properly handle return from
392         array_type_nelts and properly test for overflow.
393         * gimplify.c (gimplify_init_constructor): Properly handle return
394         from array_type_nelts.
395         (gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS.
396         * integrate.c (copy_decl_for_inlining): Correct comments.
397         * tree-inline.c (remap_decl): Update comments, remove dead code,
398         and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist.
399         (remap_type): Only remap if variably modified by vars in function
400         being inlined.
401         (copy_body_r): Use compatible_type langhooks to see when can fold.
402         (setup_one_parameter): Don't remap type.
403         (inline_forbidden_p_1): Add arg to variably_modified_type_p.
404         * tree.c (recompute_tree_invarant_for_addr_expr): Properly
405         compute TREE_INVARIANT for decl case.
406         (find_var_from_fn): New function.
407         (variably_modified_type_p): Add arg and call new function.
408         * tree.h (variably_modified_type_p): Add extra arg.
409         
410 2004-07-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
411
412         * config/sparc/sparc.md (nonlocal_goto): Remove disabled code.
413         (goto_handler_and_restore_v9): Delete disabled insn.
414         (goto_handler_and_restore_v9_sp64): Likewise.
415
416 2004-07-05  Roger Sayle  <roger@eyesopen.com>
417
418         * calls.c (load_register_parameters): Call expand_shift instead
419         of expand_binop with ashl_optab (or other shift optab) directly.
420         * expr.c (emit_group_load, emit_group_store): Likewise.
421         * function.c (assign_parm_setup_block): Likewise.
422         * stmt.c (shift_return_value): Likewise.
423
424 2004-07-05  Jakub Jelinek  <jakub@redhat.com>
425
426         * expr.c (expand_assignment): Disable the bitfield += optimizations.
427
428 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
429
430         * doc/sourcebuild.texi: Revert previous patch.
431
432 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
433
434         * c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check
435         TARGET_MEM_FUNCTIONS.
436         * system.h: Poison TARGET_MEM_FUNCTIONS.
437         * libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc,
438         bcmp_libfunc, bzero_libfunc): Remove.
439         * optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or
440         bzero_libfunc.
441         * doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove.
442         * doc/standards.texi: Don't mention calling BSD string functions.
443         * doc/invoke.texi: Likewise.  Mention that memmove may be called.
444         * config/vax/t-memfuncs: New.
445         * config/memcmp.c, config/memcpy.c, config/memmove.c,
446         config/memset.c: New.
447         * config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files.
448         * config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use
449         vax/t-memfuncs.
450         * config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h,
451         config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h,
452         config/elfos.h, config/gnu.h, config/h8300/h8300.h,
453         config/i386/gas.h, config/ia64/ia64.h, config/interix.h,
454         config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h,
455         config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h,
456         config/netbsd.h, config/openbsd.h, config/pa/pa.h,
457         config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h,
458         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
459         config/svr3.h: Don't define TARGET_MEM_FUNCTIONS.
460
461 2004-07-05  Richard Henderson  <rth@redhat.com>
462
463         * function.c (assign_parm_setup_reg): Properly rename variables in
464         FUNCTION_ARG_CALLEE_COPIES section.
465
466 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
467
468         * tree-mudflap.c: Include cgraph.h.
469         (mf_init_extern_trees): Rename to mudflap_init.  Export.
470         Rewrite to create synthetic declarations instead of looking
471         up declarations from mf-runtime.h.
472         (mf_make_builtin, mf_make_cache_struct_type): New functions.
473         (mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl):
474         Correct commentary.
475         (execute_mudflap_function_decls, mudflap_register_call):
476         Don't call mf_init_extern_trees.
477         (mudflap_finish_file): Use cgraph_build_static_cdtor.
478
479         * tree-mudflap.h: Update prototypes.
480         * c-mudflap.c: Delete file.
481         * c-common.c: Include tree-mudflap.h.
482         (c_common_nodes_and_builtins): Call mudflap_init if appropriate.
483         * Makefile.in: Remove all references to c-mudflap.o.
484         Update dependencies.
485
486 2004-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
487
488         * pa.md (prefetch, prefetch_32, prefetch_64): Only allow short
489         displacements with the spatial-locality cache-control completer.
490
491 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
492
493         * langhooks.c: Don't include gt-langhooks.h.
494         (var_labelno): Delete.
495         (lhd_set_decl_assembler_name): Do not append a distinguishing
496         number to file-scope internal-linkage declarations for the first
497         input file, even if they have DECL_CONTEXT set.  Use DECL_UID of
498         the declaration itself (if at block scope), or its containing
499         TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing
500         number.
501
502         * opts.c (cur_in_fname): New global.
503         * opts.h: Declare it.
504         * tree.c: Include opts.h.
505         (make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it
506         DECL_UID equal to cur_in_fname.
507         (copy_node_stat): Do not change DECL_UID when copying a
508         TRANSLATION_UNIT_DECL.
509         (build_common_tree_nodes): Adjust next_decl_uid to reserve the
510         range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs.
511
512         * c-decl.c (c_static_assembler_name): Delete.
513         * c-tree.h (c_static_assembler_name): Delete prototype.
514         * c-lang.c, objc/objc-lang.c: Don't override
515         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME.
516
517         * Makefile.in (tree.o): Update dependencies.
518         (GTFILES): Remove langhooks.c.
519
520 2004-07-05  Roger Sayle  <roger@eyesopen.com>
521
522         * fold-const.c (fold) <TRUNC_MOD_EXPR>: Optimize unsigned modulus
523         by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)".
524         Normalize "X % C" as "X % -C" for signed modulus and negative C.
525         Optimize "X % -Y" as "X % Y" for signed modulus.
526         <EQ_EXPR>: Recursively call "fold" when transforming "(X % Y) == 0"
527         into "((unsigned) X % Y) == 0".
528
529 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
530
531         * sourcebuild.texi (Config Fragments): Use @comma{} in
532         cross-reference to section title.
533
534 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
535
536         * tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro.
537         * gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it.
538         (gimplify_target_expr, gimplify_expr): Likewise.
539         (copy_if_shared_r): No longer need special case for BIND_EXPR.
540         (unshare_body, unvisit_body): Only look at nested if BODY_P is
541         whole function.
542         (gimplify_compound_lval): See if we can strip any useless conversion.
543         (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size
544         from RHS, not LHS.
545         (gimplify_modify_expr_to_memset): Likewise.
546         (gimplify_expr, case CONSTRUCTOR): Handle use as statement.
547         * tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P.
548         (declare_inline_vars): Likewise.
549         (walk_type_fields): New function.
550         (walk_tree): Use it.
551         * tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR.
552
553         * tree-sra.c (struct sra_walk_fns): Init function now returns bool.
554         (sra_walk_modify_expr): Allow init function to fail.
555         (scan_init): Now returns bool.
556         (generate_element_init): If can't understand INIT, return false.
557         (scalarize_init): Return false if generate_element_init does.
558
559         * tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly
560         print bounds.
561
562         * expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against
563         bounds if bounds aren't constant.
564
565         * tree-cfg.c (verify_expr): Use CHECK_OP in binary case.
566
567         * function.c, langhooks-def.h, langhooks.h: Move max_size hook
568         to type hooks; remove bogus PARAMS.
569
570 2004-07-05  Nathan Sidwell  <nathan@codesourcery.com>
571
572         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
573         * dwarf2out.c (add_data_member_location_attribute): Check for
574         TREE_BINFO.
575         * tree.c (tree_node_kinds): Add "binfos".
576         (binfo_lang_slots): New.
577         (make_node_stat): Add TREE_BINFO.
578         (make_tree_binfo_stat): New.
579         (tree_node_structure): Add TREE_BINFO.
580         * tree.def (TREE_BINFO): New.
581         * tree.h (REC_OR_UNION_CHECK): Rename to ...
582         (RECORD_OR_UNION_CHECK): ... here.
583         (NOT_RECORD_OR_UNION_CHECK): New.
584         (TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO.
585         (TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for
586         RECORD_OR_UNION_CHECK.
587         (TYPE_BINFO): Use RECORD_OR_UNION_CHECK.
588         (TYPE_LANG_SLOT_1): New.
589         (BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS,
590         BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD,
591         BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust.
592         (BINFO_ELTS): Remove.
593         (BINFO_LANG_SLOT): New.
594         (struct tree_binfo): New.
595         (binfo_lang_slots): Declare.
596         (enum tree_node_structure_enum): Add TS_BINFO.
597         (union tree_node): Add binfo.
598         (make_tree_binfo_stat): Declare.
599         (make_tree_binfo): New.
600         (enum tree_node_kind): Add binfo_kind.
601
602         * objc/objc-act.c (start_class, objc_declare_protocols,
603         start_protocols): Use TYPE_LANG_SLOT_1.
604         * objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename
605         to ...
606         (CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here.
607         (CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE,
608         CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS,
609         PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1.
610
611 2004-07-05  Steven Bosscher  <stevenb@suse.de>
612
613         * rtl.h (struct rtx_def): Remove the integrated flag.
614         Use the return_val flag for MEM_SCALAR_P.
615         Reshuffle and update flags in CLEAR_RTX_FLAGS.
616
617 2004-07-05  Richard Sandiford  <rsandifo@redhat.com>
618
619         PR target/16357
620         * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs
621         to mips_expand_unaligned_load, mips_expand_unaligned_store, and
622         move_by_pieces.
623
624 2004-07-05  Josef Zlomek  <zlomekj@suse.cz>
625
626         * var-tracking.c: Fix some comments.
627         (frame_stack_adjust): New.
628         (vt_stack_adjustments): Init stack_adjust of entry block to
629         minus stack adjustment of function prologue.
630         (adjust_stack_reference): Do not adjust if adjustment == 0.
631         (compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS.
632         (emit_notes_in_bb): Likewise.
633         (vt_add_function_parameters): Do not adjust locations of
634         function arguments.
635         (vt_initialize): Compute the stack adjustment of function
636         prologue and offset the initial "location" of frame_base_decl
637         from the stack pointer after prologue.
638
639 2004-07-04  Richard Henderson  <rth@redhat.com>
640
641         * function.c (struct assign_parm_data_all): New.
642         (struct assign_parm_data_one): New.
643         (assign_parms_initialize_all, assign_parms_augmented_arg_list,
644         assign_parm_find_data_types, assign_parms_setup_varargs,
645         assign_parm_find_entry_rtl, assign_parm_is_stack_parm,
646         assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl,
647         assign_parm_adjust_stack_rtl, assign_parm_setup_block_p,
648         assign_parm_setup_block, assign_parm_setup_reg,
649         assign_parm_setup_stack, assign_parms_unsplit_complex): Split from ...
650         (assign_parms): ... here.
651
652 2004-07-04  Daniel Berlin  <dberlin@dberlin.org>
653
654         * tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets
655         now are bitmap_set_t's.
656         (bitmap_insert_into_set): No point in inserting the value if
657         it's invariant.
658         (bitmap_set_contains): New function.
659         (bitmap_set_replace_value): Add comment on why we do it
660         this way.
661         (set_contains): Removed.
662         (bitmap_set_subtract_from_value_set): New name of
663         set_subtract now that it's arguments are two different
664         types of sets.
665         Update callers.
666         (bitmap_find_leader): Change algorithm used.
667         (find_or_generate_expression): Update use of functions for new
668         bitmap sets.
669         (create_expression_by_pieces): Ditto.
670         (insert_aux): Ditto.
671         (insert): Ditto.
672         (add_to_sets): Ditto.
673         (init_pre): Ditto.
674         (execute_pre): Ditto.
675         (compute_avail): Ditto.
676         Also ignore virtual phis.
677
678 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
679
680         * combine.c (simplify_comparison): Fix comment typo.
681
682 2004-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
683
684         * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename
685         into LEAF_SIBCALL_SLOT_RESERVED_P after negation.
686         (eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P.
687         (output_restore): Change parameter from 'insn' to 'pat'.
688         (output_return): Adjust call to output_restore.
689         (output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P.
690         Adjust call to output_restore.
691
692 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
693
694         * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__
695         and assert system is bsd.
696
697 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
698
699         * config/mips/mips.h (MASK_DEBUG_C, TARGET_DEBUG_C_MODE): Delete.
700         (TARGET_SWITCHES): Remove -mdebugc.
701         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
702         (sltu, sleu): Remove TARGET_DEBUG_C_MODE handling.
703         (seq_[sd]i, sne_[sd]i, sge_[sd]i, sle_[sd]i_reg, sgeu_[sd]i)
704         (sle_[sd]i_reg): Delete.
705
706 2004-07-04  Steven Bosscher  <stevenb@suse.de>
707
708         * config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
709         Define.
710         * config/iq2000/iq2000.md: Translate old pipeline description to an
711         equivalent new one.
712
713 2004-07-04  Roger Sayle  <roger@eyesopen.com>
714
715         * tree-ssa-ccp.c (set_rhs): Change function to return a bool.
716         Ensure the replacement rhs is valid gimple before performing
717         the substitution.  Return false if these sanity checks fail.
718         (fold_stmt): Only set changed to true, if set_rhs returns true.
719         (execute_fold_all_builtins): Only call modify_stmt if set_rhs
720         succeeds.
721
722 2004-07-04  Richard Henderson  <rth@redhat.com>
723
724         PR c/16348
725         * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops.
726
727 2004-07-04  Mark Mitchell  <mark@codesourcery.com>
728
729         * configure.ac (ranlib_flags): New variable.
730         * Makefile.in (RANLIB_FLAGS): New variable.
731         (libbackend.a): Use it.
732         * configure: Regenerated.
733
734 2004-07-04  Roger Sayle  <roger@eyesopen.com>
735
736         * ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate
737         a "sign mask" instead of using ashr_optab directly.
738
739 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
740
741         * doc/cpp.texi: Don't document what we do for ill-formed expressions.
742         * doc/cppopts.texi: Clarify processing of command-line defines.
743
744 2004-07-04  Gerald Pfeifer  <gerald@pfeifer.com>
745
746         * doc/contrib.texi (Contributors): Adjust link for GNU Classpath.
747
748 2004-07-04  Richard Henderson  <rth@redhat.com>
749
750         * rtl.def (ADDRESSOF): Remove.
751         * alias.c (rtx_equal_for_memref_p): Don't handle addressof.
752         (find_base_term, memrefs_conflict_p): Likewise.
753         * cse.c (fixed_base_plus_p, find_best_addr: Likewise.
754         (fold_rtx, cse_insn, set_live_p): Likewise.
755         * dwarf2out.c (mem_loc_descriptor): Likewise.
756         (add_location_or_const_value_attribute): Likewise.
757         * emit-rtl.c (copy_insn_1): Likewise.
758         * explow.c (memory_address): Likewise.
759         * expmed.c (store_split_bit_field): Likewise.
760         * expr.c (expand_expr_real_1): Likewise.
761         * function.c (instantiate_decl
762         (instantiate_virtual_regs_1, fix_lexical_addr): Likewise.
763         * genrecog.c (preds, validate_pattern): Likewise.
764         * integrate.c (copy_rtx_and_substitute): Likewise.
765         * recog.c (general_operand, register_operand): Likewise.
766         (memory_address_p): Likwise.
767         * reload1.c (eliminate_regs, elimination_effects): Likewise.
768         * rtl.c (copy_rtx): Likewise.
769         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
770         (rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise.
771         * rtlhooks.c (gen_lowpart_general): Likewise.
772         * stmt.c (expand_asm_operands): Likewise.
773         * web.c (entry_register, replace_ref, web_main): Likewise.
774         * config/alpha/alpha.c (input_operand, alpha_legitimate_address_p,
775         alpha_expand_block_move, alpha_expand_block_clear): Likewise.
776         * config/arm/arm.c (thumb_rtx_costs): Likewise.
777         * config/c4x/c4x.c (c4x_valid_operands): Likewise.
778         * config/frv/frv.c (move_destination_operand, move_source_operand,
779         condexec_dest_operand, condexec_source_operand,
780         condexec_memory_operand): Likewise.
781         * config/h8300/h8300.h (PREDICATE_CODES): Likewise.
782         * config/ia64/ia64.c (general_xfmode_operand): Likewise.
783         (destination_xfmode_operand): Likewise.
784         * config/mips/mips.h (PREDICATE_CODES): Likewise.
785         * config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise.
786         * config/s390/s390.c (general_s_operand): Likewise.
787         * config/s390/s390.md (mov*): Likewise.
788         * config/sparc/sparc.h (PREDICATE_CODES): Likewise.
789
790         * c-typeck.c (c_mark_addressable): Don't put_var_into_stack.
791         * expr.c (expand_expr_real_1): Likewise.
792         * stmt.c (expand_decl): Likewise.
793         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
794
795         * function.c (struct fixup_replacement, struct insns_for_mem_entry,
796         postponed_insns, put_var_into_stack, put_reg_into_stack,
797         schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement,
798         fixup_var_refs_insns, fixup_var_refs_insns_with_hash,
799         fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg,
800         walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field,
801         gen_mem_addressof, flush_addressof, put_addressof_into_stack,
802         purge_bitfield_addressof_replacements, purge_addressof_replacements,
803         purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp,
804         struct insns_for_mem_walk_info, insns_for_mem_walk,
805         compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect,
806         setjmp_protect_args): Remove.
807         (push_function_context_to): Don't handle var_refs_queue.
808         (pop_function_context_from, free_after_compilation): Likewise.
809         (instantiate_virtual_regs): Don't handle parm_reg_stack_loc.
810         (assign_parms, allocate_struct_function): Likewise.
811         (use_register_for_decl): New.
812         (expand_function_end): Don't setjmp_protect.
813         * function.h (struct emit_status): Update commentary.
814         (struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc.
815         (max_parm_reg, parm_reg_stack_loc): Remove.
816         * passes.c (DFI_addressof): Remove.
817         (dump_file_info): Remove addressof.
818         (rest_of_handle_addressof): Remove.
819         (rest_of_compilation): Don't call it.
820         * rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove.
821         * stmt.c (expand_decl): Use use_register_for_decl.
822         * tree.h: Update decls.
823         * web.c (mark_addressof): Remove.
824         * doc/invoke.texi (-dF): Remove.
825
826 2004-07-03  Richard Henderson  <rth@redhat.com>
827
828         * config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp
829         instead of gen_mem_addressof.
830         * config/ia64/ia64.md (movxf): Use assign_stack_temp to handle
831         TImode output register.
832
833 2004-07-03  Richard Henderson  <rth@redhat.com>
834
835         PR tree-optimization/16341
836         * tree-sra.c (sra_walk_function): Increment to next stmt before
837         processing the current stmt.
838         (sra_insert_after): Always use BSI_SAME_STMT.
839
840 2004-07-03  Richard Henderson  <rth@redhat.com>
841
842         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Don't fold
843         fp plus with minus.
844
845 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
846
847         * tree.c (type_hash_eq): Allow TYPE_MIN_VALUE which compares equal
848         with tree_int_cst_equal.
849
850 2004-07-03  Andreas Schwab  <schwab@suse.de>
851
852         * config/ia64/ia64.md: Define new attribute "empty".
853         (prologue_use, nop_x, insn_group_barrier): Set it.
854
855         * config/ia64/ia64.c (ia64_reorg): When looking for trailing call
856         skip over "empty" insns.
857
858 2004-07-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
859
860         * tree-inline.c (initialize_inlined_parameters): Pass proper function
861         context to gimplify_body.
862         (walk_tree): Don't walk into types twice.
863         (walk_tree, case POINTER_TYPE): Deal with mutually recursive pointers.
864
865         * tree-sra.c (generate_element_init): Remove any useless conversions.
866
867         * gimplify.c (gimplify_conversion): Remove stripping useless
868         conversions from here.
869         (gimplify_expr): Put it here, in place of call to STRIP_MAIN_TYPE_NOPS.
870         (gimplify_modify_expr_to_memcpy, gimplify_variable_sized_compare):
871         Unshare before substituting PLACEHOLDER_EXPR.
872         (gimplify_modify_expr_to_memset): Likewise.
873         Pass address of TO to memset, not TO itself.
874         (gimplify_init_constructor): Make copy of OBJECT so we have it each
875         time we make an expression (to match a PLACEHOLDER_EXPR).
876
877         * tree-ssa.c (tree_ssa_useless_type_conversion): Also look at
878         VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
879         * tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION.
880         * tree-ssa-dom.c (local_fold): Likewise.
881
882         * langhooks-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook.
883         * langhooks.h (strct lang_hooks): New field type_max_size.
884         * function.c (assign_temp): Call it.
885
886 2004-07-03  Steven Bosscher  <stevenb@suse.de>
887
888         * config/sh/sh.c (sh_use_dfa_interface): Add TARGET_SH1.
889         * config/sh/sh.md: Convert the SH1 pipeline description to
890         a DFA model.
891
892 2004-07-02  Zack Weinberg  <zack@codesourcery.com>
893
894         * c-decl.c (struct c_binding): Remove contour field; add
895         depth, invisible, nested fields.
896         (B_IN_SCOPE, B_IN_CURRENT_SCOPE, B_IN_FILE_SCOPE)
897         (B_IN_EXTERNAL_SCOPE): New convenience macros.
898         (bind): Add invisible and nested arguments. Initialize
899         new fields of struct c_binding; adjust loop scanning for
900         insertion point.
901         (free_binding_and_advance): Clear structure with memset.
902         (pop_scope): Adjust to match.  Set DECL_CONTEXT on everything
903         in file scope, even if it's in external scope too.
904         (pushdecl): Adjust to match.  Create invisible file-scope
905         declarations for block-scope forward declarations of static functions.
906         (pushtag, warn_if_shadowing, pushdecl_top_level, implicitly_declare)
907         (undeclared_variable, lookup_label, declare_label, define_label)
908         (lookup_tag, lookup_name, lookup_name_in_scope, builtin_function)
909         (c_make_fname_decl, store_parm_decls_newstyle, identifier_global_value)
910         (store_parm_decls_oldstyle): Adjust to match.
911         (diagnose_mismatched_decls): Correct handling of linkage clashes.
912         (merge_decls): No need to copy C_DECL_IN_EXTERNAL_SCOPE.
913
914         * c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete.
915         (C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one.
916
917 2004-07-02  Richard Henderson  <rth@redhat.com>
918
919         * c-decl.c (grokdeclarator): Don't frob current_function_decl
920         around variable_size.
921         (set_decl_nonlocal): Remove.
922         (store_parm_decls): Add stmts for pending sizes.
923         * calls.c (calls_function, calls_function_1): Remove.
924         (precompute_arguments): Don't call it.
925         * cfgexpand.c (set_save_expr_context): Remove.
926         (tree_expand_cfg): Don't call it.
927         * dwarf2out.c (add_bound_info): Don't handle SAVE_EXPR.
928         (dwarf2out_finish): Likewise.
929         * expr.c (emit_block_move): Adjust addresses to BLKmode.
930         (store_constructor): Don't pre-evaluate SAVE_EXPR.
931         (safe_from_p): Don't queue SAVE_EXPRs.
932         (expand_expr_real_1 <case SAVE_EXPR>): Rewrite to expect,
933         or build plain VAR_DECLs.
934         * fold-const.c (twoval_comparison_p): Don't look at SAVE_EXPR_RTL.
935         (fold): Likewise.
936         (fold_checksum_tree): Don't special-case SAVE_EXPR.
937         * function.c (free_after_compilation): Don't clear x_save_expr_regs.
938         (put_var_into_stack): Don't handle SAVE_EXPR.
939         (gen_mem_addressof): Likewise.
940         * function.h (struct function): Remove x_save_expr_regs.
941         (save_expr_regs): Remove.
942         * gengtype.c (adjust_field_tree_exp): Don't special-case SAVE_EXPR.
943         * print-tree.c (print_node): Don't dump SAVE_EXPR_NOPLACEHOLDER.
944         * stor-layout.c (variable_size): Don't set it.
945         (force_type_save_exprs, force_type_save_exprs_1): Remove.
946         * tree-inline.c (remap_save_expr): Remove fn argument.  Update
947         all callers.  Don't set SAVE_EXPR_CONTEXT.
948         * tree-inline.h (remap_save_expr): Update decl.
949         * tree.c (save_expr): Update build size.
950         (first_rtl_op): Don't handle SAVE_EXPR.
951         (unsave_expr_1, contains_placeholder_p): Likewise.
952         (decl_function_context): Likewise.
953         * tree.def (SAVE_EXPR): Remove args 1 and 2.
954         * tree.h (SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL): Remove.
955         (SAVE_EXPR_NOPLACEHOLDER, SAVE_EXPR_PERSISTENT_P): Remove.
956
957 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
958
959         * doc/bugreport.texi, doc/configterms.texi, doc/contrib.texi,
960         doc/contribute.texi, doc/cpp.texi, doc/cppinternals.texi,
961         doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/md.texi,
962         doc/portability.texi, doc/tree-ssa.texi, doc/trouble.texi: Avoid
963         some first-person references and patronizing comments.  Based on
964         printed manual.
965         * doc/invoke.texi: Don't reference fortran@gnu.org.
966         * doc/trouble.texi (Warning when a non-void function value is
967         ignored): Rewrite.  From Russ Allbery and Chris Devers.
968
969 2004-07-02  Daniel Berlin  <dberlin@dberlin.org)
970
971         * tree-ssa-pre.c (bitmap_set_t): New.
972         (bb_value_sets): avail_out is now a bitmap_set_t.
973         (bitmap_find_leader): New function.
974         (bitmap_value_insert_into_set): Ditto.
975         (bitmap_set_copy): Ditto.
976         (bitmap_value_replace_in_set): Ditto.
977         (bitmap_set_contains_value): Ditto.
978         (bitmap_set_new): Ditto.
979         (bitmap_set_pool): New pool.
980         (find_or_generate_expression): Use bitmap_ functions on AVAIL sets.
981         (insert_aux): Ditto.
982         (add_to_sets): Ditto.
983         (compute_avail): Ditto
984         (eliminate): Ditto.
985         (init_pre): Ditto.
986         (fini_pre): Ditto.
987         (execute_pre): Ditto.
988
989 2004-07-02  Roger Sayle  <roger@eyesopen.com>
990
991         * config/rs6000/rs6000.c (struct processor_costs): New structure
992         used to hold instruction latencies/sizes for processor types.
993         (rs6000_cost): New global variable pointing to current CPU's costs.
994         (rs6000_override_options): Initialize rs6000_cost to point to the
995         appropriate cost table based upon rs6000_cpu and optimize_size.
996         (rs6000_rtx_costs): Use rs6000_cost to avoid hardcoding processor
997         timings inline.
998
999 2004-07-02  Richard Henderson  <rth@redhat.com>
1000
1001         * expmed.c (make_tree): Don't use SET_DECL_RTL.
1002
1003 2004-07-02  Steven Bosscher  <stevenb@suse.de>
1004
1005         * tree-flow.h (bb_ann_d): Remove ephi_nodes field.
1006
1007 2004-07-01  Richard Henderson  <rth@redhat.com>
1008
1009         * config/alpha/alpha.c (struct machine_function): Add gp_save_rtx.
1010         (alpha_gp_save_rtx): Use assign_stack_local instead of
1011         gen_mem_addressof.
1012
1013 2004-07-01  Richard Henderson  <rth@redhat.com>
1014
1015         * config/alpha/alpha.c (struct alpha_rtx_cost_data): Add int_div.
1016         (alpha_rtx_cost_data): Update to match.
1017         (alpha_rtx_cost_size): New.
1018         (alpha_rtx_costs): Honor optimize_size.
1019
1020 2004-07-01  Richard Henderson  <rth@redhat.com>
1021
1022         * gimple-low.c (lower_function_body): Don't reset_block_changes here.
1023         * cfgexpand.c (tree_expand_cfg): Do it here.
1024         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): And here.
1025         * config/ia64/ia64.c (ia64_output_mi_thunk): And here.
1026         * config/mips/mips.c (mips_output_mi_thunk): And here.
1027         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): And here.
1028         * config/sh/sh.c (sh_output_mi_thunk): And here.
1029         * config/sparc/sparc.c (sparc_output_mi_thunk): And here.
1030
1031 2004-07-01  Richard Henderson  <rth@redhat.com>
1032
1033         * tree.def (RTL_EXPR): Remove.
1034         * c-typeck.c (lvalue_p): Don't handle it.
1035         * expr.c (safe_from_p): Likewise.
1036         (expand_expr_real_1): Likewise.
1037         * fold-const.c (non_lvalue, operand_equal_p, fold): Likewise.
1038         (fold_checksum_tree, tree_expr_nonnegative_p): Likewise.
1039         * gengtype.c (adjust_field_tree_exp): Likewise.
1040         * stmt.c (warn_if_unused_value): Likewise.
1041         * tree-gimple.c (recalculate_side_effects): Likewise.
1042         * tree-pretty-print.c (dump_generic_node): Likewise.
1043         * tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise.
1044         (unsafe_for_reeval, stabilize_reference, build1_stat): Likewise.
1045         * tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove.
1046
1047         * stmt.c (struct stmt_status): Remove x_last_expr_type,
1048         x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value.
1049         (last_expr_type, last_expr_value, last_expr_alt_rtl): Remove.
1050         (expand_expr_stmt): Merge with expand_expr_stmt_value.  Remove
1051         all the bits that tracked last_expr.
1052         (expand_end_bindings): Don't track last_expr.
1053         (expand_start_stmt_expr, expand_end_stmt_expr): Remove.
1054         (clear_last_expr): Remove.
1055         (expand_asm): Don't call it.
1056         (expand_asm_operands, expand_end_cond): Likewise.
1057         (expand_naked_return, expand_null_return_1): Likewise.
1058         * c-typeck.c (c_begin_compound_stmt): Likewise.
1059         * cfgexpand.c (expand_block): Use expand_expr_stmt.
1060         * expr.c (expand_expr_real_1): Likewise.
1061         * tree.h: Update prototypes.
1062
1063         * function.h (struct sequence_stack): Remove sequence_rtl_expr.
1064         (struct emit_status): Remove sequence_rtl_expr.
1065         (struct function): Remove x_rtl_expr_chain.
1066         (seq_rtl_expr, rtl_expr_chain): Remove.
1067         * function.c (struct temp_slot): Remove rtl_expr.
1068         (assign_stack_temp_for_type): Don't set it.
1069         (free_temp_slots, pop_temp_slots): Don't check it.
1070         (free_after_compilation): Don't clear x_rtl_expr_chain.
1071         (fixup_var_refs): Don't search it.
1072         (preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove.
1073         * emit-rtl.c (start_sequence): Don't use sequence_rtl_expr
1074         or seq_rtl_expr.
1075         (push_topmost_sequence): Likewise.
1076         (end_sequence, init_emit): Likewise.
1077         (start_sequence_for_rtl_expr): Remove.
1078         * expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR.
1079         * rtl.h (preserve_rtl_expr_result): Remove.
1080
1081 2004-07-02  Kazu Hirata  <kazu@cs.umass.edu>
1082
1083         * ifcvt.c, modulo-sched.c, tree-alias-common.c, tree-sra.c,
1084         tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-pre.c: Fix comment
1085         typos.
1086
1087 2004-07-02  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
1088
1089         * gcc.c (STANDARD_STARTFILE_PREFIX_1): Define.
1090         (STANDARD_STARTFILE_PREFIX_2): Define.
1091         (standard_startfile_prefix_1): Initialize to
1092         STANDARD_STARTFILE_PREFIX_1.
1093         (standard_startfile_prefix_2): Initialize to
1094         STANDARD_STARTFILE_PREFIX_2.
1095         * config/i386/mingw32.h (MD_STARTFILE_PREFIX): Remove.
1096         (STANDARD_STARTFILE_PREFIX_1): Define.
1097         (STANDARD_STARTFILE_PREFIX_2): Define.
1098         * doc/tm.texi (STANDARD_STARTFILE_PREFIX_1): Document.
1099         (STANDARD_STARTFILE_PREFIX_2): Document.
1100
1101 2004-07-01  Richard Henderson  <rth@redhat.com>
1102
1103         * tree-sra.c (sra_walk_expr): Don't maybe_lookup_element_for_expr
1104         in order to disable scalarization.  Instead set a flag and wait
1105         for a candidate decl.
1106
1107 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
1108
1109         * doc/cppinternals.texi, doc/install.texi, doc/invoke.texi,
1110         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi:
1111         Use terminology "testsuite" and "enumerated".
1112
1113 2004-07-01  Richard Henderson  <rth@redhat.com>
1114
1115         * dwarf2out.c (reg_save): Use INVALID_REGNUM.
1116         (dwarf2out_reg_save, dwarf2out_return_save): Likewise.
1117         (initial_return_save): Likewise.
1118         (flush_queued_reg_saves): Remap register numbers.
1119         (dwarf2out_return_reg): Likewise.
1120
1121 2004-07-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1122
1123         * gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL.
1124
1125         * tree-pretty-print.c (dump_generic_node, case ARRAY_REF): Use
1126         access functions for lower bound and element size and only output
1127         if lower bound nonzero or element size not same as that of type.
1128         (dump_generic_node, case COMPONENT_REF): Use access func. for offset.
1129
1130 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
1131
1132         * c-pretty-print.c (pp_c_postfix_expression): Fix pasto.
1133
1134 2004-07-01  Per Bothner  <per@bothner.com>
1135
1136         * final.c (final):  Fix typo reported by Aaron W. LaFramboise.
1137
1138 2004-07-01  Jakub Jelinek  <jakub@redhat.com>
1139
1140         * expr.c (expand_assignment): Optimize bitfld += cst for 1 bit
1141         bitfields as well.  STRIP_NOPS from src operand and PLUS_EXPR's
1142         first operand.  Don't optimize if the bitfield is volatile.
1143
1144 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
1145
1146         * c-pretty-print.c (pp_c_postfix_expression): Handle
1147         floating-point comparison operators.
1148         (pp_c_expression): Pass floating-point comparison
1149         operators to pp_c_postfix_expression.
1150
1151 2004-07-01  Roger Sayle  <roger@eyesopen.com>
1152
1153         * simplify-rtx.c (simplify_binary_operation) <PLUS, MINUS>: Use
1154         rtx_cost instead of "had_mult" to determine whether the transformed
1155         expression is cheaper than the original.
1156
1157 2004-07-01  Jerry Quinn  <jlquinn@optonline.net>
1158
1159         * alias.c (get_alias_set, canon_rtx, get_addr,
1160         nonoverlapping_memrefs_p, nonlocal_referenced_p_1, memory_modified_1):
1161         Use MEM_P.
1162         * builtins.c (expand_builtin_prefetch, expand_builtin_profile_func,
1163         expand_builtin): Likewise.
1164         * calls.c (expand_call, emit_library_call_value_1, store_one_arg):
1165         Likewise.
1166         * combine.c (can_combine_p, combinable_i3pat, try_combine,
1167         find_split_point, combine_simplify_rtx, simplify_set, make_extraction,
1168         rtx_equal_for_field_assignment_p, gen_lowpart_for_combine,
1169         record_dead_and_set_regs_1, get_last_value_validate,
1170         mark_used_regs_combine, move_deaths, unmentioned_reg_p_1): Likewise.
1171         * cse.c (check_dependence, canon_hash, equiv_constant,
1172         gen_lowpart_if_possible, cse_insn, invalidate_from_clobbers,
1173         cse_around_loop, cse_check_loop_start, cse_set_around_loop,
1174         count_reg_usage): Likewise.
1175         * cselib.c (rtx_equal_for_cselib_p, add_mem_for_addr, cselib_lookup,
1176         cselib_invalidate_mem, cselib_invalidate_rtx, cselib_record_set,
1177         cselib_record_sets): Likewise.
1178         * dbxout.c (PARM_PASSED_IN_MEMORY, dbxout_symbol,
1179         dbxout_symbol_location, dbxout_parms, dbxout_reg_parms): Likewise.
1180         * ddg.c (mark_mem_use, mark_mem_store, rtx_mem_access_p): Likewise.
1181         * df.c (df_uses_record): Likewise.
1182         * dojump (do_jump): Likewise.
1183         * dwarf2out.c (stack_adjust_offset, mem_loc_descriptor,
1184         loc_descriptor_from_tree, rtl_for_decl_location, add_bound_info,
1185         decl_start_label): Likewise.
1186         * emit-rtl.c (gen_complex_constant_part, gen_highpart,
1187         operand_subword, change_address_1, make_safe_from): Likewise.
1188         * explow.c (break_out_memory_refs, copy_all_regs, validize_mem,
1189         stabilize, force_not_mem): Likewise.
1190         * expmed.c (store_bit_field, store_split_bit_field, extract_bit_field,
1191         expand_mult_const, expand_divmod, emit_store_flag): Likewise.
1192         * expr.c (convert_move, convert_modes, emit_block_move,
1193         emit_group_load, emit_group_store, clear_storage, emit_move_insn,
1194         emit_move_insn_1, expand_assignment, store_expr,
1195         store_constructor_field, store_constructor, store_field,
1196         force_operand, safe_from_p, expand_expr_real_1, expand_increment):
1197         Likewise.
1198         * final.c (cleanup_subreg_operands, alter_subreg,
1199         get_mem_expr_from_op): Likewise.
1200         * flow.c (notice_stack_pointer_modification_1,
1201         init_propagate_block_info, insn_dead_p, mark_set_1, mark_used_regs):
1202         Likewise.
1203         * function.c (mark_temp_addr_taken, preserve_temp_slots,
1204         preserve_rtl_expr_result, put_var_into_stack, fixup_var_refs_1,
1205         optimize_bit_field, flush_addressof, purge_addressof_1,
1206         instantiate_decl, instantiate_virtual_regs_1, assign_parms,
1207         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
1208         keep_stack_depressed): Likewise.
1209         * ifcvt.c (noce_try_cmove_arith, noce_try_abs, noce_operand_ok,
1210         noce_process_if_block, find_memory): Likewise.
1211         * integrate.c (subst_constants, allocate_initial_values): Likewise.
1212         * local-alloc.c (validate_equiv_mem_from_store, memref_referenced_p,
1213         update_equiv_regs): Likewise.
1214         * loop.c (scan_loop, prescan_loop, note_addr_stored, check_store,
1215         maybe_eliminate_biv_1, find_mem_in_note_1): Likewise.
1216         * optabs.c (expand_abs, emit_unop_insn): Likewise.
1217         * passes.c (rest_of_handle_final): Likewise.
1218         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
1219         move2add_note_store): Likewise.
1220         * ra-build.c (detect_remat_webs): Likewise.
1221         * ra-debug.c (dump_static_insn_cost): Likewise.
1222         * ra-rewrite.c (slots_overlap_p, insert_stores): Likewise.
1223         * recog.c (validate_change, apply_change_group, cancel_changes,
1224         validate_replace_rtx_1, general_operand, register_operand,
1225         nonmemory_operand, push_operand, pop_operand, memory_operand,
1226         indirect_operand, asm_operand_ok, offsettable_memref_p,
1227         offsettable_nonstrict_memref_p, constrain_operands,
1228         store_data_bypass_p): Likewise.
1229         * reg-stack.c (subst_stack_regs_pat): Likewise.
1230         * regclass.c (record_operand_costs, scan_one_insn, record_reg_classes,
1231         copy_cost, reg_scan_mark_refs): Likewise.
1232         * regmove.c (optimize_reg_copy_3, stack_memref_p,
1233         combine_stack_adjustments_for_block): Likewise.
1234         * regrename.c (copyprop_hardreg_forward_1): Likewise.
1235         * reload.c (can_reload_into, push_reload, decompose, immune_p,
1236         find_reloads, find_reloads_address, find_reloads_address_1,
1237         reg_overlap_mentioned_for_reload_p, refers_to_mem_for_reload_p,
1238         find_equiv_reg): Likewise.
1239         * reload1.c (reload, eliminate_regs, eliminate_regs_in_insn,
1240         reload_as_needed, choose_reload_regs, emit_input_reload_insns,
1241         do_input_reload, emit_reload_insns, gen_reload, delete_output_reload,
1242         delete_address_reloads): Likewise.
1243         * resource.c (mark_referenced_resources): Likewise.
1244         * rtlanal.c (get_jump_table_offset, count_occurrences,
1245         reg_referenced_p, reg_set_p, set_of_1, set_noop_p,
1246         reg_overlap_mentioned_p, note_uses, replace_regs, nonzero_bits1,
1247         num_sign_bit_copies1): Likewise.
1248         * rtlhooks.c (gen_lowpart_general): Likewise.
1249         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
1250         * sdbout.c (PARM_PASSED_IN_MEMORY, sdbout_symbol,
1251         sdbout_toplevel_data, sdbout_parms, sdbout_reg_parms,
1252         sdbout_global_decl): Likewise.
1253         * simplify-rtx.c (simplify_subreg): Likewise.
1254         * stmt.c (expand_asm_operands, expand_expr_stmt_value, expand_decl,
1255         expand_anon_union_decl, expand_end_case_type): Likewise.
1256         * unroll.c (calculate_giv_inc): Likewise.
1257         * var-tracking.c (stack_adjust_offset_pre_post,
1258         bb_stack_adjust_offset, track_expr_p, count_uses, add_uses,
1259         add_stores, compute_bb_dataflow, vt_get_decl_and_offset,
1260         vt_add_function_parameters): Likewise.
1261         * varasm.c (make_var_volatile, notice_global_symbol,
1262         assemble_external, decode_addr_const, mark_weak,
1263         default_encode_section_info): Likewise.
1264
1265 2004-07-01  Steven Bosscher  <stevenb@suse.de>
1266
1267         * stmt.c (check_seenlabel): Remove.
1268         (pushcase, pushcase_range, expand_end_case_type): Don't call it.
1269
1270 2004-07-01  Richard Henderson  <rth@redhat.com>
1271
1272         * function.h (struct function): Remove x_function_call_count.
1273         (function_call_count): Remove.
1274         * calls.c (expand_call): Don't set it.
1275         * integrate.c (copy_rtx_and_substitute): Likewise.
1276
1277         * function.h (struct function): Remove x_cleanup_label.
1278         (cleanup_label): Remove.
1279         * stmt.c (expand_value_return): Don't use it.
1280         * function.c (free_after_compilation): Don't set it.
1281         (expand_function_start): Likewise.  Remove parms_have_cleanups arg.
1282         * cfgexpand.c (tree_expand_cfg): Update call.
1283         * tree.h (expand_function_start): Update decl.
1284
1285 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
1286
1287         PR c/1027
1288         * c-lang.c (c_initialize_diagnostics): Move from here ...
1289         * c-objc-common.c: ... to here.  Include "c-pretty-print.h".
1290         (c_tree_printer): Use pretty-printer to format %T.
1291         * c-pretty-print.c (pp_c_specifier_qualifier_list): Include space
1292         before '*' if not C++.
1293         (pp_c_direct_abstract_declarator): Don't try to print array upper
1294         bound for flexible array members.
1295         * c-tree.h: Include "diagnostic.h".
1296         (c_initialize_diagnostics): Declare.
1297         * objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define.
1298         * c-format.c (format_type_warning): New function.  Improve
1299         diagnostics for incorrect format argument types.
1300         (check_format_types): Use it.  Add two parameters.  Use the
1301         TYPE_MAIN_VARIANT of wanted_type.
1302         (check_format_info_main): Pass new parameters to
1303         check_format_types.
1304         (struct format_wanted_type): Update comment.
1305
1306 2004-07-01  Nick Clifton  <nickc@redhat.com>
1307
1308         * target.h (struct gcc_target): Add new field to struct cxx:
1309         import_export_class.
1310         * target-def.h (TARGET_CXX): Initialise the new field.
1311         (TARGET_CXX_IMPORT_EXPORT_CLASS): Provide a default value for
1312         the new field.
1313         * doc/tm.texi: Document the new target hook.
1314
1315 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
1316
1317         * builtins.c (fold_builtin_classify): Fix typo.
1318
1319 2004-07-01  Richard Henderson  <rth@redhat.com>
1320
1321         * function.c (identify_blocks, identify_blocks_1): Remove.
1322         * function.h (identify_blocks): Remove.
1323         * rtl.h (NOTE_INSN_BLOCK_BEG): Update comment.
1324
1325 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
1326
1327         * builtins.c (fold_builtin_classify): New.
1328         (fold_builtin_unordered_cmp): Fix commentary.
1329         (fold_builtin): Use it.
1330         * builtins.def: Define builtins for isnan,
1331         isnanf, isnanl, finite, finitef, finitel,
1332         isinf, isinff, isinfl.
1333
1334 2004-07-01  Richard Henderson  <rth@redhat.com>
1335
1336         * function.h (struct function): Remove dont_emit_block_notes.
1337         * gimple-low.c (lower_function_body): Don't set it.
1338         * cfgexpand.c (expand_block): Don't check it.
1339         * cfglayout.c (insn_locators_initialize): Likewise.
1340         * expr.c (expand_expr_real, expand_expr_real_1): Likewise.
1341         * passes.c (rest_of_compilation): Likewise.
1342         * stmt.c (expand_start_bindings_and_block): Likewise.
1343         (expand_end_bindings): Likewise.
1344
1345 2004-07-01  Richard Henderson  <rth@redhat.com>
1346
1347         * cgraph.h (cgraph_build_static_cdtor): Declare.
1348         * cgraphunit.c (cgraph_build_static_cdtor): New.
1349         * c-objc-common.c (build_cdtor): Use it.
1350         * coverage.c (create_coverage): Likewise.
1351         * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove.
1352         * optabs.c (init_optabs): Don't set gcov_init_libfunc.
1353
1354 See ChangeLog.11 for earlier changes.