OSDN Git Service

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