OSDN Git Service

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