OSDN Git Service

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