OSDN Git Service

d18d7989475e92e7c16732daeac2be8f3e6dd14d
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-08-17  James E Wilson  <wilson@specifixinc.com>
2
3         * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead
4         of VOIDmode for comparison code mode.
5         * config/mips/mips.md: For conditional move patterns, use mode of
6         first compare operand for comparison mode, instead of VOIDmode.
7         
8 2004-08-17  Mark Mitchell  <mark@codesourcery.com>
9
10         PR c++/15871
11         * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
12
13 2004-08-17  Robert Bowdidge  <bowdidge@apple.com>
14   
15         * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
16
17 2004-08-17  Andreas Tobler  <a.tobler@schweiz.ch>
18
19         * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
20         for non Darwin targets.
21         (*call_value_nonlocal_darwin64): Likewise.
22
23 2004-08-17  Fariborz Jahanian <fjahanian@apple.com>
24
25         * config/rs6000/rs6000.c (rs6000_function_value): Check for
26         altivec mode for altivec return register.
27
28 2004-08-17  David Edelsohn  <edelsohn@gnu.org>
29
30         Revert 2004-08-16  Stan Shebs  <shebs@apple.com>
31         * config/rs6000/rs6000.md: Include darwin.md.
32         (builtin_setjmp_receiver): Add DImode case.
33         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
34         Darwin bits.
35
36 2004-08-17  Dorit Naishlos  <dorit@il.ibm.com>
37
38         * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE trees.
39         * tree-vectorizer.h: New File: Same.
40         * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files.
41         * common.opt (ftree-vectorize): New flag to enable vectorization.
42         * timevar.def (TV_TREE_VECTORIZATION): New dump file for vectorization
43         pass.
44         * tree-data-ref.h (init_data_ref): Additional argument.
45         (array_base_name_differ_p): Moved to tree-data-ref.c.
46         * tree-data-ref.c (array_base_name_differ_p): Revised.
47         (initialize_data_dependence_relation): Call array_base_name_differ_p
48         with an extra argument.
49         (analyze_all_data_dependences): Same.
50         (init_data_ref): Additional argument is_read to set DR_IS_READ.
51         * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this file.
52         * tree-flow.h (vectorize_loops, empty_block_p): Add declaration.
53         * tree-optimize.c (pass_vectorize): Schedule the vectorization pass.
54         * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new 
55         vectorization pass.
56         * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize.
57         (tree_ssa_loop_done): Call scev_finalize.
58         (tree_vectorize): Define the new vectorization pass.
59         * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the size of
60         the vector they support (until support for multiple vector sizes is
61         added to the vectorizer).
62         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define.
63         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define.
64         * invoke.texi (fdump-tree-vect, ftree-vectorize): Add
65         documentation.
66
67 2004-08-17  Nathan Sidwell  <nathan@codesourcery.com>
68
69         * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
70         usage.
71         (generate_protocol_list, handle_impent): Likewise.
72
73 2004-08-17  Roger Sayle  <roger@eyesopen.com>
74
75         * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to
76         ensure that call_used_regs is a superset of both fixed_regs and
77         call_really_used_regs.
78
79 2004-08-17  Daniel Bornstein  <danfuzz@milk.com>
80
81         PR target/17019
82         * arm.md (addsi3_cbranch_scratch): Correct case labels.
83
84 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
85
86         PR middle-end/17036
87         * fold-const.c (fold): Check for integer operand when
88         folding (A >> N) & 1 ? (1 << N) : 0.  Fix from Andrew
89         Pinski  <pinskia@physics.uc.edu>.
90
91 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
92
93         * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
94         No need to check if in a cross configuration.
95         * configure: Regenerate.
96
97         * calls.c (precompute_register_parameters):
98         Inline preserve_subexpressions_p ().
99         * expmed.c (expand_mult_const, emit_store_flag): Likewise.
100         * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
101         Likewise.
102         * expr.c (get_subtarget): Likewise.
103         * rtl.h (preserve_subexpressions_p): Remove.
104         * stmt.c (preserve_subexpressions_p): Remove.
105
106         * dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
107         TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
108         Abort on gimplified cases.
109
110 2004-08-16  James E Wilson  <wilson@specifixinc.com>
111
112         * tree.h (VECTOR_FLOAT_TYPE_P): New.
113         (FLOAT_TYPE_P): Use it.
114         * c-typeck.c (build_binary_op): After convert calls, check for
115         check for ERROR_MARK operands.
116
117 2004-08-16  Zack Weinberg  <zack@codesourcery.com>
118
119         * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete.
120         (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update.
121         (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o.
122         (genobjs static pattern rule): Remove %.c dependency.
123         ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o):
124         Rename rules; delete commands; fix dependencies.
125         (mostlyclean): Do not delete temporary source copies.
126         * configure.ac: Delete all references to BUILD_PREFIX and
127         BUILD_PREFIX_1.
128         * configure: Regenerate.
129
130         * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE.
131         Do not include tree.h, real.h, flags.h, hard-reg-set.h, or
132         basic-block.h #ifdef GENERATOR_FILE.  Surround some more code
133         with #ifndef GENERATOR_FILE so that nothing from those headers
134         is used.
135
136         * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE.
137
138 2004-08-16  Adam Nemet  <anemet@lnxw.com>
139
140         * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB).
141
142 2004-08-16  Andrew Pinski  <apinski@apple.com>
143
144         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove
145         extraneous semicolon.
146
147 2004-08-16  Devang Patel  <dpatel@apple.com>
148
149         * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P.
150         * print-tree.c (print_node): Print DECL_PRESERVE_P.
151         * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define.
152         (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED
153         * target.h (struct gcc_target): New member, mark_decl_preserved.
154         * hooks.c (hook_void_charptr): Rename to ...
155         (hook_void_constcharptr): ... new name.
156         * hooks.h (hook_void_charptr): Rename to ..
157         (hook_void_constcharptr): ... new name.
158         * tree.h (DECL_PRESERVE_P): New #define.
159         (struct tree_decl): New member, preserve_flag.
160         * varasm.c (assemble_start_function): Mark decl preserved.
161         (assemble_variable): Same.
162         * darwin.c (darwin_mark_decl_preserved): New function.
163         * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define.
164         * darwin-protos.h (darwin_mark_decl_preserved): New decl.
165         * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document.
166
167 2004-08-16  Joseph S. Myers  <jsm@polyomino.org.uk>
168
169         * c-decl.c (grokdeclarator): Allow for function definition where
170         innermost declarator has attributes.
171
172 2004-08-16  Fariborz Jahanian <fjahanian@apple.com>
173
174         * except.c (get_exception_filter, build_post_landing_pads,
175         dw2_build_landing_pads): Use target-specific mode for 'filter'.
176         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used.
177         * target.h (eh_return_filter_mode): New field added.
178         * targhooks.c (default_eh_return_filter_mode): Defined.
179         * targhooks.h (default_eh_return_filter_mode): Declared.
180         * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined.
181
182 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
183
184         * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
185         ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST.
186         * configure: Regenerate.
187
188 2004-08-16  Stan Shebs  <shebs@apple.com>
189
190         Basic support for 64-bit Darwin.
191         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
192         (machopic_legitimize_pic_address): Similarly, plus use Pmode
193         instead of SImode.
194         * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit.
195         (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro.
196         (SUBTARGET_SWITCHES): Add -m32 and -m64 flags.
197         (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64.
198         (PROCESSOR_DEFAULT64): Define.
199         * config/rs6000/darwin.md: New file, patterns specific to 64-bit
200         Darwin.
201         * config/rs6000/rs6000.md: Include darwin.md.
202         (builtin_setjmp_receiver): Add DImode case.
203         * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for
204         Darwin.
205         (TARGET_ASM_ALIGNED_DI_OP): Ditto.
206         (rs6000_emit_move): Add DImode case to Darwin bits.
207         (machopic_output_stub): Use .quad if 64-bit.
208         * invoke.texi: Document -m32 and -m64.
209
210 2004-08-16  Janis Johnson  <janis187@us.ibm.com>
211
212         * doc/extend.texi (AltiVec builtins): Document additional differences
213         from the Motorola AltiVec PIM.
214
215 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
216
217         * c-typeck.c (build_c_cast): Only copy overflow from expr nodes.
218         * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify.
219         (struct tree_common): Update public_flag documentation.
220
221 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
222
223         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
224         Check for artificial variables, not is_gimple_tmp_var.
225         * tree-ssa-live.c (var_union): Likewise.
226
227 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
228
229         * calls.c (load_register_parameters): Remove spurious FIXME token.
230
231 2004-08-15  Ziemowit Laski  <zlaski@apple.com>
232
233         * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
234         (c-lang.o): Depend on c-objc-common.h.
235         (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and
236         c-objc-common.h; remove duplicate $(C_TREE_H) dependency.
237         * c-lang.c: Include c-objc-common.h.
238         (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
239         LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
240         LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
241         LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
242         LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
243         LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
244         LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
245         LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
246         LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
247         LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
248         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
249         LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
250         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
251         LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
252         LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
253         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
254         LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
255         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
256         LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
257         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
258         LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
259         LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
260         LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
261         LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
262         Move to c-objc-common.h.
263         * c-objc-common.c: Include c-objc-common.h.
264         * c-objc-common.h: New file.
265
266 2004-08-15  Andreas Tobler  <a.tobler@schweiz.ch>
267             Andrew Pinski  <pinskia@physics.uc.edu>
268
269         PR target/14931
270         * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
271         style.
272
273 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
274
275         * tree.h (build_int_cst): New.
276         (build_int_2): Remove.
277         * tree.c (build_int_2): Remove.
278         (build_int_cst): New.
279         (make_vector_type, build_common_tree_nodes,
280         build_common_tree_nodes_2): Use build_int_cst.
281         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
282         expand_builtin_strpbrk, expand_builtin_fputs,
283         build_string_literal, expand_builtin_printf,
284         expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
285         fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
286         fold_builtin_isdigit, simplify_builtin_strstr,
287         simplify_builtin_strpbrk, fold_builtin_fputs,
288         simplify_builtin_sprintf): Use build_int_cst.
289         * c-common.c (start_fname_decls, fix_string_type,
290         c_common_nodes_and_builtins, c_init_attributes,
291         shorten_compare): Likewise.
292         * c-decl.c (complete_array_type,
293         check_bitfield_type_and_width): Likewise.
294         * c-lex.c (interpret_integer, lex_charconst): Likewise.
295         * c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
296         * c-pretty-print.c (pp_c_integer_constant): Likewise.
297         * c-typeck.c (really_start_incremental_init, push_init_level,
298         set_nonincremental_init_from_string): Likewise.
299         * calls.c (load_register_parameters): Likewise.
300         * convert.c (convert_to_pointer): Likewise.
301         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
302         build_fn_info_type, build_ctr_info_value, build_gcov_info):
303         Likewise.
304         * except.c (init_eh, assign_filter_values, assign_filter_values):
305         Likewise.
306         * expmed.c (store_fixed_bit_field, extract_bit_field,
307         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
308         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
309         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
310         * expr.c (convert_move, emit_group_load, emit_group_store,
311         expand_assignment, store_constructor, store_field,
312         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
313         * fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
314         invert_truthvalue, optimize_bit_field_compare,
315         decode_field_reference, all_ones_mask_p, constant_boolean_node,
316         fold_div_compare, fold, fold_read_from_constant_string,
317         fold_negate_const, fold_abs_const, fold_not_const): Likewise.
318         * function.c (assign_parm_setup_block): Likewise.
319         * stmt.c (shift_return_value, expand_end_case_type,
320         estimate_case_costs): Likewise.
321         * stor-layout.c (layout_type, initialize_sizetypes,
322         set_min_and_max_values_for_integral_type): Likewise.
323         * tree-chrec.c (chrec_fold_multiply_poly_poly,
324         reset_evolution_in_loop): Likewise.
325         * tree-chrec.h (build_polynomial_chrec): Likewise.
326         * tree-complex.c (build_replicated_const): Likewise.
327         * tree-eh.c (honor_protect_cleanup_actions,
328         lower_try_finally_onedest, lower_try_finally_copy,
329         lower_try_finally_switch): Likewise.
330         * tree-mudflap.c (mf_build_string, mx_register_decls,
331         mudflap_register_call, mudflap_enqueue_constant): Likewise.
332         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
333         * tree-pretty-print.c (dump_generic_node): Likewise.
334         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
335         Likewise.
336         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
337         * tree-ssa-loop-niter.c (number_of_iterations_cond,
338         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
339         Likewise.
340
341         * config/alpha/alpha.c (alpha_initialize_trampoline,
342         alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
343         * config/arm/arm.c (arm_get_cookie_size): Likewise.
344         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
345         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
346         * config/i860/i860.c (i860_va_start): Likewise.
347         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
348         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
349         mips_gimplify_va_arg_expr): Likewise.
350         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
351         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
352         add_compiler_branch_island): Likewise.
353         * config/s390/s390.c (s390_va_start): Likewise.
354         * config/sh/sh.c (sh_va_start): Likewise.
355         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
356         Likewise.
357         * config/xtensa/xtensa.c (xtensa_va_start,
358         xtensa_gimplify_va_arg_expr): Likewise.
359
360         * objc/objc-act.c (build_objc_string_object,
361         build_objc_symtab_template, init_def_list, init_objc_symtab,
362         init_module_descriptor, generate_static_references,
363         build_selector_translation_table, get_proto_encoding,
364         build_typed_selector_reference, build_selector_reference,
365         build_next_objc_exception_stuff,
366         build_method_prototype_list_template, generate_descriptor_table,
367         generate_protocols, build_protocol_initializer,
368         build_ivar_list_template, build_method_list_template,
369         build_ivar_list_initializer, generate_ivars_list,
370         generate_dispatch_table, generate_protocol_list,
371         build_category_initializer, build_shared_structure_initializer,
372         generate_shared_structures, handle_impent,
373         generate_objc_image_info): Use build_int_cst.
374
375 2004-08-15  Ben Elliston  <bje@au.ibm.com>
376
377         * vec.h: Comment improvements.
378
379 2004-08-14  Roger Sayle  <roger@eyesopen.com>
380
381         * c-common.c (shorten_compare, pointer_int_sum,
382         c_common_truthvalue_conversion, boolean_increment): Replace calls
383         to build with calls to buildN.
384         * c-decl.c (complete_array_type, grokdeclarator): Likewise.
385         * c-gimplify.c (c_build_bind_expr, gimplify_c_loop,
386         gimplify_switch_stmt): Likewise.
387         * c-typeck.c (default_function_array_conversion,
388         build_component_ref, build_array_ref, build_function_call,
389         pointer_diff, build_unary_op, build_conditional_expr,
390         build_compound_expr, build_modify_expr, c_finish_goto_label,
391         c_finish_goto_ptr, c_finish_return, c_finish_loop,
392         c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt,
393         build_binary_op): Likewise.
394
395 2004-08-15  Steven Bosscher  <stevenb@suse.de>
396
397         * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
398
399 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
400
401         * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h,
402         curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h.
403         * fixinc/fixincl.x: Rebuilt.
404
405 2004-08-14  Richard Sandiford  <rsandifo@redhat.com>
406
407         * config/mips/mips-protos.h (mips_symbolic_constant_p)
408         (mips_atomic_symbolic_constant_p, mips_stack_address_p)
409         (mips_small_data_pattern_p): Declare.
410         * config/mips/mips.h (CONST_GP_P): Moved from mips.c.
411         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
412         * config/mips/mips.c (mips_symbolic_constant_p): Make global.
413         (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions.
414         (uns_arith_operand, const_arith_operand, arith_operand, sle_operand)
415         (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand)
416         (reg_or_const_float_1_operand, hilo_operand, extend_operator)
417         (macc_msac_operand, equality_op, cmp_op, trap_cmp_op)
418         (pc_or_label_operand, call_insn_operand, move_operand)
419         (consttable_operand, symbolic_operand, general_symbolic_operand)
420         (global_got_operand, local_got_operand, stack_operand)
421         (fp_register_operand, lo_operand, fcc_register_operand): Delete.
422         (mips_small_data_pattern_1): Renamed from small_data_pattern_1.
423         (mips_small_data_pattern_p): Replace previous small_data_pattern
424         predicate.  Turn into a bool () (rtx) function.
425         * config/mips/predicates.md: New file.
426         * config/mips/mips.md: Include it.  Use the target-independent
427         comparison_operator instead of cmp_op.  Rename trap_cmp_op to
428         trap_comparison_operator and equality_op to equality_operator.
429         Replace uses of small_int with the equivalent const_arith_operand.
430         Rename reg_or_const_float_1_operand to reg_or_1_operand.  Rename
431         const_float_1_operand to const_1_operand.  Rename fcc_register_operand
432         to fcc_reload_operand.
433         * config/mips/sb1.md: Rename fp_register_operand to fpr_operand.
434
435 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
436
437         PR libstdc++/17005 partial fix.
438         * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE
439         except when generating ANSI/C89 code.
440
441 2004-08-14  Nathan Sidwell  <nathan@codesourcery.com>
442
443         * c-common.c (shorten_compare): Use force_fit_type directly.
444
445 2004-08-14  Gerald Pfeifer  <gerald@pfeifer.com>
446             Dimitri Papadopoulos-Orfanos  <papadopo@shfj.cea.fr>
447             Dave Korn  <dk@artimi.com>
448
449         * doc/install.texi (Building): Avoid duplicate reference to GNU
450         make requirement.
451         (*-*-solaris2*): Do not recommend GNU make any longer.  Simplify.
452
453 2004-08-14  Richard Henderson  <rth@redhat.com>
454
455         * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
456         * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
457
458 2004-08-13  Richard Henderson  <rth@redhat.com>
459
460         * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode
461         for constant_call_address_operand.
462         (call_value_pop_1, call_value_1): Likewise.
463         (sibcall_value_1, call_value_1_rex64): Likewise.
464
465 2004-08-13  James E Wilson  <wilson@specifixinc.com>
466
467         * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
468         Correct mode from SFmode to DFmode.
469
470 2004-08-13  Ziemowit Laski  <zlaski@apple.com>
471
472         * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
473         __cstring_object and __image_info sections with the no_dead_strip
474         attribute.
475
476 2004-08-13  Roger Sayle  <roger@eyesopen.com>
477             David Billinghurst  <David.Billinghurst@riotinto.com>
478
479         PR libgfortran/15930
480         * fixinc/inclhack.def (irix___generic1, irix___generic2): New.
481         * fixinc/fixincl.x: Regenerate.
482         * fixinc/tests/base/internal/math_core.h: New file.
483
484 2004-08-13  Richard Henderson  <rth@redhat.com>
485
486         * dbxout.c (NO_DBX_FUNCTION_END): Default to zero.
487         (dbxout_function_end): Remove ifdefs for it.
488         (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions.
489
490 2004-08-13  Richard Henderson  <rth@redhat.com>
491
492         * Makefile.in (insn-preds.o): Depend on TREE_H.
493         * genpreds.c (write_insn_preds_c): Include tree.h.
494         * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand,
495         reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand,
496         const48_operand, and_operand, or_operand, mode_width_operand,
497         mode_mask_operand, mul8_operand, const0_operand,
498         hard_fp_register_operand, hard_int_register_operand,
499         reg_or_cint_operand, some_operand, some_ni_operand, input_operand,
500         samegp_function_operand, direct_call_operand, small_symbolic_operand,
501         global_symbolic_operand, call_operand, symbolic_operand,
502         dtp16_symbolic_operand, dtp32_symbolic_operand,
503         gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand,
504         gottp_symbolic_operand, alpha_comparison_operator,
505         alpha_zero_comparison_operator, alpha_swapped_comparison_operator,
506         signed_comparison_operator, alpha_fp_comparison_operator,
507         divmod_operator, fix_operator, aligned_memory_operand,
508         unaligned_memory_operand, reg_or_unaligned_mem_operand,
509         any_memory_operand, reg_not_elim_operand, normal_memory_operand,
510         reg_no_subreg_operand, addition_operation): Move to predicates.md.
511         (reg_or_const_int_operand): Remove.  Replace all users with
512         reg_or_cint_operand.
513         (tls_symbolic_operand_1): Export.  Don't check mode or for CONST.
514         (resolve_reload_operand): Split out of aligned_memory_operand.
515         * config/alpha/alpha-protos.h: Update for exports.
516         * config/alpha/alpha.h (PREDICATE_CODES): Remove.
517         * config/alpha/alpha.md: Include predicates.md.
518         * config/alpha/predicates.md: New file.
519
520 2004-08-13  Richard Sandiford  <rsandifo@redhat.com>
521
522         * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno
523         fields with a pointer to the instruction definition.
524         (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent)
525         (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get)
526         (write_attr_case, write_const_num_delay_slots): Update accordingly.
527         (write_attr_case, write_const_num_delay_slots): Write the name of
528         an insn next to its case statement.
529         * genoutput.c (data): Add a filename field.
530         (gen_insn, gen_peephole, gen_expand, gen_split): Set it.
531         (output_insn_data): Print the location of each insn definition.
532         * genrecog.c (write_action): Print the name of an insn above
533         the statement that returns its code.
534
535 2004-08-12  Andrew Pinski  <pinskia@physics.uc.edu>
536
537         * config/darwin-c.c (find_subframework_file): Fix spelling of cannot.
538         * config/libgloss.h: Likewise.
539         * config/arm/arm.c (arm_gen_load_multiple): Likewise.
540         * c4x/c4x-modes.def: Likewise.
541         * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise.
542         (c4x_rptb_nop_p): Likewise.
543         (c4x_rptb_valid_p): Likewise.
544         (c4x_rptb_insert): Likewise.
545         (c4x_address_conflict): Likewise.
546         * config/c4x/c4x.md: Likewise.
547         * config/frv/frv.md: Likewise.
548         * config/i386/athlon.md: Likewise.
549         * config/i386/i386.md: Likewise.
550         * config/i386/predicates.md: Likewise.
551         * config/ia64/ia64.c: Likewise.
552         * config/ia64/itanium1.md: Likewise.
553         * config/ia64/itanium2.md: Likewise.
554         * config/iq2000/iq2000.md: Likewise.
555         * config/mcore/mcore.c: Likewise.
556         * config/mips/mips.c: Likewise.
557         * config/mips/r3900.h: Likewise.
558         * config/mips/sb1.md: Likewise.
559         * config/pa/milli64.S: Likewise.
560         * config/pa/pa.c: Likewise.
561         * config/pa/pa.h: Likewise.
562         * config/rs6000/8540.md: Likewise.
563
564 2004-08-13  Daniel Berlin  <dberlin@dberlin.org>
565
566         * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
567
568 2004-08-13  J"orn Rennecke <joern.rennecke@superh.com>
569
570         * sh.md (cbranch define_delay) Use cond_delay_slot for
571         non-anulled condition too.
572
573 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
574
575         * config/rs6000/rs6000.c (any_parallel_operand): New predicate.
576         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
577         any_parallel_operand, lmw_operation, stmw_operation,
578         mfcr_operation, mtcrf_operation.  Remove PARALLEL from any_operand.
579         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use
580         any_parallel_operand.
581         (return_and_restore_fpregs_{si,di}): Same.
582
583 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
584
585         * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL,
586         if pred->singleton != PARALLEL, issue a warning and pretend it was.
587         Also issue a warning for any predicate we don't know about.
588
589 2004-08-12  Richard Henderson  <rth@redhat.com>
590
591         * config/i386/i386.c (internal_label_prefix): Export.
592         (internal_label_prefix_len, struct ix86_address,
593         ix86_decompose_address, maybe_get_pool_constant,
594         ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes,
595         memory_address_length): Export.
596         (any_fp_register_operand, fp_register_operand,
597         register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand,
598         x86_64_general_operand, x86_64_szext_general_operand,
599         x86_64_nonmemory_operand, x86_64_movabs_operand,
600         x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
601         x86_64_zext_immediate_operand, const_int_1_31_operand,
602         symbolic_operand, pic_symbolic_operand, local_symbolic_operand,
603         tls_symbolic_operand, global_dynamic_symbolic_operand,
604         local_dynamic_symbolic_operand, initial_exec_symbolic_operand,
605         local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand,
606         constant_call_address_operand, const0_operand, const1_operand,
607         const248_operand, const_0_to_3_operand, const_0_to_7_operand,
608         const_0_to_15_operand, const_0_to_255_operand, incdec_operand,
609         shiftdi_operand, reg_no_sp_operand, mmx_reg_operand,
610         general_no_elim_operand, nonmemory_no_elim_operand,
611         index_register_operand, q_regs_operand, flags_reg_operand,
612         non_q_regs_operand, zero_extended_scalar_load_operand,
613         vector_move_operand, no_seg_address_operand, sse_comparison_operator,
614         ix86_comparison_operator, ix86_carry_flag_operator,
615         fcmov_comparison_operator, promotable_binary_operator,
616         cmp_fp_expander_operand, ext_register_operand, binary_fp_operator,
617         mult_operator, div_operator, arith_or_logical_operator,
618         memory_displacement_operand, cmpsi_operand, long_memory_operand,
619         aligned_operand): Move to predicates.md as define_predicates.
620         (tls_symbolic_operand_1): Remove.
621         (x86_64_sign_extended_value): Merge into x86_64_immediate_operand.
622         (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand.
623         (legitimize_address): Merge tls_symbolic_operand contents.
624         (ix86_expand_move): Likewise.
625         * config/i386/i386-protos.h: Update for exports.
626         * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames.
627         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove.
628         * config/i386/i386.md: Include predicates.md.
629         * config/i386/predicates.md: New file.
630
631 2004-08-13  Mark Mitchell  <mark@codesourcery.com>
632
633         PR c++/16924
634         * config/i386/winnt.c (i386_pe_mark_dllexport): Set
635         SYMBOL_REF_DECL.
636         (i386_pe_mark_dllimport): Likewise.
637         (i386_pe_encode_section_info): Likewise, when overriding
638         dllimport attribute.
639
640 2004-08-12  Geoffrey Keating  <geoffk@apple.com>
641
642         * configure.ac: When testing for flex, nm, ar, and bison, check
643         that they will actually be built.
644         * configure: Regenerate.
645
646 2004-08-12  Ulrich Weigand  <uweigand@de.ibm.com>
647
648         * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
649         (MOVE_MAX_PIECES): Define.
650
651 2004-08-12  Devang patel  <dpatel@apple.com>
652
653         * dbxout.c (dbxout_begin_prologue): New function.
654         (dbx_debug_hooks): Use new begin prologue hook.
655         (dbxout_function_end): Emit N_ENSYM.
656         * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
657
658 2004-08-12  Janis Johnson  <janis187@us.ibm.com>
659
660         * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
661         argument is float*.
662
663         * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
664         for vec_dss.
665
666         * doc/extend.texi (AltiVec builtins): Fix description for recent
667         changes.  Update operation list to match current support.
668
669 2004-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
670
671         * config/s390/s390.c (struct s390_frame_layout): New struct as element
672         of struct machine_function.
673         (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
674         changed all uses.
675         (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
676         changed all uses.
677         (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
678         (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
679         (s390_frame_area, s390_register_info): New functions.
680         (s390_optimize_prolog): Renamed to s390_optimize_prologue.  Added check
681         for base register.
682         (s390_return_addr_rtx, s390_return_address_offset)
683         (s390_va_start, s390_gimplify_va_arg)
684         (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
685         layouts.
686         (s390_frame_info): Functionality partly moved to s390_register_info.
687         Made adaptions for new stack layout.
688         (save_gprs, restore_gprs): Changed meaning of second parameter and
689         adapted all callers.
690
691         * config/s390/s390.h (s390_backchain_string): New global variable.
692         (MASK_BACKCHAIN): Removed definition.
693         (TARGET_BACKCHAIN): Changed check.
694         (TARGET_KERNEL_BACKCHAIN): New macro.
695         (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
696         (TARGET_OPTIONS): Added "backchain", "no-backchain" and
697         "kernel-backchain".
698         (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
699
700         * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
701         as condition.  Adjusted for new stack layout.
702
703         * doc/invoke.texi: Added documentation for new option
704         "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
705         "-mno-backchain".
706
707 2004-08-12  Paul Brook  <paul@codesourcery.com>
708
709         * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
710         (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
711
712 2004-08-12  David Daney  <ddaney@avtrex.com>
713
714         * java/gcj.texi:  Add subsection on signal usage.
715
716 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
717
718         * expr.c (move_by_pieces): Set alignment for move to minimum of
719         MOVE_MAX_PIECES mode alignment and the largest non-slow mode
720         alignment, but not less than the original alignment.
721         (move_by_pieces_ninsns): Same.
722         (can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
723         (store_by_pieces_1): Same.
724
725 2004-08-12  Diego Novillo  <dnovillo@redhat.com>
726
727         PR tree-optimization/16867
728         * tree.c (is_global_var): New function.
729         (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
730         Call is_global_var.
731         * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
732         Update all users.
733         (is_global_var): Declare.
734         * tree-dfa.c (dump_variable): Display global and addressable
735         attributes.
736         (add_referenced_var): Clarify documentation when marking
737         variables call-clobbered.
738         * tree-flow-inline.h (is_call_clobbered): Call is_global_var
739         instead of needs_to_live_in_memory.
740         (mark_call_clobbered): If the variable is a tag, mark it
741         DECL_EXTERNAL.
742         * tree-gimple.c (is_gimple_reg): Don't check for
743         TREE_ADDRESSABLE.
744         (is_gimple_non_addressable): Likewise.
745         * tree-ssa-alias.c (get_nmt_for): Always check whether the tag
746         needs to be marked call-clobbered.
747         (setup_pointers_and_addressables): Call is_global_var instead
748         of needs_to_live_in_memory.
749         * tree-ssa-dce.c (need_to_preserve_store): Remove.
750         Update all users with is_global_var.
751         (mark_stmt_if_obviously_necessary): Fix processing of aliased
752         stores.  Don't check the virtual definitions.  Rather, check
753         whether the store is going into global memory.
754         (find_obviously_necessary_stmts): Get the symbol from the PHI
755         result.
756         * tree-ssa-operands.c (get_call_expr_operands): Do not add
757         clobbering may-defs if the call does not have side effects.
758
759 2004-08-12  Jakub Jelinek  <jakub@redhat.com>
760
761         PR c++/16276
762         * output.h (default_function_rodata_section,
763         default_no_function_rodata_section): New prototypes.
764         * target.h (struct gcc_target): Add asm_out.function_rodata_section.
765         * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
766         (TARGET_ASM_OUT): Add it.
767         * varasm.c (default_function_rodata_section,
768         default_no_function_rodata_section): New functions.
769         * final.c (final_scan_insn): Call
770         targetm.asm_out.function_rodata_section instead of
771         readonly_data_section.
772         * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
773         * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
774         * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
775         * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
776         Likewise.
777         * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
778         * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
779         Likewise.
780         * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
781         Likewise.
782         * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
783         * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
784         * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.
785
786 2004-08-12  Paul Brook  <paul@codesourcery.com>
787
788         * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
789         frame info.
790         * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
791         DWARF2_UNWIND_INFO.
792
793 2004-08-12  Ben Elliston  <bje@au.ibm.com>
794
795         PR target/16286
796         * config/rs6000/altivec.h: Change vector to __vector throughout.
797         (Except for the `vector' macro itself).
798
799 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
800
801         * genpreds.c: Add capability to generate predicate bodies as
802         well as function prototypes.  Write function prototypes for
803         the generic predicates too.
804         (process_define_predicate, write_tm_preds_h, write_insn_preds_c)
805         (write_predicate_subfunction, mark_mode_tests, add_mode_tests)
806         (write_match_code, write_predicate_expr, write_one_predicate_function)
807         (parse_option): New functions.
808         (output_predicate_decls): Delete.
809         (main): Read the machine description, process DEFINE_PREDICATE or
810         DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
811         as appropriate.
812
813         * genrecog.c (struct decision_test): Replace index with
814         struct pred_data pointer.
815         (next_index): Remove, unused.
816         (pred_table, preds, special_mode_pred_table): Delete.
817         (compute_predicate_codes, process_define_predicate): New functions.
818         (validate_pattern, add_to_sequence, write_switch): Update for
819         new data structures.
820         (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
821         Check both error_count and have_error.
822
823         * gensupport.c (in_fname, first_predicate): New globals.
824         (define_pred_queue, define_pred_tail): New RTL-pattern queue.
825         (predicate_table, last_predicate, old_pred_table)
826         (old_special_pred_table): New statics.
827         (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
828         (add_predicate, init_predicate_table): New functions.
829         (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
830         (init_md_reader_args_cb): Use the global in_fname.  No need to zero
831         it or max_include_len.  Call init_predicate_table.
832         (read_rtx): Run the predicate queue after the attribute queue
833         but before all the others.
834         * gensupport.h (in_fname, struct pred_data, first_predicate)
835         (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
836         * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
837         (DEFINE_SPECIAL_PREDICATE): New RTL codes.
838         * dummy-conditions.c: Don't include bconfig.h, system.h,
839         coretypes.h, tm.h, or system.h.  Do include stddef.h.
840         Duplicate declaration of struct c_test from gensupport.h.
841
842         * Makefile.in (OBJS-common): Add insn-preds.o.
843         (STAGESTUFF, .PRECIOUS): Add insn-preds.c.
844         (insn-preds.c, insn-preds.o): New rules.
845         (s-preds): Also generate insn-preds.c.
846         (dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
847         Update dependencies.
848         (print-rtl.o, print-rtl1.o): Correct dependencies.
849
850         * recog.h: Delete prototypes of predicate functions.
851
852         * doc/md.texi (Predicates): New section with complete
853         documentation of operand/operator predicates.  Remove some
854         incomplete documentation of predicates from other places.
855         * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
856         PREDICATE_CODES; indicate that both are deprecated in favor
857         of define_predicate/define_special_predicate.
858
859         * config/ia64/ia64.c: All predicate function definitions moved
860         to ia64.md, except
861         (small_addr_symbolic_operand, tls_symbolic_operand): Delete.
862         (ia64_expand_load_address, ia64_expand_move):
863         Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
864
865         * config/ia64/ia64.md: All predicates now defined here.
866         (symbolic_operand): Is now a special predicate.
867
868         * config/ia64/ia64.h: Declare ia64_section_threshold.
869         (PREDICATE_CODES): Delete.
870
871 2004-08-12  Richard Henderson  <rth@redhat.com>
872
873         * c-common.h (STATEMENT_LIST_HAS_LABEL): New.
874         * c-semantics.c (add_stmt): Set it.
875         * c-decl.c (finish_decl): Use it to create a new BIND_EXPR
876         before instantiating a variable sized type.
877
878 2004-08-12  Richard Henderson  <rth@redhat.com>
879
880         * stor-layout.c (round_up, round_down): Move ...
881         * fold-const.c (round_up, round_down): ... here.  Use
882         multiple_of_p to avoid any arithmetic at all.
883
884 2004-08-12  Richard Henderson  <rth@redhat.com>
885
886         * gimplify.c (struct gimplify_init_ctor_preeval_data): New.
887         (gimplify_init_ctor_preeval_1): New.
888         (gimplify_init_ctor_preeval): New.
889         (gimplify_init_ctor_eval): New.
890         (gimplify_init_constructor): Use them.  Always gimplify the LHS
891         object first.
892
893 2004-08-12  Ziemowit Laski  <zlaski@apple.com>
894
895         (This patch is part of merge of objc-improvements-branch
896         into mainline.)
897
898         * doc/frontends.texi: Mention Objective-C++ in addition to
899         Objective-C.
900         * doc/install.texi: Add 'obj-c++' to list of configurable
901         languages.
902         * doc/invoke.texi: Rename Objective-C option headings to
903         indicate they also apply to Objective-C++.  List file
904         extensions for Objective-C++ sources.  Mention that
905         ObjC and ObjC++ compilations may also use C and C++ options,
906         respectively.  Point users to doc/standards.texi for
907         further info on ObjC and ObjC++.
908         * doc/sourcebuild.texi: Mention the objcp/ directory and
909         the Objective-C++ sources it contains.
910         * doc/standards.texi: Update link to Apple ObjC site;
911         add link to gcc readings.html WWW doc.
912
913 2004-08-12  Alan Modra  <amodra@bigpond.net.au>
914
915         * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
916         and 2004-07-14 changes.
917
918 2004-08-12  Paul Brook  <paul@codesourcery.com>
919
920         * doc/invoke.texi: Fix typo.
921
922 2004-08-11 Devang Patel  <dpatel@apple.com>
923
924         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
925         and -no_dead_strip_inits_and_terms.
926         (LINK_SPEC): Same.
927         * doc/invoke.texi (Darwin Options): Document -dead_strip and
928         -no_dead_strip_inits_and_terms.
929
930 2004-08-11  Paul Brook  <paul@codesourcery.com>
931
932         * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
933         (arm_load_pic_register): ... to this.
934         * config/arm/arm.c (arm_finalize_pic): Rename ...
935         (arm_load_pic_register): ... to this.  Always output insns at the
936         current location.  Load via low reg in thumb mode.
937         (arm_expand_prologue): Call arm_load_pic_register.
938         (thumb_expand_prologue): Ditto.
939         * config/arm/arm.h (FINALIZE_PIC): Remove.
940         * config/arm/arm.md (builtin_setjmp_receiver): Call
941         arm_load_pic_register.
942
943 2004-08-11  Paul Brook  <paul@codesourcery.com>
944
945         * arm.c (thumb_force_lr_save): Add prototype.
946         (thumb_compute_save_reg_mask): New function.
947         (thumb_find_work_register): New function.
948         (arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
949         (thumb_unexpanded_epilogue): Ditto.  Remove redundant code.
950         Don't clobber r3 when removing pretend args.
951         (thumb_expand_prologue): Use thumb_compute_save_reg_mask.
952         (thumb_output_function_prologue): Use new functions.
953         (thumb_set_return_address): Use thumb_compute_save_reg_mask.
954         * arm.h (THUMB_REG_PUSHED_P): Remove.
955
956 2004-08-11  James E Wilson  <wilson@specifixinc.com>
957
958         PR rtl-optimization/16490
959         * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and
960         global_live_at_end for new basic block if already set for other blocks.
961
962 2004-08-11 David Edelsohn  <edelsohn@gnu.org>
963
964         * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
965
966         * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
967         (mfcr rlwinm rlwinm patterns): Set length to 12.
968
969 2004-08-11  Andrew MacLeod  <amacleod@redhat.com>
970
971         * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
972         get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
973         (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
974         (start_ssa_stmt_operands): Delete.
975         * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new
976         struct stmt_operands_d.
977         (build_ssa_operands): New extern entry point.
978         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand
979         building code, replace with create_ssa_artficial_load_stmt().
980         * tree-ssa-operands.c (struct voperands_d): Delete.
981         (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
982         (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
983         (free_uses, free_defs, free_vuses, free_v_may_defs,
984         free_v_must_defs): Remove dealloc parameter.
985         (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
986         (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
987         finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
988         vector comparisons, ssa_name reuse, and allocations here.
989         (verify_start_operands): Delete.
990         (finalize_ssa_stmt_operands): Set new operands by calling finalize
991         routines.
992         (start_ssa_stmt_operands): Move from tree-flow-inline.h.
993         (append_def, append_usei): Simplify to simple accumulation.
994         (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
995         duplicates and simple accumulation.
996         (free_ssa_operands): Free vectors in a stmt_operand structure.
997         (build_ssa_operands): New. Create a new stmt_operand structure from
998         a stmt and an old set of stmt_operands.
999         (get_stmt_operands): Simplify and call build_ssa_operands.
1000         (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
1001         get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
1002         add_call_read_ops): Don't pass prev_vops around anymore.
1003         (note_addressable): Return if no stmt annotation.
1004         (copy_virtual_operands): Access v_may_def operands through a struct.
1005         (create_ssa_artficial_load_stmt): New.  Create a load stmt for DOM's
1006         hash tables without treating the stmt as a real stmt.
1007         * tree-ssa-operands.h (struct v_may_def_operand_type): New.  Access
1008         v_may_def def and use through a struct instead of 2 array elements.
1009         (struct v_may_def_optype_d): Use v_may_def_operand_type.
1010         (struct stmt_operands_d): New.  Struct for storing all operand vectors.
1011
1012 2004-08-11  Nick Clifton  <nickc@redhat.com>
1013
1014         * config/arm/arm.c (arm_is_longcall_p): Update comment describing
1015         this funciton's behaviour.  Return true when the current function
1016         has a section attribute and -mlong-calls is in effect.
1017         * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the
1018         short-call marker when -mlong-calls is in effect and the function
1019         has a section attribute.
1020
1021 2004-08-10  Zack Weinberg  <zack@codesourcery.com>
1022
1023         * stmt.c (expand_return): If asked to return the RESULT_DECL,
1024         just call expand_value_return on result_rtl.
1025
1026 2004-08-10  Richard Henderson  <rth@redhat.com>
1027
1028         * builtins.def (BUILT_IN_STACK_ALLOC): Remove.
1029         * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
1030         * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
1031         (add_location_or_const_value_attribute): ... not here.  Use
1032         loc_descriptor_from_tree if possible.
1033         (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
1034         Simplify address handling.  Handle DECL_VALUE_EXPR.  Handle register
1035         values specially.
1036         (loc_descriptor_from_tree): New.  Update callers.
1037         * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
1038         * gimplify.c (gimplify_decl_expr): Lower variable sized types to
1039         pointer plus dereference.  Set DECL_VALUE_EXPR.  Set save_stack.
1040         (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
1041         and BUILT_IN_STACK_RESTORE.
1042         (gimplify_expr): Lower DECL_VALUE_EXPR decls.
1043         * stmt.c (expand_stack_alloc): Remove.
1044         * tree-mudflap.c (mx_register_decls): Don't look for
1045         BUILT_IN_STACK_ALLOC.
1046         * tree-nested.c (convert_local_reference): Likewise.
1047         * tree.h (DECL_VALUE_EXPR): New.
1048
1049 2004-08-10  Richard Henderson  <rth@redhat.com>
1050
1051         * stor-layout.c (round_up): Check for 0/1 before dividing.
1052         (round_down): Likewise.
1053
1054         * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
1055
1056 2004-08-09  Mark Mitchell  <mark@codesourcery.com>
1057
1058         * config.gcc (arm*-*-eabi*): New target.
1059         * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
1060         (TARGET_LIB_INT_CMP_BIASED): Likewise.
1061         * expmed.c (expand_divmod): Try a two-valued divmod function as a
1062         last resort.
1063         * gthr.h: Remove bogus tokens at end of #pragma.
1064         * optabs.c (expand_twoval_binop_libfunc): New function.
1065         (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
1066         (prepare_float_lib_cmp): Try reversing the condition.
1067         (debug_optab_libfuncs): New function.
1068         * optabs.h (expand_twoval_binop_libfunc): Declare.
1069         * config/arm/arm.c (arm_init_libfuncs): New function.
1070         (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
1071         (TARGET_INIT_LIBFUNCS): Define it.
1072         * config/arm/arm.h (TARGET_BPABI): New macro.
1073         * config/arm/arm-protos.h
1074         (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
1075         * config/arm/bpabi.S: New file.
1076         * config/arm/bpabi.c: Likewise.
1077         * config/arm/bpabi.h: Likewise.
1078         * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
1079         (__aeabi_drsub): Likewise.
1080         (__aeabi_dsub): Likewise.
1081         (__aeabi_dadd): Likewise.
1082         (__aeabi_ui2d): Likewise.
1083         (__aeabi_i2d): Likewise.
1084         (__aeabi_f2d): Likewise.
1085         (__aeabi_dmul): Likewise.
1086         (__aeabi_ddiv): Likewise.
1087         (__aeabi_cdrcmple): Likewise.
1088         (__aeabi_cdcmpeq): Likewise.
1089         (__aeabi_cdcmple): Likewise.
1090         (__aeabi_dcmpeq): Likewise.
1091         (__aeabi_dcmplt): Likewise.
1092         (__aeabi_dcmple): Likewise.
1093         (__aeabi_dcmpge): Likewise.
1094         (__aeabi_dcmpgt): Likewise.
1095         (__aeabi_dcmpun): Likewise.
1096         (__aeabi_d2iz): Likewise.
1097         (__aeabi_d2uiz): Likewise.
1098         (__aeabi_d2f): Likewise.
1099         * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
1100         (__aeabi_frsub): Likewise.
1101         (__aeabi_fsub): Likewise.
1102         (__aeabi_fadd): Likewise.
1103         (__aeabi_ui2f): Likewise.
1104         (__aeabi_i2f): Likewise.
1105         (__aeabi_fmul): Likewise.
1106         (__aeabi_fdiv): Likewise.
1107         (__aeabi_cfrcmple): Likewise.
1108         (__aeabi_cfcmpeq): Likewise.
1109         (__aeabi_cfcmple): Likewise.
1110         (__aeabi_fcmpeq): Likewise.
1111         (__aeabi_fcmplt): Likewise.
1112         (__aeabi_fcmple): Likewise.
1113         (__aeabi_fcmpge): Likewise.
1114         (__aeabi_fcmpgt): Likewise.
1115         (__aeabi_fcmpun): Likewise.
1116         (__aeabi_f2iz): Likewise.
1117         (__aeabi_f2uiz): Likewise.
1118         * config/arm/lib1funcs.asm (ARM_CALL): New macro.
1119         (__aeabi_uidivmod): New function or alias.
1120         (__aeabi_idivmod): Likewise.
1121         (__aeabi_idiv0): Likewise.
1122         (__aeabi_ldiv0): Likewise.
1123         (__aeabi_llsr): Likewise.
1124         (__aeabi_lasr): Likewise.
1125         (__aeabi_llsl): Likewise.
1126         (bpabi.S): Include it.
1127         * config/arm/libgcc-bpabi.ver: New file.
1128         * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
1129         (LINK_SPEC): Remove.
1130         * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
1131         __aeabi_ulcmp.
1132         * config/arm/t-bpabi: New file.
1133         * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
1134         (TARGET_LIB_INT_CMP_BIASED): Likewise.
1135
1136 2004-08-10  David Edelsohn  <edelsohn@gnu.org>
1137
1138         * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
1139         * config/rs6000/rs6000.md (clrmemsi): New pattern.
1140         * config/rs6000/rs6000.c (expand_block_clear): New function.
1141         (expand_block_move): Convert alignment to bits.  Use SImode and
1142         HImode for unaligned addresses if not STRICT_ALIGNMENT.
1143
1144 2004-08-10  Caroline Tice  <ctice@apple.com>
1145
1146         * varasm.c (unlikely_section_label): New global variable.
1147         (unlikely_text_section_name): New global variable.
1148         (text_section):  Remove alignment statement.
1149         (unlikely_text_section): Remove alignment statement; use
1150         unlikely_section_label rather than hard-coded string.
1151         (assemble_start_function): Initialize unlikely_section_label and
1152         unlikely_text_section_name;  make sure cold section is properly
1153         aligned at start of function; output unlikely_section_label if
1154         appropriate.
1155
1156 2004-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
1157
1158         * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
1159         * config/s390/s390.c (s390_canonicalize_comparison): New function.
1160         * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
1161         * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
1162         "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
1163         ("*tmqi_mem"): Remove SUBREG from pattern.
1164         ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
1165         ("*andsi3_cconly"): Likewise.
1166
1167 2004-08-10  H.J. Lu  <hongjiu.lu@intel.com>
1168
1169         PR target/16909
1170         * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
1171
1172 2004-08-10  Janis Johnson  <janis187@us.ibm.com>
1173
1174         * doc/sourcebuild.texi (compat testing): Document available test
1175         framework commands.  Use the preferred spelling of DejaGnu.
1176
1177 2004-08-10  Daniel Berlin <dberlin@dberlin.org>
1178
1179         * lambda.h: Add matrix type, and prototypes for remainder of
1180         matrix and vector functions.
1181         (lambda_vector_mult_const): New function.
1182         (lambda_vector_negate): Ditto.
1183         (lambda_vector_add): Ditto.
1184         (lambda_vector_add_mc): Ditto.
1185         (lambda_vector_copy): Ditto.
1186         (lambda_vector_zerop): Ditto.
1187         (lambda_vector_equal): Ditto.
1188         (lambda_vector_min_nz): Ditto.
1189         (lambda_vector_first_nz): Ditto.
1190         (lambda_vector_matrix_mult): Ditto.
1191         * lambda-mat.c: New file.
1192         * Makefile.in (lambda-mat.o): New.
1193
1194 2004-08-10  Andrew MacLeod  <amacleod@redhat.com>
1195
1196         * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
1197         after linking stmt into the program.
1198         (bsi_remove): Don't call modify_stmt.
1199         * tree-complex.c (update_complex_assignment,
1200         expand_complex_comparison): Call modify_stmt after changing the stmt.
1201         * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
1202         removing the stmt.
1203         * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
1204         the stmt, and only if needed.
1205         * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
1206         expression.
1207         (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
1208         (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
1209         (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
1210         (eliminate_redundant_computations): Don't pass an annotation. Call
1211         modify_stmt rather than setting the annotation directly.
1212         (record_equivalences_from_stmt): Remove unused local 'j'.
1213         (cprop_operand): Take a stmt rather than an annotation as a parameter.
1214         Call modify_stmt.
1215         (cprop_into_stmt): Pass stmt rather than annotation.
1216         (update_rhs_and_lookup_avail_expr): Call modify_stmt.
1217         * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
1218         modify_stmt.
1219         * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
1220
1221 2004-08-10  Jason Merrill  <jason@redhat.com>
1222
1223         PR middle-end/16948
1224         * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
1225         the RESULT_DECL.
1226
1227 2004-08-10  Geoffrey Keating  <geoffk@apple.com>
1228
1229         * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
1230         hash function.
1231
1232 2004-08-10  Roger Sayle  <roger@eyesopen.com>
1233
1234         * config/mips/mips.md: New reciprocal square root patterns that
1235         match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
1236
1237 2004-08-10  Paul Brook  <paul@codesourcery.com>
1238
1239         * config/arm/arm-protos.h (arm_set_return_address,
1240         thumb_set_return_address): Add prototypes.
1241         * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
1242         * config/arm/arm.c (arm_compute_func_type,
1243         use_return_insn, arm_compute_save_reg0_reg12_mask,
1244         arm_compute_save_reg_mask, arm_output_function_prologue,
1245         arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
1246         current_function_calls_eh_return.
1247         (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
1248         old eh code.
1249         (arm_set_return_address, thumb_set_return_address): New functions.
1250         * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
1251         ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
1252         * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
1253         (epilogue): Use the stackadj register.
1254         (eh_return, arm_eh_return, thumb_eh_return): New pattern.
1255
1256 2004-08-10  Jakub Jelinek  <jakub@redhat.com>
1257
1258         PR target/3144
1259         * expr.c (move_by_pieces_ninsns): Add max_size argument.
1260         (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
1261         (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
1262         (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
1263         but using MOVE_RATIO.
1264         (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
1265         (can_store_by_pieces): Change max_size type to unsigned int.
1266         (store_by_pieces_1): Likewise.  Pass max_size to
1267         move_by_pieces_ninsns.
1268         * config/s390/s390.h (STORE_BY_PIECES_P): Define.
1269         * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
1270         to move_by_pieces_ninsns.
1271         (STORE_BY_PIECES_P): Define.
1272         * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
1273         to move_by_pieces_ninsns.
1274         * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
1275
1276         * config/i386/i386.h (CLEAR_RATIO): Define.
1277
1278 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
1279
1280         * expr.c (expand_expr_real_1): Add back code that was not dead.
1281
1282 2004-08-09  Andrew Pinski  <apinski@apple.com>
1283
1284         * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
1285         which is found to be compatible before returning the aliasing set.
1286
1287 2004-08-09  Daniel Jacobowitz  <dan@debian.org>
1288
1289         * ggc-zone.c (struct alloc_zone): Add statistics counters.
1290         (always_collect): New flag.
1291         (ggc_alloc_zone_1): Update statistics support.  Don't include
1292         overhead in allocated counter.
1293         (sweep_pages): Update allocated counter for large pages.  Don'y
1294         include overhead.
1295         (ggc_collect_1): Always collect.
1296         (ggc_collect): Honor always_collect flag.  Sum all zones to decide
1297         whether to collect.
1298         (SCALE, LABEL): New macros.
1299         (ggc_print_statistics): Add statistics support.
1300
1301 2004-08-09  Roger Sayle  <roger@eyesopen.com>
1302
1303         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
1304         (init_expmed): Fix potential overrun problem with "all.reg".
1305         (expand_sdiv2_pow2): Add an alternate implementation for signed
1306         division, if the target provides a suitable conditional move insn.
1307
1308 2004-08-09  Paul Brook  <paul@codesourcery.com>
1309         Richard Henderson  <rth@redhat.com>
1310
1311         * unwind-dw2.c (uw_install_context_1): Update target saved stack
1312         pointer.
1313
1314 2004-08-09  Geoffrey Keating  <geoffk@apple.com>
1315
1316         * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
1317         Check DATA limit only if there's no AS limit.  Ignore insanely
1318         low DATA limits.
1319         (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
1320         but take care that the AS limit isn't overrun.
1321         * doc/invoke.texi: Update documentation of min-heapsize parameter.
1322
1323 2004-08-09  Jeff Law  <law@redhat.com>
1324
1325         * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
1326         (tree-ssa-threadupdate.o): Add dependencies.
1327         * tree-ssa-threadupdate.c: New file.
1328         * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
1329         (rewrite_vars_out_of_ssa): Remove prototype.
1330         (cleanup_tree_cfg): Returns a bool.
1331         * tree.h (thread_through_all_blocks): Prototype.
1332         * tree-outof-ssa.c  (SSANORM_*): Move into here.
1333         (remove_ssa_form): Now static.
1334         (rewrite_vars_out_of_ssa): Kill.
1335         * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
1336         * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
1337         (remove_ssa_form, register_partitions_for_vars): Kill declarations.
1338         * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
1339         anything was changed.
1340         * tree-phinodes.c (add_phi_arg): Get the block for the PHI
1341         from the PHI's annotation rather than the edge associated with
1342         the new argument.
1343         * tree-ssa-dom.c (redirection_edges): Kill.
1344         (redirect_edges_and_update_ssa_graph): Kill.
1345         (tree_ssa_dominator_optimize): Do not reset forwardable flag
1346         for blocks anymore.  Do not initialize redirection_edges.
1347         Call thread_through_all_blocks.  Simplify code for cleanup
1348         of the CFG and iterating.  No longer call cleanup_tree_cfg
1349         outside the iteration loop.
1350         (thread_across_edge): No longer mess with forwardable blocks.
1351
1352 2004-08-09  Zack Weinberg  <zack@codesourcery.com>
1353
1354         * explow.c (memory_address): Use memory_address_p.
1355         * recog.c (general_operand): Likewise.
1356         * regrename.c: No need to define REG_OK_STRICT.
1357
1358 2004-08-09  Steven Bosscher  <stevenb@suse.de>
1359
1360         * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
1361         New timers.
1362         * gcse.c: Include timevar.h.
1363         (const_prop_count, copy_prop_count): Rename to global_const_prop_count
1364         and global_copy_prop_count.
1365         (local_const_prop_count, local_copy_prop_count): New static globals.
1366         (gcse_main): Set the right timevar for each pass.
1367         (cprop_jump): Increment global_const_prop_count when a constant is
1368         propagated.  Add "GLOBAL" to dump output.
1369         (cprop_insn): Increment global_const_prop_count when a constant is
1370         propagated, or global_copy_prop_count when a copy is propagated.
1371         (do_local_cprop): Likewise for local_const_prop_count and
1372         local_copy_prop_count.
1373         (one_cprop_pass): Initialize const/cprop counters to zero.
1374         Print out results of local and global const/cprop separately.
1375         (bypass_block): Break over-length line.
1376         * Makefile.in (gcse.o): Add TIMEVAR_H dependency.  Fix dependencies
1377         for bb-reorder.o and tracer.o.
1378
1379 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
1380
1381         * Makefile.in (GTFILES): Remove stmt.c
1382         (stmt.o): Do not depend on gt-stmt.h.
1383         * emit-rtl.c (emit_line_note): Do not call
1384         set_file_and_line_for_stmt.
1385         * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
1386         do everything.
1387         * function.c (free_after_parsing): Do not free STMT field.
1388         (allocate_struct_function): Do not call init_stmt_for_function.
1389         (assign_stack_temp_for_type): Do not accept values of keep
1390         other than 0 or 1.
1391         (init_temp_slots): Do not initialize removed variables.
1392         * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
1393         and X_VAR_TEMP_SLOT_LEVEL fields.
1394         * rtl.h (set_file_and_line_for_stmt): Remove.
1395         * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
1396         struct stmt_status, cond_stack, case_stack, nesting_stack,
1397         nesting_depth, emit_locus, set_file_and_line_for_stmt,
1398         same_case_target_p, init_stmt_for_function, emit_nop,
1399         expand_start_cond, expand_start_elseif, expand_start_else,
1400         expand_elseif, expand_end_cond): Remove.
1401         (preserve_subexpressions_p): Remove references to CFUN->STMT.
1402         (expand_start_case, expand_end_case_type): Remove, merge into...
1403         (expand_case): ... this one, including other bits from
1404         expand_expr_real_1.  Inline same_case_target_p.  Turn members
1405         of CASE_STACK into local variables.
1406         (emit_case_bit_tests): Inline same_case_target_p.
1407         (add_case_node): Add HEAD argument, return new head of the list,
1408         do not handle default label here.
1409         * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
1410         expand_start_elseif, current_nesting_level, expand_start_case,
1411         expand_end_case_type, expand_end_case, add_case_node,
1412         init_stmt_for_function, expand_elseif): Remove prototypes.
1413         (expand_case): Add prototype.
1414
1415 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
1416
1417         * expr.c (expand_expr_real_1): Use optab_for_tree_code.
1418
1419 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
1420
1421         * expr.c (var_rtx): Remove.
1422         (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
1423         LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
1424         TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
1425         Abort.
1426         (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
1427         * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
1428         * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
1429
1430 2004-08-08  Mostafa Hagog  <mustafa@il.ibm.com>
1431         Ayal Zaks <zaks@il.ibm.com>
1432
1433         * common.opt (freschedule-modulo-scheduled-loops): New flag.
1434         * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
1435         * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
1436         when -freschedule-modulo-scheduled-loops flag is not specified.
1437         (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
1438         add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
1439         More accurate placing of insn in row of partial schedule.
1440         (ps_insn_find_column): New function.
1441         * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
1442         * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
1443         (schedule_region): Use sched_is_disabled_for_current_region_p.
1444         * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
1445
1446 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
1447
1448         * config/i386/i386.c (ix86_expand_clrmem): Revert the last
1449         change.
1450
1451 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
1452
1453         * config/i386/i386.c (ix86_expand_clrmem): Properly call
1454         gen_strset for 64bit target.
1455
1456 2004-08-07  Olivier Hainque  <hainque@act-europe.fr>
1457
1458         * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
1459
1460 2004-08-07  Jason Merrill  <jason@redhat.com>
1461
1462         Make return in memory explicit.
1463         * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
1464         (assign_parm_find_data_types): Remove code for old front end
1465         invisible reference handling.
1466         (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
1467         (expand_function_end): Likewise.
1468         * gimplify.c (gimplify_return_expr): Handle a dereferenced
1469         RESULT_DECL.
1470         * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
1471         (declare_return_variable): Handle DECL_BY_REFERENCE.
1472         * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
1473         (cp_genericize_r): Use convert_from_reference.
1474         Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
1475         (cp_genericize): Handle the RESULT_DECL.  Unset TREE_ADDRESSABLE.
1476
1477         * c-common.c (c_warn_unused_result): Check TREE_USED before
1478         warning about a CALL_EXPR with an unused value.
1479
1480 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
1481
1482         * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
1483         to the compiler.  Use -fshort-wchar by default.
1484
1485 2004-08-06  Pat Haugen  <pthaugen@us.ibm.com>
1486
1487         * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
1488         * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
1489         threshhold.
1490         * doc/invoke.texi (param): Document min-crossjump-insns.
1491
1492 2004-08-06  Richard Sandiford  <rsandifo@redhat.com>
1493
1494         PR c/13282
1495         * c.opt (Wmissing-field-initializers): New option.
1496         * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
1497         * c-typeck.c (pop_init_level): Guard the missing field warning with
1498         warn_missing_field_initializers rather than extra_warnings.
1499         * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
1500         some of the explanation from...
1501         (-Wextra): ...here.  Say that the missing field warning can be
1502         seperately controlled by -Wmissing-field-initializers.
1503
1504 2004-08-06  Paolo Bonzini  <bonzini@gnu.org>
1505
1506         * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
1507         * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
1508         * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
1509         * tree.def (ENTRY_VALUE_EXPR): Remove.
1510
1511 2004-08-06  Jakub Jelinek  <jakub@redhat.com>
1512
1513         * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
1514         the places where it is actually needed.  Don't use repz; stosb
1515         for -Os with sufficiently small constant sizes.
1516         For sufficiently small repz; stos{l,q} repeat counts use a sequence
1517         of stos{l,q} instructions instead.
1518
1519 2004-08-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1520
1521         PR tree-optimization/16807
1522         * loop-iv.c (dump_iv_info): Dump invariants correctly.
1523         (iv_subreg, iv_extend): Express value of invariant purely in
1524         base field.
1525
1526 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
1527
1528         * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
1529         (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
1530
1531 2004-08-06  Roman Zippel  <zippel@linux-m68k.org>
1532
1533         * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
1534         * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
1535         pre_dec_operand.
1536         * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
1537         pattern until reload is finished to allow better code generation
1538         and split them completely into separate instrunctions.
1539         (*andsi3_split): New pattern.
1540
1541 2004-08-05  Mark Mitchell  <mark@codesourcery.com>
1542
1543         * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
1544         Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P.  Set
1545         DECL_VISIBLITY.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
1546         * tree.h (handle_dll_attribute): Declare.  Test
1547         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
1548         * c-common.h (c_determine_visibility): Declare.
1549         * c-common.c (c_determine_visibility): New function.
1550         * c-decl.c (finish_decl): Use it.
1551         (finish_function): Likewise.
1552         * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
1553         zero, by default.  Use #if, not #ifdef, to test it.
1554         * config/arm/arm.c (arm_attribute_table): Use
1555         handle_dll_attribute.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
1556         #if.
1557         * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
1558         * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
1559         to 1.
1560         * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
1561         * config/i386/i386.c (ix86_attribute_table): Use
1562         handle_dll_attribute for dllimport/dllexport.  Test
1563         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
1564         * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
1565         * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
1566         it to 1.
1567         * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
1568         with #if.
1569         * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
1570         it to 1.
1571         * doc/extend.texi (dllexport): Clarify and correct documentation.
1572         (dllimport): Likewise.
1573         * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
1574         handle_dll_attribute.
1575
1576 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1577
1578         * tree-ssa-loop-manip.c: New file.
1579         * Makefile.in (tree-ssa-loop-manip.o): Add.
1580         * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
1581         Declare.
1582         * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
1583         form.
1584         (tree_ssa_loop_done): Verify loop closed ssa form.
1585         * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
1586
1587 2004-08-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1588
1589         * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
1590         pa_asm_output_aligned_local): New functions.
1591         * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
1592         pa_asm_output_aligned_common and pa_asm_output_aligned_local.
1593         * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
1594         pa_asm_output_aligned_common.
1595         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
1596         * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
1597         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
1598         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
1599         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
1600         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
1601         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
1602         * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
1603         common data.
1604
1605 2004-08-05  Andrew Pinski  <apinski@apple.com>
1606
1607         * objc/objc-act.c (build_objc_string_object): Mark the address
1608         expression as constant.
1609
1610 2004-08-05  David Edelsohn  <edelsohn@gnu.org>
1611
1612         * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
1613         and mask64_operand thinkos.  Handle ZERO_EXTRACT.  Handle
1614         SIGN_EXTEND / ZERO_EXTEND of MEM.  Handle rlwinm patterns.
1615
1616 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
1617
1618         * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
1619         Remove definitions conditioned on USE_GNULIBC_1 or conditioned
1620         out, and associated obsolete comments.
1621
1622 2004-08-05  Nathan Sidwell  <nathan@codesourcery.com>
1623
1624         * tree.h (force_fit_type): Return a tree, take three flags.
1625         * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
1626         TREE_CONSTANT_OVERFLOW here.
1627         (int_const_binop, const_binop): Adjust.
1628         (size_int_type): Do sign extension here.
1629         (fold_convert_const, optimize_bit_field_compare,
1630         decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
1631         fold_negate_const, fold_abs_const, fold_not_const): Adjust.
1632         * tree.c (size_in_bytes, int_fits_type_p): Adjust.
1633
1634 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1635
1636         PR tree-optimization/16864
1637         * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
1638         for ssa names without default_def.
1639
1640 2004-08-05  Richard Sandiford  <rsandifo@redhat.com>
1641
1642         * config/i386/i386.c (ix86_expand_prologue): If the function uses a
1643         frame pointer, restore eax with an ebp-relative address.
1644
1645 2004-08-04  Geoffrey Keating  <geoffk@apple.com>
1646
1647         PR 14516
1648         * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
1649         * c-common.h (make_rtl_for_local_static): Delete.
1650         * c-decl.c (shadow_tag_warned): Clean up comment.
1651         (finish_decl): Clean up spacing.  Use set_user_assembler_name when
1652         appropriate.  Don't pass asmspec to rest_of_decl_compilation.
1653         * c-semantics.c (make_rtl_for_local_static): Delete.
1654         * expr.c (init_block_move_fn): Use set_user_assembler_name.
1655         (init_block_clear_fn): Likewise.
1656         * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
1657         expect it to be in DECL_ASSEMBLER_NAME.  Update callers in many files.
1658         * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
1659         * tree.h (make_decl_rtl): Remove second parameter.
1660         (set_user_assembler_name): New.
1661         * varasm.c (set_user_assembler_name): New.
1662         (make_decl_rtl): Remove second parameter.  Update callers in many
1663         files.
1664
1665 2004-08-05  Adam Nemet  <anemet@lnxw.com>
1666
1667         * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
1668         (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*.  Update
1669         to LynxOS 4.0.
1670         * gthr-lynx.h: New file.
1671         * config/lynx-ng.h: Remove file.
1672         * config/lynx.h: Update to LynxOS 4.0.
1673         * config/t-lynx: New file.
1674         * config/i386/lynx-ng.h: Remove file.
1675         * config/i386/lynx.h: Update to LynxOS 4.0.
1676         * config/rs6000/lynxbase.h: Remove file.
1677         * config/rs6000/lynx.h: Update to LynxOS 4.0.
1678         * config/rs6000/t-lynx: New file.
1679         * doc/install.texi (Options specification): Remove reference to
1680         LynxOS from systems where --with-gnu-as makes a difference.
1681
1682 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
1683
1684         * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
1685         __UINTMAX_TYPE__.
1686         * c-cppbuiltin.c (builtin_define_stdint_macros): New.  Define
1687         __INTMAX_MAX__.
1688         (c_cpp_builtins): Call it.
1689         * doc/cpp.texi: Update.
1690
1691 2004-08-04  David Edelsohn  <edelsohn@gnu.org>
1692
1693         * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
1694         cost.
1695
1696 2004-08-04  Jan Hubicka  <jh@suse.cz>
1697
1698         * basic-block.h (profile_staus): New global variable.
1699         * cfg.c (profile_status): Declare.
1700         (check_bb_profile): Break out from ....; use profile_status
1701         (dump_flow_info): ... here.
1702         * cfgbuild.c (find_basic_blocks): Set profile_status.
1703         * cfgexpand.c (tree_expand_cfg): Likewise.
1704         * predict.c (estimate_probability): Likewise.
1705         * profile.c (branch_prob): Likewise.
1706         * tree-cfg.c (build_tree_cfg): Likewise.
1707         (dump_function_to_file): Use check_bb_profile.
1708         * tree-pretty-print (dump_bb_header): Likewise.
1709         * tree-profile.c (do_tree_profiling): Cleanup.
1710
1711 2004-08-04  Zack Weinberg  <zack@codesourcery.com>
1712
1713         * Makefile.in (RTL_BASE_H, RTL_H): Correct.
1714         (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
1715         (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
1716         (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
1717         (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
1718         (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
1719         (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
1720         (ggc-none.o, errors.o): Move rule to generators section;
1721         correct dependencies.
1722         (min-insn-modes.o): Move rule to generators section; remove
1723         unnecessary explicit command; correct dependencies.
1724         (print-rtl.o, print-rtl1.o): Correct dependencies.
1725         ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
1726         (mostlyclean): Update.
1727
1728         * errors.c: Include bconfig.h not config.h.  Correct comment.
1729         * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
1730         * ggc-none.c: Include bconfig.h; not config.h or tm.h.
1731         * print-rtl.c: Don't include tm_p.h.
1732
1733         * rtl.h: Move forward-decl of struct function down where it's
1734         needed.  Include genrtl.h #ifndef GENERATOR_FILE, not
1735         #ifndef NO_GENRTL_H.  Remove unnecessary #ifdef BUFSIZ statements.
1736
1737 2004-08-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1738             Jeff Law  <law@redhat.com>
1739
1740         * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
1741         * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
1742         * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
1743         manipulate the duplicated ssa names.
1744         * tree-ssanames.c (ssa_names_to_rewrite): New variable.
1745         (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
1746         unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
1747         New functions.
1748         (release_ssa_name): Do not release ssa names that may have multiple
1749         definitions.
1750         * tree.h (release_ssa_name_force, mark_for_rewrite,
1751         unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
1752         marked_ssa_names): Declare.
1753         * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
1754         (duplicate_blocks): Remove call to mark_defs_for_rewrite.
1755         Update call to rewrite_ssa_into_ssa.
1756
1757 2004-08-04  Mark Mitchell  <mark@codesourcery.com>
1758
1759         * defaults.h (TARGET_DECLSPEC): New macro.
1760         * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
1761         * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
1762         * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
1763         * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
1764         __declspec support.
1765         (TARGET_DECLSPEC): Define.
1766         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
1767         __declspec support.
1768         * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
1769         __declspec support.
1770         (TARGET_DECLSPEC): Define.
1771         * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
1772         __declspec support.
1773         * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
1774         support.
1775         * doc/tm.texi (TARGET_DECLSPEC): Document.
1776
1777         * doc/extend.texi: Fix typo in comment.
1778
1779 2004-08-04  Paul Brook  <paul@codesourcery.com>
1780
1781         * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
1782         (TARGET_CXX): Use it.
1783         * target.h (struct gcc_target): Add cdtor_returns_this.
1784         * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
1785         (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
1786         * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
1787
1788 2004-08-03  Nathan Sidwell  <nathan@codesourcery.com>
1789
1790         * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
1791         low/high pair. Do range checking directly.
1792         (interpret_integer): Adjust.
1793
1794 2004-08-04  Nick Clifton  <nickc@redhat.com>
1795
1796         * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
1797         GCC ABI.
1798         * doc/invoke.texi: Document this new switch and also the -mrenesas
1799         switch.
1800
1801 2004-08-04  Nathan Sidwell  <nathan@codesourcery.com>
1802
1803         * cfglayout.c (insn_locators_initialize): Update the current
1804         location before initializing a location.
1805
1806 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
1807
1808         * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
1809         (dbxout_function_end): Return after emitting the "Lscope" symbol
1810         under the same conditions that this function formerly wasn't called.
1811         Add explanatory comments.
1812
1813         PR 14860
1814         * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
1815         on the new decl.
1816
1817         PR 13956
1818         * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
1819         functions, broken out of dbxout_block.
1820         (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
1821         stabs too, if it contains symbols.  Use the begin_label and
1822         the Lscope label (emitted by dbxout_function_end) for the
1823         range of this block.
1824
1825 2004-08-03  Nathanael Nerode  <neroden@gcc.gnu.org>
1826
1827         * doc/install.texi: Update autoconf version requirements.
1828
1829 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
1830
1831         * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
1832         * recog.c (general_operand, immediate_operand, nonmemory_operand)
1833         (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
1834         * regclass.c (record_reg_classes): Likewise.
1835         * reload.c (find_reloads): Likewise.
1836         * reload1.c (reload): Likewise.
1837
1838 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
1839
1840         * gensupport.c (init_md_reader_args_cb): Renamed from
1841         init_md_reader_args.  Add third option, callback function for
1842         parsing program-specific options.  Add diagnosis of incorrect
1843         number of input files.
1844         (init_md_reader): Fold into init_md_reader_args_cb.
1845         (init_md_reader_args): Now a thin wrapper around
1846         init_md_reader_args_cb.
1847         * gensupport.h: Update prototypes.
1848
1849         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
1850         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
1851         * genrecog.c: No need to diagnose lack of an input file;
1852         init_md_reader_args will handle it.
1853         * genconditions.c: Likewise, and use init_md_reader_args.
1854         * genconstants.c: Likewise, and no need to call read_md_rtx.
1855
1856 2004-08-03  Joseph S. Myers  <jsm@polyomino.org.uk>
1857
1858         * c-decl.c (implicitly_declare): Diagnose incompatible implicit
1859         declarations.
1860
1861 2004-08-03  Mike Stump  <mrs@apple.com>
1862
1863         * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
1864         for frameworks.
1865         * doc/invoke.texi (Darwin Options): Update to reflect above.
1866
1867 2004-08-03  Roger Sayle  <roger@eyesopen.com>
1868
1869         PR middle-end/16790
1870         * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
1871         truncations, not just global truncations.
1872
1873 2004-08-03  Andrew Pinski  <apinski@apple.com>
1874
1875         PR bootstrap/16865
1876         * loop-iv.c (simplify_using_assignment): Initialize lhs.
1877
1878 2004-08-03  Paul Brook  <paul@codesourcery.com>
1879
1880         * gcc/doc/install.texi: Document MPFR requirement.
1881
1882 2004-08-03  Maciej W. Rozycki  <macro@linux-mips.org>
1883
1884         * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
1885         and mmap() explicitly instead of relying on preset autoconf cache
1886         variables.
1887         * configure: Regenerate.
1888
1889 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
1890
1891         PR target/16570
1892         * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
1893         to tmake_file.
1894         (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
1895         (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
1896         to tmake_file.
1897
1898         * config/i386/t-gmm_malloc: New file.
1899         * config/i386/t-pmm_malloc: Likewise.
1900
1901         * config/i386/xmmintrin.h: Include <mm_malloc.h>.
1902
1903 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
1904             Tanguy Fautrà <tfautre@pandora.be>
1905
1906         * config/i386/pmm_malloc.h: New file.
1907
1908 2004-08-03  Danny Smith  <dannysmith@users.sourceforge.net>
1909
1910         * config/i386/gmm_malloc.h: New file.
1911
1912 2004-08-03  Dale Johannesen  <dalej@apple.com>
1913
1914         * config/rs6000/rs6000.c (machopic_output_stub):  Align Darwin stubs.
1915         * c-common.c: Include opts.h.
1916         (c_common_get_alias_set): Fix check for a single input file.
1917         * toplev.c: Remove current_file_decl.
1918         * tree.h: Ditto.
1919
1920 2004-08-03  Mark Mitchell  <mark@codesourcery.com>
1921
1922         * config.gcc (arm*-*-symbianelf*): New target.
1923         * config/arm/symbian.h: New file.
1924
1925         * gthr-gnat.c: Add visibility #pragmas.
1926         * gthr-gnat.h : Likewise.
1927         * gthr.h: Likewise.
1928         * libgcc2.c (__ffsSI2): Move prototype to libgcc2.h.
1929         (__ffsDI2): Likewise.
1930         (__clzSI2): Likewise.
1931         (__ctzSI2): Likewise.
1932         (__ctzDI2): Likewise.
1933         (__popcountSI2): Likewise.
1934         (__popcountDI2): Likewise.
1935         (__paritySI2): Likewise.
1936         (__parityDI2): Likewise.
1937         * libgcc2.h: Add visibility #pragmas.
1938         (__clzDI2): Add prototype.
1939         (__clzSI2): Likewise.
1940         (__ctzSI2): Likewise.
1941         (__ffsDI2): Likewise.
1942         (__ffsSI2): Likewise.
1943         (__ctzDI2): Likewise.
1944         (__popcountSI2): Likewise.
1945         (__popcountDI2): Likewise.
1946         (__paritySI2): Likewise.
1947         (__parityDI2): Likewise.
1948         * unwind-dw2-fde.h: Add visibility #pragmas.
1949         * unwind.h: Likewise.
1950
1951 2004-08-03  David Edelsohn  <edelsohn@gnu.org>
1952             Dale Johannesen  <dalej@apple.com>
1953             Roger Sayle  <roger@eyesopen.com>
1954
1955         * config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of
1956         constants more accurately.  Adjust costs for FMA instructions.
1957         Add cases for most logical and float operations.  Recurse into
1958         most operands.
1959
1960 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
1961
1962         * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files.
1963
1964 2004-08-03  Pat Haugen  <pthaugen@us.ibm.com>
1965
1966         * ra-build.c (conflicts_between_webs): For webs that cross a call add
1967         conflicts to regs_invalidated_by_call.
1968
1969 2004-08-03  Paul Brook  <paul@codesourcery.com>
1970
1971         * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
1972
1973 2004-08-03  Jan Hubicka  <jh@suse.cz>
1974
1975         * coverage.c (tree_coverage_counter_ref): Fix computation of the new
1976         ARRAY_REF argument.
1977
1978 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
1979
1980         * arm-cores.def: Sort by architecture.  Add arm946es, arm966es,
1981         arm968es, arm10e, arm1020e, arm1022e.
1982         * invoke.texi: Update list of ARM cores.
1983         * arm-tune.md: Regenerate.
1984
1985 2004-08-03  Richard Earnshaw <rearnsha@arm.com>
1986
1987         * arm/gentune.sh: New file.
1988         * arm/t-arm: New file.
1989         * arm/arm-tune.md: New file (autogenerated).
1990         * config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants.
1991         * arm.md (attribute tune): Delete.  Include arm-tune.md.
1992
1993 2004-08-03  Paolo Bonzini <bonzini@gnu.org>
1994
1995         * gcc.c (add_prefix, add_sysrooted_prefix): Remove
1996         penultimate parameter.  All callers adjusted.
1997         (struct prefix_list): Remove used_flag_ptr.
1998         (find_a_file): Do not set *pl->used_flag_ptr.
1999         (warn_B, warn_std_ptr): Remove.
2000
2001 2004-08-03  Yossi Markovich <yossim@il.ibm.com>
2002             Mostafa Hagog <mustafa@il.ibm.com>
2003
2004         * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern.
2005
2006 2004-08-02  Geoffrey Keating  <geoffk@apple.com>
2007
2008         * dwarf2out.c (output_call_frame_info): Don't change data format
2009         due to TARGET_USES_WEAK_UNWIND_INFO.  Always refer to the local
2010         label.  Use 'true' not '1'.
2011         * doc/install.texi (powerpc-*-darwin*): Mention cctools version
2012         required.
2013
2014 2004-08-02  Gabriel Dos Reis  <gdr@cs.tamu.edu>
2015
2016         * gdbinit.in: Reflect previous changes to rtunion_def.
2017
2018 2004-08-02  Roger Sayle  <roger@eyesopen.com>
2019
2020         * fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y"
2021         -> "X % Y" is only valid for TRUNC_MOD_EXPR.
2022
2023 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2024
2025         * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
2026         vec_p_reserve.
2027         * langhooks.h (lang_hooks::builtin_function): Rename parameter
2028         from "class" to "bt_class".
2029
2030 2004-08-02  Paul Brook  <paul@codesourcery.com>
2031
2032         PR rtl-optimization/15068
2033         * flow.c (init_propagate_block_info): Check condition is reversible.
2034
2035 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2036
2037         * gengtype.h (options::info): Change type to const char *.
2038         (enum gc_used_enum): Move out of struct type scope.
2039         * gengtype.c (create_option): Convert initializer for option::info to
2040         appropiate type.
2041         (adjust_field_type, walk_type, write_func_for_structure,
2042         write_root, write_roots): Remove pointless cast.
2043
2044 2004-08-02  J"orn Rennecke <joern.rennecke@superh.com>
2045
2046         * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F.
2047
2048 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2049
2050         * rtl.h (union rtunion_def): Have all members  start with the
2051         prefix "rt_".
2052         (XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL,
2053         X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
2054         X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP,
2055         XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members
2056         access.
2057         * gengtype.c (adjust_field_rtx_def): Likewise.
2058         * rtlanal.c (loc_mentioned_in_p): Likewise.
2059
2060 2004-08-02  Richard Sandiford  <rsandifo@redhat.com>
2061
2062         * config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file.
2063         Replace uses of mips/elf64.h with mips/elf.h
2064         * config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION)
2065         (TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP)
2066         (ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS)
2067         (MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP)
2068         (HANDLE_SYSV_PRAGMA): Delete.
2069         (ASM_OUTPUT_DEF): Fix formatting.
2070         * config/mips/elf64.h: Delete.
2071
2072 2004-08-01  Zack Weinberg  <zack@codesourcery.com>
2073
2074         * config/ia64/ia64.c (got_symbolic_operand): Do require a
2075         symbol+offset operand to have its offset be zero mod 0x3fff
2076         when GOT entries are in use.  Clarify logic in SYMBOL_REF
2077         case.  Clarify comments.
2078         (ia64_expand_load_address): Split a symbol+offset load when
2079         the offset is nonzero mod 0x3fff, not 0x1fff.
2080
2081 2004-08-01  Geoffrey Keating  <geoffk@apple.com>
2082
2083         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
2084         if trying to *store* to a non-offsettable address.
2085         * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to
2086         a nonoffsettable address.
2087         (movdi_internal32): Don't move GPRs to a nonoffsettable address.
2088         Clean up.
2089         (movti_string): Don't move GPRs to a nonoffsettable address.
2090         (movti_ppc64): Don't move GPRs to a nonoffsettable address.  Clean up.
2091
2092 2004-08-02  Ben Elliston  <bje@au.ibm.com>
2093
2094         PR target/16155
2095         * config/rs6000/altivec.h: Replace typeof with __typeof__.
2096
2097 2004-08-01  Richard Henderson  <rth@redhat.com>
2098
2099         * expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with
2100         variable sized types.
2101
2102 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
2103
2104         * doc/invoke.texi: In the MIPS options section, remove the passage
2105         saying that -mexplicit-relocs is usually disabled for -mabicalls
2106         -fno-unit-at-a-time.
2107         * config/mips/mips.c (override_options): Remove the code that enforced
2108         this rule.
2109
2110 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
2111
2112         * config/mips/mips.md (cprestore): Provide two alternatives, one for
2113         an in-range offset and one for an out-of-range offset.  Wrap the latter
2114         in .set macro/.set nomacro if it's inside a .set nomacro block.
2115
2116 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
2117
2118         * config/mips/mips-protos.h (mips_gp_save_slot): Remove.
2119         (mips_restore_gp): Declare.
2120         * config/mips/mips.c (mips_add_offset): Add a scratch register
2121         argument.  Reimplement in rtl only, reusing MIPS16 logic from
2122         mips_output_mi_thunk.
2123         (mips_legitimize_address, mips_legitimize_const_move): Adjust calls
2124         to mips_add_offset.
2125         (mips_gp_save_slot): Delete.
2126         (mips_restore_gp): New function.
2127         (mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
2128         * config/mips/mips.md (exception_receiver): Turn into a
2129         define_insn_and_split.  Use mips_restore_gp to do the split.
2130         (call_internal, call_value_internal, call_value_multiple_internal): Use
2131         mips_restore_gp to restore $gp.
2132
2133 2004-07-31  Andrew Pinski  <apinski@apple.com>
2134
2135         PR other/16842
2136         * mkheaders.in (libsubdir): s/gcc-lib/gcc/.
2137
2138 2004-07-31  Joseph S. Myers  <jsm@polyomino.org.uk>
2139
2140         * c-decl.c (diagnose_mismatched_decls): Give error for external
2141         redeclaration of identifier declared with no linkage, not just
2142         warning with -Wtraditional.  Do not check DECL_CONTEXT to give
2143         error for redeclaration with no linkage.
2144
2145 2004-07-30  Geoffrey Keating  <geoffk@apple.com>
2146             Fariborz Jahanian <fjahanian@apple.com>
2147
2148         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit
2149         non-offsettable addresses even for DImode.
2150         (rs6000_split_multireg_move): Cope with non-offsettable addresses
2151         being moved into multiple GPRs.
2152
2153         * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
2154         to 64.
2155         (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
2156         * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
2157         to 128.
2158         * config/rs6000/darwin-ldouble.c (isless): New macro.
2159         (inf): New macro.
2160         (nonfinite): New macro.
2161         (FPKINF): Delete.
2162         (_xlqadd): Completely rewrite.
2163         (_xlqmul): Correct overflow handling.
2164         (_xlqdiv): Correct overflow handling.
2165         * config/rs6000/darwin-ldouble-format: New file.
2166
2167 2004-07-30  Roger Sayle  <roger@eyesopen.com>
2168             Richard Henderson  <rth@redhat.com>
2169
2170         * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or
2171         9 into the equivalent lea instruction.
2172
2173 2004-07-30  Richard Henderson  <rth@redhat.com>
2174
2175         * gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace
2176         with DECL_INITIAL if fb_lvalue.
2177         * tree-gimple.c (is_gimple_id): Add CONST_DECL.
2178         * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL
2179         with <Cxxx>.
2180         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
2181
2182 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
2183
2184         * tree-ssa-alias.c (compute_points_to_and_addr_escape): If a
2185         pointer escapes through a function call, assume that the
2186         callee will dereference it.
2187         (add_pointed_to_var): Assume that VALUE is always an
2188         ADDR_EXPR.
2189         (collect_points_to_info_r): Only call add_pointed_to_var if
2190         the value is an ADDR_EXPR.
2191
2192 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
2193
2194         * tree-ssa-alias.c (create_alias_map_for): Do not get the
2195         alias set of the inner type of ARRAY_TYPEs.
2196
2197 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
2198
2199         * tree-ssa-ccp.c (visit_assignment): Move code to prevent
2200         setting a non-register to UNDEFINED right before the call to
2201         set_lattice_value.
2202
2203 2004-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
2204
2205         * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*.
2206
2207 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
2208
2209         * tree-ssa.c (verify_flow_sensitive_alias_info): When
2210         comparing points-to sets of different pointers, make sure the
2211         second pointer is actually referenced in the code.
2212
2213 2004-07-29  Zack Weinberg  <zack@codesourcery.com>
2214
2215         * config/ia64/ia64.c (setjmp_operand): Delete, unused.
2216         (got_symbolic_operand): Remove unreachable code.
2217         * config/ia64/ia64.h (PREDICATE_CODES): Remove entry for
2218         setjmp_operand; add entry for tls_symbolic_operand.
2219         * config/ia64/ia64-protos.h: Remove all prototypes of
2220         predicate functions.
2221
2222 2004-07-29  Mark Mitchell  <mark@codesourcery.com>
2223
2224         * c-common.h (lang_post_pch_load): New variable.
2225         * c-pch.c (lang_post_pch_load): Define it.
2226         (c_common_read_pch): Use it.
2227         * cgraphunit.c (record_call_1): Give the front end a chance to
2228         record additional needed entities when a variable is marked as
2229         needed.
2230         * tlink.c (recompile_files): Robustify.
2231         (scan_linker_output): If a symbol is assigned to a file,
2232         but after recompilation is not present there, issue an error
2233         message.
2234
2235 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2236
2237         * tree-ssa-loop-im.c (force_move_till_expr, force_move_till):
2238         Take orig_loop argument and pass it to set_level.
2239         (schedule_sm): Pass the correct orig_loop to force_move_till.
2240
2241 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2242
2243         * cfgloop.c (update_latch_info): Update dominator of the new block.
2244         (canonicalize_loop_headers, flow_loops_find): Do not free dominance
2245         info.
2246         * dominance.c (verify_dominators): Check that the dominance tree is
2247         connected.
2248         (recount_dominator): Ignore unreachable blocks.
2249         (iterate_fix_dominators): Cleanup old dominance information before
2250         recomputing it.
2251
2252 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
2253
2254         * tree-ssa-operands.c (get_expr_operands): Revert changes
2255         to ADDR_EXPR processing introduced by:
2256             2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2257             * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
2258
2259 2004-07-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2260
2261         * doc/implement-c.texi: Add C90 subclause references.  Point to
2262         preprocessor documentation instead of duplicating it.  Add points
2263         only present in C90.  Fill in documentation for all points.
2264
2265 2004-07-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2266
2267         * pa.c (output_movb): Correct typo.
2268
2269 2004-07-29  Pat Haugen  <pthaugen@us.ibm.com>
2270
2271         * ra.h (single_reg_in_regclass): Declare.
2272         * ra.c (single_reg_in_regclass): Define.
2273         (first_hard_reg): New.
2274         (init_ra): Initialize single_reg_in_regclass.
2275         * ra-colorize.c (ok_class): New.
2276         (coalesce, aggressive_coalesce, extended_coalesce_2): Use it.
2277
2278 2004-07-29  Nathan Sidwell  <nathan@codesourcery.com>
2279
2280         * gcov-io.h: Allow zero tag as EOF indicator.
2281         (gcov_is_eof): Remove.
2282         (gcov_truncate): Remove.
2283         * gcov-io.c (gcov_seek): Always SEEK_SET.
2284         * libgcov.c (gcov_exit): Don't use gcov_truncate.  Write explicit
2285         EOF tag.
2286         * coverage.c (read_counts_file): Don't use gcov_is_eof.
2287         * gcov-dump.c (dump_file): Likewise.
2288         * gcov.c (read_graph_file, read_count_file): Likewise.
2289
2290         * c-decl.c (complete_array_type): Don't gratuitously copy
2291         maxindex.  Check it always has a type.
2292
2293 2004-07-29  Steven Bosscher  <stevenb@suse.de>
2294
2295         * rtl.c (currently_expanding_to_rtl): New.
2296         * rtl.h (currently_expanding_to_rtl): Export it.
2297         * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit.
2298
2299         * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
2300         inliner hack.
2301         * config/sh/sh.c: Replace rtx_equal_function_value_matters
2302         with currently_expanding_to_rtl.
2303         * config/sh/sh.md: Likewise.
2304         * config/ia64/ia64.c (got_symbolic_operand): Likewise.
2305
2306 2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
2307
2308         Introduce sh2a support.
2309         2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
2310         * config.gcc: Build multilibs for sh2a and sh2a-single by
2311         default.
2312         * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
2313         default.  Split their tests out of the corresponding SH4
2314         multilibs.
2315         * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
2316         multilibs for SH2a.
2317         2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
2318         * config.gcc: Handle sh2a multilibs and cpu selection.
2319         * config/sh/sh.h: Likewise.  Handle sh2a command line flags.
2320         * config/sh/t-mlib-sh2a: New.
2321         * config/sh/t-mlib-sh2a-nofpu: New.
2322         * config/sh/t-mlib-sh2a-single: New.
2323         * config/sh/t-mlib-sh2a-single-only: New.
2324         2004-07-09  Nick Clifton  <nickc@redhat.com>
2325         Issue 43400
2326         * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if
2327         -ml and -m2a are used together.
2328         2004-03-23  DJ Delorie  <dj@redhat.com>
2329         * config/sh/sh.c (sh_builtin_saveregs): Use the double code only
2330         when we have a double-sized FPU.
2331         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
2332         * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__
2333         is set.
2334         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu,
2335         -msh2a-single and -msh2a-single-only
2336         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
2337         * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__
2338         is set.
2339         2004-02-20  DJ Delorie  <dj@delorie.com>
2340         * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu.
2341         2004-02-20  Fred Fish <fnf@redhat.com>,
2342         Corinna Vinschen <vinschen@redhat.com>
2343         * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu.
2344         (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a.
2345         2004-02-18  DJ Delorie  <dj@redhat.com>
2346         * config/sh/sh.c (broken_move): Add support for movi20.
2347         * config/sh/sh.h: Likewise.
2348         (SHIFT_COUNT_TRUNCATED): Set for sh2a.
2349         * config/sh/sh.md (udivsi3_sh2a): New.
2350         (udivsi3): Call it.
2351         (divsi3_sh2a): New.
2352         (divsi3): Call it.
2353         (mul_r): New.
2354         (ashlsi3_sh2a): New.
2355         (ashrsi3_sh2a): New.
2356         (lshrsi3_sh2a): New.
2357         (movsi_i): Disable for sh2a.
2358         (movsi_ie): Add movi20.
2359         (movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable
2360         sh2a, for -m2a-nofpu mode.
2361         2004-02-13  DJ Delorie  <dj@redhat.com>
2362         * config/sh/lib1funcs.asm: Handle double vs single better.
2363         * config/sh/sh.h: Likewise.
2364         2004-02-09  DJ Delorie  <dj@redhat.com>
2365         * config/sh/crt1.asm: Add support for sh2a.
2366         * config/sh/elf.h: Likewise.
2367         * config/sh/lib1funcs.asm: Likewise.
2368         * config/sh/sh.c: Likewise.
2369         * config/sh/sh.md: Likewise.
2370         * config/sh/sh.h: Likewise.
2371         * config/sh/t-sh: Likewise.
2372
2373 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
2374
2375         * config/frv/frv.md (movqi_internal, movhi_internal,
2376         movsi_internal): Add backup alternatives for memory inputs.
2377
2378 2004-07-28  Matt Austern  <austern@apple.com>
2379
2380         * config/darwin.c (darwin_one_byte_bool): New global variable.
2381         * config/darwin.h (darwin_one_byte_bool): Declare.
2382         (SUBTARGET_OPTIONS): Define macro.  (for -mone-byte-bool flag.)
2383         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on
2384         value of darwin_one_byte_bool.
2385         * doc/invoke.texi: Document -mone-byte-bool flag.
2386
2387 2004-07-28  Eric Christopher  <echristo@redhat.com>
2388
2389         * c-common.c (c_common_unsafe_for_reeval): Delete.
2390         * c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use.
2391         * c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case.
2392         * calls.c (fix_unsafe_tree): Delete.
2393         (expand_call): Delete code which used above.
2394         * dojump.c (do_jump): Delete UNSAVE_EXPR case.
2395         * expr.c (expand_expr_real_1): Ditto.
2396         * fold-const.c (non_lvalue): Ditto.
2397         * langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
2398         (lhd_unsafe_for_reeval): Ditto.
2399         * langhooks.c (lhd_unsafe_for_reeval): Ditto.
2400         * langhooks.h (unsafe_for_reeval): Ditto.
2401         (unsave_expr_now): Adjust comment.
2402         * tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits.
2403         (estimate_num_insns_1): Ditto.
2404         * tree-pretty-print.c (dump_generic_node): Ditto.
2405         * tree.c (expr_align): Ditto.
2406         (unsave_expr): Delete.
2407         (unsafe_for_reeval): Ditto.
2408         * tree.h (unsafe_for_reeval, unsave_expr): Ditto.
2409         * tree.def (UNSAVE_EXPR): Delete.
2410         * objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
2411
2412 2004-07-28  Zack Weinberg  <zack@codesourcery.com>
2413
2414         * tree.h (enum tls_model): Move ...
2415         * coretypes.h: ... here.
2416
2417 2004-07-28  Richard Sandiford <rsandifo@redhat.com>
2418
2419         * config/frv/frv.h (EPILOGUE_USES): New.  Use LR.
2420
2421 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
2422
2423         * cse.c (validate_canon_reg): New function, split out from...
2424         (canon_reg): ...here.  Use validate_canon_reg for both 'e' and 'E'.
2425
2426 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
2427
2428         * tree-ssa-alias.c (maybe_create_global_var): Don't just
2429         return if .GLOBAL_VAR has been created.
2430
2431 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
2432
2433         * tree-ssa.c (verify_flow_insensitive_alias_info): Process
2434         every variable that may have aliases, not just tags.
2435
2436 2004-07-28  Aldy Hernandez  <aldyh@redhat.com>
2437
2438         * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to
2439         move_from_CR_eq_bit.
2440         Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ.
2441
2442
2443         * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
2444         e500_flip_eq_bit.
2445
2446         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
2447         output_e500_flip_eq_bit.
2448
2449         * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to
2450         output_e500_flip_eq_bit.
2451         (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to
2452         output_e500_flip_eq_bit.
2453         Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit.
2454         (print_operand): case D.  Get to EQ bit.
2455
2456 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
2457
2458         * gcov.c (function_summary): Add missing \n.
2459
2460 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
2461
2462         Introduce sh4a support.
2463         * config.gcc: Handle sh4a multilibs and cpu selection.
2464         * config/sh/sh.h: Likewise.  Handle sh4a command line flags.
2465         * config/sh/t-mlib-sh4a: New.
2466         * config/sh/t-mlib-sh4al: New.
2467         * config/sh/t-mlib-sh4a-nofpu: New.
2468         * config/sh/t-mlib-sh4a-single: New.
2469         * config/sh/t-mlib-sh4a-single-only: New.
2470         2004-02-20  DJ Delorie  <dj@redhat.com>
2471         * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua".
2472         * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support.
2473         2003-08-22  Eric Christopher  <echristo@redhat.com>
2474         * config/sh/sh4a.md: Update for chip errata.
2475         2003-08-07  Eric Christopher  <echristo@redhat.com>
2476         * config/sh/sh4a.md: New file. sh4a processor description.
2477         2003-07-08  Alexandre Oliva  <aoliva@redhat.com>
2478         * config/sh/sh.h (TARGET_SWITCHES): Added 4al.  Adjust description
2479         of -m4a-nofpu.
2480         (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu.
2481         * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu.
2482         * doc/invoke.texi (SH Options): Document -m4al.
2483         2003-07-03  Alexandre Oliva  <aoliva@redhat.com>
2484         * config/sh/sh.c (expand_block_move): Remove commented-out code
2485         checked in by mistake.
2486         (sh_cannot_change_mode_class): Enable SUBREGs to be used to select
2487         single elements from SFmode vectors.
2488         * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output
2489         register.
2490         (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER.
2491         2003-07-01  Alexandre Oliva  <aoliva@redhat.com>
2492         * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int,
2493         sh_fsca_int2sf): Remove variable declarations.
2494         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
2495         sh_fsca_int2sf): New functions.
2496         (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx,
2497         sh_fsca_int2sf_rtx): New static variables.
2498         * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int,
2499         sh_fsca_int2sf): Declare.
2500         * config/sh/sh.md: Adjust.
2501         * doc/invoke.texi (SH Options): Document new options.
2502         * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward
2503         compatibility from SH4 code.
2504         2003-06-27  Alexandre Oliva  <aoliva@redhat.com>
2505         * config/sh/sh.c (expand_block_move): Don't emit POST_INC too
2506         early.
2507         (memory_movsrc_operand): Renamed to...
2508         (unaligned_load_operand): ... this.  Simplified.
2509         * config/sh/sh.h (PREDICATE_CODES): Adjust.
2510         * config/sh/sh.md (movua, extv, extzv): Likewise.  Change movua's
2511         input operand to SImode, and adjust the others.  Introduce
2512         post-increment by peephole.
2513         * config/sh/sh.c (expand_block_move): Give the target address the
2514         same mode as the temp reg.
2515         * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned
2516         copying.
2517         2003-06-26  Alexandre Oliva  <aoliva@redhat.com>
2518         Introduce support for SH4a.
2519         * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if
2520         __SH4A__.  Emit 4 4kb blocks and touch all of them otherwise.
2521         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
2522         sh_fsca_int2sf): New.
2523         (sh_init_builtins): Initialize them.
2524         (print_operand): Support `d'.
2525         (expand_block_move): Use movua if src is misaligned.
2526         (memory_movsrc_operand): New.
2527         * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__
2528         and one of the SH4 macros.
2529         (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP,
2530         SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A,
2531         SELECT_SH4A_SINGLE): New.
2532         (TARGET_NONE): Add SH4A_BIT.
2533         (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a.
2534         (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu.
2535         (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare.
2536         (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate.
2537         (enum processor_type): Added PROCESSOR_SH4A.
2538         (PREDICATE_CODES): Add memory_movsrc_operand.
2539         * config/sh/sh.md: Removed unused variables.
2540         (attr cpu): Add sh4a.
2541         (attr type): Add movua, fsrra and fsca.
2542         (prefetch): New, for SH4.
2543         (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi.
2544         (toggle_sz): Set type to fp.
2545         (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New.
2546         (movua, extv, extzv): New.
2547         * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single
2548         and 4a-single-only.
2549
2550 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
2551
2552         * tree-optimize.c (init_tree_optimization_passes): Schedule
2553         pass_may_alias right after the program is renamed into SSA.
2554         * tree-pass.h (PROP_alias): Define.
2555         * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias.
2556         * tree-sra.c (pass_sra): Likewise.
2557         * tree-ssa-ccp.c (pass_ccp): Likewise.
2558         * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise.
2559         * tree-ssa-dce.c (pass_dce): Likewise.
2560         * tree-ssa-dom.c (pass_dominator): Likewise.
2561         * tree-ssa-dse.c (pass_dse): Likewise.
2562         * tree-ssa-forwprop.c (pass_forwprop): Likewise.
2563         * tree-ssa-loop-ch.c (pass_ch): Likewise.
2564         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
2565         * tree-ssa-pre.c (pass_pre): Likewise.
2566         * tree-tailcall.c (pass_tail_recursion): Likewise.
2567         * tree-ssa.c (pass_redundant_phi): Likewise.
2568         * tree-ssa-alias.c (aliases_computed_p): Remove.
2569         Update all users.
2570         (init_alias_info): Do not mark all type tags for renaming
2571         unconditionally.
2572         Clear may_aliases from every symbol.
2573         (setup_pointers_and_addressables): If a pointer has not been
2574         dereferenced and it had a type tag, clear it and mark the old
2575         tag for renaming.
2576
2577 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
2578
2579         PR tree-optimization/16705
2580         * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on
2581         .GLOBAL_VAR.
2582
2583 2004-07-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2584
2585         * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error
2586         check.
2587
2588         * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR,
2589         don't make another one.
2590
2591         PR optimization/15077
2592         * function.h (struct function): Add field saved_static_chain_decl.
2593         Fix comment for static_chain_decl.
2594         * tree-inline.c (save_body): Add new arg and handle static_chain_decl.
2595         * tree-inline.h (save_body): Add new arg.
2596         * tree-optimize.c (tree_rest_of_compilation): Handle saving
2597         static_chain_decl.
2598
2599 2004-07-27  Richard Henderson  <rth@redhat.com>
2600
2601         * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove.
2602         (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use
2603         is_gimple_addressable.
2604         * tree-gimple.c (is_gimple_addressable): Rename from
2605         is_gimple_addr_expr_arg; accept INDIRECT_REF.
2606         (is_gimple_lvalue): Don't test INDIRECT_REF directly.
2607         * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for
2608         rename to is_gimple_addressable.
2609
2610 2004-07-28  Alan Modra  <amodra@bigpond.net.au>
2611
2612         * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards.
2613
2614 2004-07-27  Richard Henderson  <rth@redhat.com>
2615
2616         * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
2617         before rounding.
2618
2619 2004-07-27  Zack Weinberg  <zack@codesourcery.com>
2620
2621         * libgcc2.c: Change all conditionals testing
2622         LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
2623         * libgcc2.h: Likewise.
2624         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set
2625         TYPE_PRECISION of float80_type to 80.
2626         * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION
2627         of fpreg_type and float80_type to 80.
2628         * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h
2629         * config/m68k/netbsd-elf.h:
2630         Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE
2631         to evaluate to 80 whenever they would formerly have evaluated to 96.
2632         * config/i386/sco5.h: Remove unnecessary redefinition of
2633         LONG_DOUBLE_TYPE_SIZE.
2634         * doc/rtl.texi: Clarify uses of XFmode and TFmode.
2635         * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for
2636         XFmode, with a bitsize of 80.  Update commentary.
2637         * config/ia64/ia64-modes.def: Likewise.
2638         * config/m68k/m68k-modes.def: Likewise.
2639
2640 2004-07-27  Steven Bosscher  <stevenb@suse.de>
2641
2642         * cfgexpand.c (tree_expand_cfg): Fix comment.
2643
2644         * calls.c (expand_call): Ignore rtx_equal_function_value_matters.
2645         * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets):
2646         Remove.
2647         (prepare_function_start): Don't set rtx_equal_function_value_matters.
2648         * integrate.c (copy_rtx_and_substitute): Don't test for it.
2649         * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets.
2650         Don't set rtx_equal_function_value_matters.  Don't register RTL hooks
2651         here again.  Update leading comment.
2652         * rtl.c (rtx_equal_function_value_matters): Remove.
2653         (rtx_equal_p): Don't test for it.
2654         * simplify-rtx.c (simplify_binary_operation, simplify_subreg):
2655         Likewise.
2656
2657         * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND.
2658         * rtl.c (note_insn_name): Likewise.
2659         * emit-rtl.c (remove_unnecessary_notes): Don't handle it.
2660         * final.c (final_scan_insn): Likewise.
2661
2662         * except.c (finish_eh_generation): Don't call cfg_cleanup from here.
2663         * passes.c (rest_of_handle_eh): Do it here.
2664
2665         * stmt.c (struct nesting): Remove struct nesting block member.
2666         (struct stmt_status): Remove x_block_start_count field.
2667         (current_block_start_count): Remove.
2668
2669 2004-07-27  Brian Booth  <bbooth@redhat.com>
2670
2671         * tree-optimize.c (register_one_dump_file): Update condition that uses
2672         static_pass_number.
2673         (dup_pass_1): Replace with...
2674         (next_pass_1): This.
2675         (NEXT_PASS): Call next_pass_1.
2676         (DUP_PASS): Remove.
2677         (init_tree_optimization_passes): Remove uses of DUP_PASS.
2678         (execute_one_pass): Update condition that uses
2679         static_pass_number.
2680         * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed
2681         integer.
2682
2683 2004-07-27  Nick Clifton  <nickc@redhat.com>
2684
2685         * config/m32r/m32r.c: Include integrate.h in order to get the
2686         prototype for get_hard_reg_initial_val().
2687
2688         * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r"
2689         and tidy up indentation.
2690         (final_presence_set): Use absence_set instead, so that if there is
2691         nothing in the "o" pipe the "s" pipe can be scheduled.
2692
2693 2004-07-27  Diego Novillo  <dnovillo@redhat.com>
2694
2695         * tree-ssa-alias.c (create_name_tags): Ignore pointers that
2696         don't have PT_VARS nor PT_MALLOC set.
2697         Clear name tag from pointers that have not been dereferenced.
2698         (set_pt_anything, set_pt_malloc): Forward declare.
2699         * tree-ssa-copy.c (may_propagate_copy): Compare alias sets,
2700         not type compatibility when determining if a pointer can be
2701         copy propagated.
2702
2703 2004-07-27  Richard Sandiford  <rsandifo@redhat.com>
2704
2705         * expr.h (canonicalize_condition, get_condition): Add an int argument.
2706         * gcse.c (fis_get_condition): Reimplement using get_condition, leaving
2707         it to check whether the condition is still valid at the jump insn.
2708         * ifcvt.c (noce_get_condition): Likewise.
2709         (noce_get_alt_condition): Update call to canonicalize_condition.
2710         * loop-iv.c (simplify_using_initial_values): Update call to
2711         get_condition.  Remove FIXME.
2712         (check_simple_exit): Update call to get_condition.
2713         * loop-unswitch.c (may_unswitch_on): Likewise.
2714         * loop.c (check_dbra_loop): Likewise.
2715         (canonicalize_condition, get_condition): Add an argument to say whether
2716         the condition must still be valid at INSN.
2717         (get_condition_for_loop): Update call to get_condition.  Require that
2718         the condition be valid at INSN.
2719         * predict.c (estimate_probability): Update call to get_condition.
2720         Remove unused earliest parameter.
2721         (expected_value_to_br_prob): Update call to canonicalize_condition.
2722
2723 2004-07-26  Eric Christopher  <echristo@redhat.com>
2724
2725         * tree-dfa.c (add_referenced_var): Register initializers of global
2726         variables.
2727
2728 2004-07-26  Paolo Bonzini  <bonzini@gnu.org>
2729
2730         * config/i386/i386.c (function_arg): Always treat 8-
2731         and 16-byte wide vectors the same, even if MMX/SSE
2732         are disabled.
2733         (contains_128bit_aligned_vector_p): Add comment.
2734
2735 2004-07-26  J"orn Rennecke <joern.rennecke@superh.com>
2736
2737         * ra.h (enum node_type): Rename to:
2738         (enum ra_node_type).
2739         * ra-colorize.c: Likewise.
2740
2741 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
2742
2743         * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag
2744         after simplifying the jump.
2745
2746 2004-06-26  Richard Henderson  <rth@redhat.com>
2747
2748         * calls.c (combine_pending_stack_adjustment_and_call): Make
2749         preferred_unit_stack_boundary argument unsigned.  Make
2750         unadjusted_alignment unsigned.
2751         (expand_call): Make preferred_stack_boundary and
2752         preferred_unit_stack_boundary variables unsigned.
2753         * function.c (assign_stack_local_1): Make alignment unsigned.
2754         * function.h (struct function): Make stack_alignment_needed,
2755         preferred_stack_boundary unsigned.
2756         * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned.
2757         (ix86_compute_frame_layout): Make stack_alignment_needed,
2758         preferred_alignment variables unsigned.
2759         * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned.
2760
2761 2004-07-26  Tom Tromey  <tromey@redhat.com>
2762
2763         * tree.h: Fix typo in comment.
2764
2765 2004-07-26  Daniel Jacobowitz  <dan@debian.org>
2766
2767         PR bootstrap/12804
2768         * ggc-zone.c (struct alloc_chunk): Remove attribute packed.
2769         (MAX_FREE_BIN_SIZE): Increase on 64-bit targets.
2770         (ggc_free): Remove incorrect freeing.
2771         (sweep_pages): Advance PP for large pages.  Fix indentation.
2772
2773 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
2774
2775         PR rtl-optimization/16643
2776         * cfglayout.h (cfg_layout_initialize): Add a flags parameter.
2777         * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
2778         * basic-block.h (reorder_basic_blocks): Add a flags parameter.
2779         * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
2780         (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
2781         * function.c (thread_prologue_and_epilogue_insns): Likewise.
2782         * rtl.h (tracer): Add a flags parameter.
2783         * tracer.c (tracer): Pass it to cfg_layout_initialise.
2784         * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
2785         (rest_of_handle_reorder_blocks): Update calls to tracer and
2786         reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
2787         (rest_of_handle_tracer): Pass 0 to tracer.
2788         (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.
2789
2790 2004-07-25  David Edelsohn  <edelsohn@gnu.org>
2791
2792         PR target/16239
2793         * config/rs6000/rs6000.md (movdi_internal64): Further disparage
2794         f->f.
2795
2796 2004-07-24  Nathan Sidwell  <nathan@codesourcery.com>
2797
2798         * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree).
2799         (BINFO_BASE_ACCESS): Adjust.
2800         (BINFO_BASE_ACCESS_APPEND): New.
2801         (struct tree_binfo): Make base_accesses a VEC(tree) pointer.
2802         * dbxout.c (dbxout_type): Adjust binfo access accessing.
2803         * dwarf2out.c (gen_member_die): Likewise.
2804         * tree-dump.c (deque_and_dump): Likewise.
2805
2806 2004-07-26  Falk Hueffner  <falk@debian.org>
2807
2808         * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div
2809         costs.
2810
2811 2004-07-25  Roger Sayle  <roger@eyesopen.com>
2812
2813         * config/i386/i386.c (output_fp_compare): Use ffreep to pop top
2814         value off of the stack if TARGET_USE_FFREEP.
2815
2816 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
2817
2818         * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC ().
2819         * gengtype-yacc.y: Likewise.  Replace free() with XDELETE ().
2820         * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer
2821         check on invocation of XRESIZEVEC ().
2822
2823 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
2824
2825         * c-common.c (disable_builtin_function): Rename variable n to
2826         new_disabled_builtin.
2827         * c-decl.c (duplicate_decls): Rename parameter decl to new_decl.
2828         Rename local variable old to old_decl.
2829         * gensupport.c (shift_output_template): Rename parameter old to src.
2830         * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to
2831         old_rtx and newx to new_rtx.
2832
2833 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
2834
2835         * Makefile.in (C_PRAGMA_H): New variable to track dependencies
2836         of c-pragma.h.
2837         * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to
2838         enum cpp_ttype.
2839         * c-lex.c: Likewise.
2840
2841 2004-07-25  Roger Sayle  <roger@eyesopen.com>
2842
2843         * fold-const.c (constant_boolean_node): Make extern.
2844         (make_range): Wrap long lines.
2845         (fold_cond_expr_with_comparison): Remove unnecessary call to
2846         pedantic_non_lvalue.  Add missing calls to fold_convert.
2847         (fold_truthop): Add missing calls to fold_convert.
2848         (fold): Likewise.
2849         * tree.h (constant_boolean_node): Add prototype here.
2850         * builtins.c (expand_builtin_strncmp): Add missing calls to
2851         fold_convert.
2852         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
2853         Call fold_convert and constant_boolean_node to correct types.
2854         * tree-ssa-forwprop.c (substitute_single_use_vars): Add
2855         missing call to fold_convert to correct types.
2856
2857 2004-07-26  Niall Douglas  <s_fsfeurope2@nedprod.com>
2858             Brian Ryner  <bryner@brianryner.com>
2859
2860         PR c++/9283
2861         PR c++/15000
2862         * c-common.c (c_common_attribute_table): Allow
2863         handle_visibility_attribute to be called for types.
2864         (handle_visibility_attribute) When given a type, set the visibility
2865         bits on the TYPE_NAME.  When given a decl, don't set no_add_attrs
2866         so that we can check later whether the attribute was present. Added
2867         warning if attribute applied to non class type.
2868         * c-decl.c (diagnose_mismatched_decls): Updated rules for merging
2869         decls and checking that they are consistent.
2870         * common.opt: Added -fvisibility.
2871         * c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
2872         * c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
2873         * flags.h, tree.h: Added assorted support defines for overall patch
2874         * opts.c: Added parsing support for -fvisibility.
2875         * tree.c (build_decl): Set visibility for all decls to be whatever
2876         is in force at that time.
2877         * varasm.c (default_binds_local_p_1): Reworked logic determining
2878         when to make a symbol locally bound.
2879         * doc/invoke.texi: Added documentation for -fvisibility and
2880         -fvisibility-inlines-hidden.
2881
2882 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
2883
2884         * basic-block.h (reorder_block_def): Rename to reorder_block_def_p.
2885         * c-common.c: Add missing casts from void * to other types.
2886         * c-decl.c: Likewise.
2887         * c-format.c: Likewise.
2888         * c-lex.c: Likewise.
2889         * c-pragma.c: Likewise.
2890         * c-typeck.c: Likewise.
2891         * defaults.h: Likewise.
2892         * genconstants.c: Likewise.
2893         * gengtype-lex.l: Likewise.
2894         * genmodes.c: Likewise.
2895         * read-rtl.c: Likewise.
2896         * rtl.c: Likewise.
2897
2898 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
2899
2900         * bitmap.c: Use type-safe memory allocation macros from libiberty.
2901         * c-common.c: Likewise.
2902         * c-decl.c: Likewise.
2903         * c-lang.c: Likewise.
2904         * c-lex.c: Likewise.
2905         * c-opts.c: Likewise.
2906         * c-parse.in: Likewise.
2907         * c-typeck.c: Likewise.
2908         * genconditions.c: Likewise.
2909         * gengtype-lex.l: Likewise.
2910         * gengtype-yacc.y: Likewise.
2911         * gengtype.c: Likewise.
2912         * genmodes.c: Likewise.
2913         * gensupport.c: Likewise.
2914         * read-rtl.c: Likewise.
2915         * read-rtl.c (read_constants): Use INSERT instead of TRUE in call to
2916         htab_find_slot().
2917
2918 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
2919
2920         * c-decl.c (groktypename, groktypename_in_param_context): Rename
2921         variable typename to type_name.
2922         * c-lex.c (interpret_float): Likewise.
2923
2924 2004-07-25  Roger Sayle  <roger@eyesopen.com>
2925
2926         * convert.c (convert_to_real, convert_to_integer,
2927         convert_to_complex): Replace calls to build with calls to buildN.
2928         * coverage.c (tree_coverage_counter_ref): Likewise.
2929         * dojump.c (do_jump): Likewise.
2930         * dwarf2out.c (loc_descriptor_from_tree): Likewise.
2931         * emit-rtl.c (component_ref_for_mem_expr,
2932         set_mem_attributes_minus_bitpos): Likewise.
2933         * explow.c (update_nonlocal_goto_save_area): Likewise.
2934         * expmed.c (expand_shift, make_tree, const_mult_add_overflow_p,
2935         expand_mult_add): Likewise.
2936         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall,
2937         store_constructor, get_inner_reference, expand_expr_real_1,
2938         try_casesi, try_tablejump): Likewise.
2939         * function.c (expand_function_start): Likewise.
2940         * stmt.c (emit_case_bit_tests, expand_end_case_type,
2941         node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise.
2942         * stor-layout.c (place_union_field, layout_type): Likewise.
2943         * tree.c (substitute_in_expr, tree_fold_gcd): Likewise.
2944         * varasm.c (copy_constant): Likewise.
2945
2946 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
2947
2948         * c-common.c: Rename all identifiers named `new'.
2949         * c-decl.c: Likewise.
2950         * gensupport.c: Likewise.
2951         * simplify-rtx.c: Likewise.
2952         * c-common.c (disable_builtin_function): Replace a call to xmalloc()
2953         with XNEW().
2954         * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc()
2955         with XNEWVEC().
2956
2957 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
2958
2959         PR c/15360
2960         * c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized
2961         declarations until after calling pushdecl.
2962         (grokdeclarator): Set DECL_EXTERNAL for variables based on use of
2963         "extern" and not on whether the declaration is initialized.
2964
2965 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
2966
2967         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
2968         (sparc-*-solaris2*): Include sol2.o and sol2-protos.h.
2969         * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h",
2970         "cpplib.h", "c-pragma.h", "c-common.h".
2971         (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini)
2972         (solaris_register_pragmas): New functions.
2973         * config/sol2-protos.h: New file.
2974         * config/sol2.c: New file.
2975         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE)
2976         (REGISTER_TARGET_PRAGMAS): New macros.
2977         (solaris_pending_aligns, solaris_pending_inits)
2978         (solaris_pending_finis): New variables.
2979         * config/t-sol2 (sol2-c.o): Update dependencies.
2980         (sol2.o): New rule.
2981         * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of
2982         SUBTARGET_INSERT_ATTRIBUTES.
2983         (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE.
2984         * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
2985         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
2986         * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
2987         * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
2988         * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
2989         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
2990         * config/sparc/sparc.c (sparc_attribute_table): New.
2991         (TARGET_INSERT_ATTRIBUTES): Define in terms of
2992         SUBTARGET_INSERT_ATTRIBUTES.
2993         (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE
2994         is defined.
2995         * doc/extend.texi (Solaris Pragmas): New section.
2996
2997 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
2998
2999         * c-common.c: Rename all identifiers named `class' to `cl'.
3000         * c-common.h: Likewise.
3001         * c-parse.in: Likewise.
3002         * c-typeck.c: Likewise.
3003         * genmodes.c: Likewise.
3004         * real.c: Likewise.
3005         * real.h: Likewise.
3006         * recog.c: Likewise.
3007         * recog.h: Likewise.
3008         * regrename.c: Likewise.
3009         * tree.h: Likewise.
3010         * c-common.c (builtin_function_2): Change type of 5th parameter from
3011         int to enum built_in_function. Change type of 8th parameter from int
3012         to bool.
3013         * c-decl (builtin_function): Replace call to ggc_alloc_cleared ()
3014         with GGC_CNEW().
3015         * c-typeck.c (convert_arguments): Change type of formal_prec from
3016         int to unsigned int.
3017         * genmodes.c (blank_mode): Make a few negative constants unsigned.
3018         (complete_all_modes, calc_wider_mode, emit_insn_modes_h,
3019         emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size,
3020         emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner,
3021         emit_mode_base_align, emit_class_narrowest_mode): Pass an integer
3022         iterator to for_all_modes () instead of an enum because enums can't
3023         be incremented in C++.
3024
3025
3026 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
3027
3028         * regmove.c (optimize_reg_copy_1): Don't try to replace call-used
3029         hard registers.
3030
3031 2004-07-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3032
3033         * tree-ssa-operands.c (get_stmt_operands, get_expr_operands):
3034         Handle ARRAY_RANGE_REF like ARRAY_REF.
3035
3036 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
3037
3038         * c-typeck.c (digest_init): Don't allow arrays of signed or
3039         unsigned variants of wchar_t to be initialized by wide string
3040         constants.  Do allow arrays of enumerated types compatible with
3041         wchar_t to be initialized by wide string constants.  Refine tests
3042         distinguishing wide and narrow strings and arrays.  Give specific
3043         error for arrays of other integer types initialized by string
3044         constants.
3045         (output_init_element, process_init_element): Check for
3046         INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when
3047         initializing with string constants.
3048
3049 2004-07-25  Richard Henderson  <rth@redhat.com>
3050
3051         * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
3052         on the RESULT_DECL.
3053         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
3054         * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
3055         DECL_IGNORED_P to new decl.
3056
3057 2004-07-24  Zack Weinberg  <zack@codesourcery.com>
3058
3059         * config/ia64/ia64.c (general_xfmode_operand)
3060         (destination_xfmode_operand): Delete.
3061         * config/ia64/ia64.h (PREDICATE_CODES): Remove them.
3062         * config/ia64/ia64.md (*movxf_internal): Use general_operand
3063         and destination_operand.
3064
3065 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
3066
3067         * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing.
3068         (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS.
3069
3070 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
3071             Zack Weinberg  <zack@codesourcery.com
3072
3073         PR 16684
3074         * c-decl.c (diagnose_mismatched_decls): Don't issue a
3075         redundant-declaration warning the first time a builtin is
3076         declared explicitly.
3077
3078 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
3079
3080         * tree.h (staticp): Change return type to bool.
3081
3082 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
3083
3084         * c-common.c (c_staticp): Last episode of the staticp saga.
3085
3086 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
3087
3088         * c-common.h (c_staticp): Change return type from int to bool.
3089         * tree.c (staticp): Likewise.
3090         * langhooks.h (staticp): Likewise.
3091
3092 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
3093
3094         * langhooks-def.h (lhd_staticp): Change return type from int to
3095         bool in prototype to match definition.
3096
3097 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
3098
3099         * system.h (bool, true, false): Don't redefine as preprocessor macros
3100         in C++.
3101
3102 2004-07-24  Roger Sayle  <roger@eyesopen.com>
3103
3104         * expmed.c (init_expmed): A signed modulus by a power of two is
3105         considered cheap if its less than or equal to four instructions.
3106
3107 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
3108
3109         * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR,
3110         GGC_CNEWVAR): New macros.
3111
3112 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
3113
3114         * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter
3115         lists.
3116         * c-decl.c: Likewise.
3117         * c-format.c: Likewise.
3118         * c-lex.c: Likewise.
3119         * c-opts.c: Likewise.
3120         * c-pragma.c: Likewise.
3121         * c-typeck.c: Likewise.
3122         * gencheck.c: Likewise.
3123         * genconditions.c: Likewise.
3124         * genconfig.c: Likewise.
3125         * genflags.c: Likewise.
3126         * gengtype.c: Likewise.
3127         * gensupport.c: Likewise.
3128         * ggc-none.c: Likewise.
3129         * langhooks.c: Likewise.
3130         * statistics.h: Likewise.
3131         * stub-objc.c: Likewise.
3132         * java/decl.c: Likewise.
3133
3134 2004-07-24  Roman Zippel  <zippel@linux-m68k.org>
3135
3136         * config/m68k/m68k.c (output_scc_di): Fix coding style.
3137         (symbolic_operand): Fix prototype.
3138         * config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand.
3139         * config/m68k/m68k.md: Add constants for registers a0 and sp and
3140         use them, change from the "{...}" syntax to the simpler {...}
3141         syntax.
3142         (*cfv4_extendqisi2): Fix destination predicate.
3143         * config/m68k/m68k-protos.h: Remove various declarations also
3144         generated via PREDICATE_CODES.
3145
3146 2004-07-23  Mike Stump  <mrs@apple.com>
3147
3148         * c-typeck.c (convert_for_assignment): Tightened up pointer
3149         converstions that differ in signedness.
3150
3151 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
3152
3153         * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED.
3154
3155 2004-07-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3156
3157         * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'.
3158         * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New.
3159
3160         * gimplify.c (gimplify_compound_lval): Check for no handled
3161         operations, rather than checking for explicit list of nodes.
3162         (is_gimple_addr_expr_arg_or_indirect): New function.
3163         (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove
3164         redundant setting of TREE_INVARIANT.
3165         (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval.
3166         * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p.
3167
3168 2004-07-23  Diego Novillo  <dnovillo@redhat.com>
3169
3170         PR tree-optimization/16688
3171         PR tree-optimization/16689
3172         * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
3173         unnecessary initialization of 'tag'.
3174         (get_tmt_for): Check that the new type tag has the same alias
3175         set as the pointed-to type.
3176         (group_aliases): Only regular variables need to be removed
3177         from the alias set of a name tag.
3178         * tree-ssa-copy.c (may_propagate_copy): Do not allow copy
3179         propagation if the two types are not compatible.
3180         (merge_alias_info): Rename from replace_ssa_names_ann.
3181         Add more checking.
3182         (replace_exp_1): If both arguments are SSA_NAMEs, check that
3183         the propagation can be done.
3184         Only call merge_alias_info on pointers.
3185         (propagate_value): Likewise.
3186         * tree-ssa-copyrename.c: Include langhooks.h.
3187         (copy_rename_partition_coalesce): Call replace_ssa_name_symbol
3188         to do the merging.
3189         Do not coalesce variables with incompatible types.
3190         (rename_ssa_copies): Call replace_ssa_name_symbol.
3191         * tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has
3192         the same type as the underlying _DECL.
3193         * tree-ssanames.c (replace_ssa_name_symbol): New function.
3194         * tree.h (replace_ssa_name_symbol): Declare.
3195
3196 2004-07-23  Richard Henderson  <rth@redhat.com>
3197
3198         PR c++/16277
3199         * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval;
3200         unshare it properly.
3201         (gimplify_modify_expr_rhs): Push assignment from a conditional into
3202         the conditional for all non-register types.
3203
3204 2004-07-23  Richard Henderson  <rth@redhat.com>
3205
3206         * expr.c (expand_expr_real_1): Don't handle non-local variables.
3207         * expr.h (fix_lexical_addr): Remove.
3208         * function.c (NEED_SEPARATE_AP): Remove.
3209         (fix_lexical_addr): Remove.
3210         * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC,
3211         not null decl_function_context.
3212         (create_alias_vars): Likewise.
3213         * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels.
3214         (simple_goto_p): Likewise.
3215         * tree-dfa.c (add_referenced_var): Don't check for non-local variables.
3216         * tree-ssa-ccp.c (get_default_value): Likewise.
3217         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
3218         * tree.c (needs_to_live_in_memory): Likewise.
3219         * tree-flow-inline.h (may_be_aliased): Move...
3220         * tree-ssa-alias.c (may_be_aliased): ... here.  Enhance check for
3221         when TREE_STATIC variables may be addressable.
3222
3223 2004-07-24  Jakub Jelinek  <jakub@redhat.com>
3224
3225         * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp.
3226
3227 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
3228
3229         * print-rtl.c (print_rtx <case 'b'>): Don't attempt to print
3230         bitmap contents if GENERATOR_FILE is defined.
3231         * Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o.
3232         ($(BUILD_PREFIX_1)bitmap.o): Delete rule.
3233
3234 2004-07-23  Joseph S. Myers  <jsm@polyomino.org.uk>
3235
3236         * c-decl.c (start_function): Form composite type of function types
3237         rather than copying type from previous prototype declaration.
3238
3239 2004-07-23  Janis Johnson  <janis187@us.ibm.com>
3240
3241         * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove
3242         the const qualifier for the second argument in the C++ functions.
3243
3244         * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use
3245         specific pointer types.
3246
3247         * config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm,
3248         vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used
3249         for vector bool and/or vector pixel, add C++ and C missing support.
3250         (vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh,
3251         vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh,
3252         vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum,
3253         vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws,
3254         vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add
3255         missing C++ and C support for vector bool and/or vector pixel.
3256         (vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw,
3257         vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw,
3258         vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw,
3259         vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub,
3260         vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix
3261         C++ and C types used for vector bool and/or vector pixel.
3262         (vec_st, vec_stl): Add C++ support for vector pixel.
3263         (vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool.
3264         (vec_all_ne): Add C++ support for vector pixel.
3265
3266         * config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name.
3267         (vec_vmulesb): Add missing C++ function.
3268         (vec_perm): Fix type of third argument in C++ function.
3269         (vec_vsum4shs): Fix C++ function name.
3270         (vec_any_ge): Remove C++ functions for unsupported arg combinations.
3271         (vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the
3272         argument passed to the error handler in C macro.
3273         (vec_nmsub): Remove extra parens around argument names in C macro.
3274         (vec_packpx): Add missing parens in C macro.
3275
3276 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
3277
3278         * machmode.def: Remove vector modes.
3279         * config/alpha/alpha-modes.def: Add supported vector modes.
3280         * config/arm/arm-modes.def: Likewise.
3281         * config/frv/frv-modes.def: Likewise.
3282         * config/i386/i386-modes.def: Likewise.
3283         * config/rs6000/rs6000-modes.def: Likewise.
3284         * config/sh/sh-modes.def: Likewise.
3285
3286 2004-07-23  Matthias Klose  <doko@debian.org>
3287
3288         * intl.c (gcc_init_libintl): Use PACKAGE for the text domain.
3289         * configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE.
3290         * config.h: Regenerate.
3291         * configure: Likewise.
3292
3293 2004-07-22  Mark Mitchell  <mark@codesourcery.com>
3294
3295         * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on
3296         generated SYMBOL_REFs for labels.
3297         * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr):
3298         Change prototype.
3299         (machopic_stub_name): Remove.
3300         (machopic_indirection_name): New function.
3301         (machopic_mcount_stub_name): Likewise.
3302         (machopic_classify_name): Remove.
3303         (machopic_function_base_sym): New function.
3304         (machpoic_classify_symbol): Likewise.
3305         (machopic_classify_ident): Remove.
3306         (machopic_define_ident): Likewise.
3307         (machopic_define_name): Likewise.
3308         (machopic_name_defined_p): Likewise.
3309         (machopic_ident_defined_p): Likewise.
3310         (darwin_strip_name_encoding): Likewise.
3311         (machopic_define_symbol): New function.
3312         * config/darwin.c (hashtab.h): Include.
3313         (machopic_defined_list): Remove.
3314         (machopic_classify_ident): Likewise.
3315         (machopic_classify_name): Likewise.
3316         (machopic_ident_defined_p): Likewise.
3317         (machopic_define_ident): Likewise.
3318         (machopic_define_name): Likewise.
3319         (machopic_symbol_defined_p): New function.
3320         (machopic_classify_symbol): Likewise.
3321         (machopic_data_defined_p): Use machopic_classify_symbol.
3322         (machopic_define_symbol): New function.
3323         (machopic_function_base_sym): New function.
3324         (machopic_non_lazy_pointers): Remove.
3325         (machopic_non_lazy_ptr_name): Likewise.
3326         (machopic_stubs): Likewise.
3327         (machopic_stub_name): Likewise.
3328         (NON_LAZY_POINTER_SUFFIX): New macro.
3329         (STUB_SUFFIX): Likewise.
3330         (machopic_indirection): New structure.
3331         (machopic_indirections): New variable.
3332         (machopic_indirection_hash): New function.
3333         (machopic_indirection_eq): Likewise.
3334         (machopic_indirection_name): Likewise.
3335         (machopic_mcount_stub_name): New function.
3336         (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use
3337         hash table.
3338         (machopic_indirect_data_reference): Rework to use new functions.
3339         (machopic_indirect_call_target): Likewise.
3340         (machopic_legitimize_pic_address): Likewise.
3341         (machopic_output_indirection): New function.
3342         (machopic_finish): Use it.
3343         (machopic_operand_p): Rework to use new functions.
3344         (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS.
3345         (darwin_strip_name_encoding): Remove.
3346         (update_non_lazy_ptrs): Remove.
3347         (update_stubs): Likewise.
3348         (darwin_non_lazy_pcrel): Use new functions.
3349         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise.
3350         (ASM_OUTPUT_LABELREF): Likewise.
3351         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
3352         (MACHO_SYMBOL_FLAG_VARIABLE): New macro.
3353         (MACHO_SYMBOL_FLAG_DEFINED): Likewise.
3354         (TARGET_STRIP_NAME_ENCODING): Do not use
3355         darwin_strip_name_encoding.
3356         (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use
3357         darwin_strip_name_encoding.
3358         * config/i386/darwin.h (FUNCTION_PROFILER): Use
3359         machopic_mcount_stub_name.
3360         * config/i386/i386.c (x86_output_mi_thunk): Use
3361         machopic_indirection_name, not machopic_stub_name.
3362         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use
3363         machopic_function_base_sym.
3364         (print_operand): Use machopic_classify_symbol.
3365         (rs6000_emit_prologue): Use machopic_function_base_sym.
3366         (output_profile_hook): Do not use machopic_stub_name.
3367         (macho_branch_isalnds): Do not use darwin_strip_name_encoding.
3368
3369 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
3370
3371         PR c/7284
3372         * fold-const.c (extract_muldiv_1): Do not treat signed left shift
3373         as multiplication.
3374
3375 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
3376
3377         * doc/implement-c.texi: New file.
3378         * doc/extend.texi (C Implementation): Move to there.
3379         * doc/gcc.texi: Include implement-c.texi.
3380         * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi.
3381
3382 2004-07-22  Jason Merrill  <jason@redhat.com>
3383
3384         * integrate.c (copy_decl_for_inlining): Remove invisible reference
3385         handling.
3386         * tree-inline.c (setup_one_parameter): Likewise.
3387
3388 2004-07-22  Brian Booth  <bbooth@redhat.com>
3389
3390         * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
3391         (substitute_and_fold): Propigate into VUSE operands when possible.
3392         (visit_phi_node): Handle UNKNOWN_VAL latticevalue.
3393         (cp_lattice_meet): Handle merging of latticevalues when
3394         UNKNOWN_VAL is present.
3395         (visit_stmt): Visit assignments with V_MUST_DEFs.
3396         (visit_assignment): Gather ccp information for V_MUST_DEF operands.
3397         (ccp_fold): Deal with RHS' that are constant and virtual.
3398         (evaluate_stmt): Handle UNKNOWN_VAL likely values.
3399         (dump_lattice_value): Dump UNKNOWN_VAL latticevalues.
3400         (initialize): Mark statements with V_MUST_DEFs as VARYING only if the
3401         V_MUST_DEF operand is VARYING. Fix comment and include VOPS when
3402         computing immediate uses.
3403         (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state
3404         transition.
3405         (replace_vuse_in): New function.
3406         (likely_value): Add check of vuse operands.
3407         (get_default_value): Set the default value of virtually defined
3408         variables to UKNOWN_VAL instead of VARYING.
3409
3410 2004-07-22  Richard Henderson  <rth@redhat.com>
3411
3412         * expr.c (emit_push_insn): Don't use set_mem_attributes.
3413
3414 2004-07-22  Richard Henderson  <rth@redhat.com>
3415
3416         * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used
3417         variables due to conditional compilation.
3418
3419 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
3420
3421         * tree-into-ssa.c (set_livein_block): Fix typo in comment.
3422         (rewrite_ssa_into_ssa): Start iterating over SSA names at 1.
3423         Release SSA names that have been re-renamed.
3424         * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the
3425         variable.
3426         * tree-ssa-alias.c (init_alias_info): If aliases have been
3427         computed before, clear existing alias information.
3428         (create_name_tags): Do no fixup PT_ANYTHING pointers.
3429         If the new name tag for a pointer is different than the one it
3430         had before, mark the old tag for renaming.
3431         (replace_may_alias): New function.
3432         (group_aliases): Call it.
3433         (setup_pointers_and_addressables): Always call get_tmt_for.
3434         (maybe_create_global_var): Don't create .GLOBAL_VAR more than
3435         once.
3436         (set_pt_anything): New local function.
3437         (set_pt_malloc): New local function.
3438         (merge_pointed_to_info): Don't merge pointed-to variables from
3439         the original pointer if the destination is pointing to an
3440         unknown location.
3441         (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc.
3442         (add_pointed_to_var): Do not add a variable to the points-to
3443         set if the pointer is already pointing to anywhere.
3444         (collect_points_to_info_r): If the defining statement is a PHI
3445         node, only merge pointed-to information if the argument has
3446         already been visited.
3447         (get_tmt_for): Only create a new tag if the pointer didn't
3448         have one already.
3449         (dump_alias_info): Emit more information.
3450         (dump_points_to_info_for): Likewise.
3451         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't
3452         try to get the annotation of an SSA_NAME.
3453         * tree-ssa-operands.c (add_stmt_operand): Only check for empty
3454         alias sets when checking is enabled.
3455         * tree-ssa-pre.c (need_eh_cleanup): New local variable.
3456         (eliminate): Mark basic blocks that will need
3457         EH information cleaned up.
3458         (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one
3459         predecessor.
3460         Initialize need_eh_cleanup.
3461         (fini_pre): Call tree_purge_all_dead_eh_edges and
3462         cleanup_tree_cfg if needed.
3463         Free need_eh_cleanup.
3464         * tree-ssa.c (verify_ssa_name): New function.
3465         (verify_def): Call it.
3466         Re-arrange to avoid printing too many error messages.
3467         (verify_use): Likewise.
3468         (verify_phi_args): Likewise.
3469         (verify_flow_insensitive_alias_info): New function.
3470         (verify_flow_sensitive_alias_info): New function.
3471         (verify_alias_info): New function.
3472         (verify_ssa): Call verify_alias_info.
3473         Clear TREE_VISITED on all the SSA_NAMEs before scanning the
3474         program.
3475         Re-arrange to avoid printing too many error messages.
3476         * tree-ssanames.c (make_ssa_name): Clear
3477         SSA_NAME_IN_FREE_LIST.
3478         (release_ssa_name): Never release a default definition.
3479         (release_defs): New function.
3480         * tree.h: Declare it.
3481         * tree-ssa-dce.c (remove_dead_stmt): Call it.
3482
3483 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
3484
3485         * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS.
3486         If true, do a depth-first search.  Do a breadht-first search,
3487         otherwise.
3488         (walk_use_def_chains): Add new argument IS_DFS.
3489         Update all users.
3490         * tree-flow.h (walk_use_def_chains): Update prototype.
3491
3492 2004-07-22  Hans-Peter Nilsson  <hp@axis.com>
3493
3494         * config/cris/cris.md: Tweak formatting.
3495         (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi)
3496         (mover2side, moverside, movemside, movei, op3, andu): Replace
3497         live define_peephole:s with define_peephole2 near-equivalents.
3498         Delete the rest.
3499         ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap".  Match all
3500         word-size modes.
3501         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
3502         Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and
3503         "*mov_sidesi_mem" respectively.
3504
3505 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
3506
3507         * tree-cfg.c (gimplify_val): Move from tree-complex.c.
3508         (gimplify_build1): Move from tree-complex.c do_unop.
3509         (gimplify_build2): Move from tree-complex.c do_binop.
3510         (gimplify_build3): New.
3511         * tree-complex.c (gimplify_val, do_unop, do_binop): Remove.
3512         Adjust throughout to call the functions above.
3513         * tree-flow.h: Declare the functions above.
3514         * tree-nested.c (gimplify_val): Rename to...
3515         (tsi_gimplify_val): ... this.
3516
3517         * Makefile.in (tree_complex.o): Update dependencies.
3518         (stor-layout.o): Depend on regs.h.
3519         * c-common.c (handle_vector_size_attribute): Update for
3520         vector types without corresponding vector modes.
3521         * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if
3522         a corresponding vector mode is not available.
3523         * print-tree.c (print_node): Print nunits for vector types
3524         * regclass.c (have_regs_of_mode): New.
3525         (init_reg_sets_1): Initialize it and use it instead
3526         of allocatable_regs_of_mode.
3527         * regs.h (have_regs_of_mode): Declare it.
3528         * stor-layout.c (layout_type): Pick a mode for vector types.
3529         * tree-complex.c (build_word_mode_vector_type, tree_vec_extract,
3530         build_replicated_const, do_unop, do_binop, do_plus_minus,
3531         do_negate, expand_vector_piecewise, expand_vector_parallel,
3532         expand_vector_addition, expand_vector_operations_1,
3533         expand_vector_operations, tree_lower_operations,
3534         pass_lower_vector_ssa, pass_pre_expand): New.
3535         (expand_complex_operations, pass_lower_complex): Remove.
3536         * tree-optimize.c (init_tree_optimization_passes): Adjust
3537         pass ordering for changes in tree-complex.c.
3538         * tree-pass.h: Declare new passes.
3539         * tree.c (finish_vector_type): Remove.
3540         (make_vector_type): New.
3541         (build_vector_type_for_mode, build_vector_type): Rewritten.
3542         * tree.def (VECTOR_TYPE): Document where the number of
3543         subparts is stored.
3544         * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
3545         (make_vector): Remove declaration.
3546
3547 2004-07-21  Richard Henderson  <rth@redhat.com>
3548
3549         * gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE,
3550         TREE_THIS_VOLATILE, may_aliases, or optimization level.
3551         (remove_useless_vars): Dump debugging info.
3552         (expand_used_vars): Move ...
3553         * cfgexpand.c (expand_used_vars): ... here.  Make static.
3554         * tree-flow-inline.h (set_is_used): New.
3555         (set_default_def): Use get_var_ann.
3556         * tree-flow.h: Update decls.
3557         * tree-ssa-live.c (mark_all_vars_used_1, mark_all_vars_used): New.
3558         (create_ssa_var_map): Use it.
3559         * tree-ssa.c (set_is_used): Remove.
3560
3561 2004-07-22  Ben Elliston  <bje@au.ibm.com>
3562
3563         * gdbinit.in: Set a breakpoint on internal_error.
3564
3565 2004-07-21  Richard Henderson  <rth@redhat.com>
3566
3567         * cfgexpand.c (expand_gimple_tailcall): Fix case where we need
3568         to create a new basic block.
3569
3570 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
3571
3572         PR c/15052
3573         * c-decl.c (grokdeclarator): Only pedwarn for qualified void
3574         return type on function definitions.  Move other warnings for
3575         qualified return type to -Wreturn-type.  Do not condition any such
3576         warnings on -pedantic.  Update comments.
3577         (start_function): Only copy function type from previous prototype
3578         declaration if return types are compatible.
3579         * c-typeck.c (function_types_compatible_p): Don't condition
3580         warning for incompatibility of volatile qualifiers on the return
3581         type on -pedantic.  Update comment.
3582         * doc/invoke.texi (-Wreturn-type, -Wextra): Update.
3583
3584 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
3585
3586         * c-typeck.c (set_init_index): Require designator to be of integer
3587         type.
3588
3589 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
3590
3591         PR c/11250
3592         * c-parse.in (init): Change to exprtype.
3593         (primary): Set original_code for STRING to STRING_CST.
3594         Call maybe_warn_string_init for compound literals.
3595         (initdcl, notype_initdcl): Call maybe_warn_string_init.
3596         (initval): Update.
3597         * c-tree.h (maybe_warn_string_init): New.
3598         (pop_init_level, process_init_element): Use struct c_expr.
3599         (struct c_expr): Update comment.
3600         * c-typeck.c (maybe_warn_string_init): New function.
3601         (digest_init): Call it.  Additional parameter strict_string.  All
3602         callers changed.
3603         (output_init_element): Likewise.
3604         (struct constructor_stack): Use struct c_expr for
3605         replacement_value.
3606         (really_start_incremental_init, push_init_level): Update.
3607         (pop_init_level): Update.  Return struct c_expr.
3608         (process_init_level): Update.  Take struct c_expr argument.
3609
3610 2004-07-21  David S. Miller  <davem@nuts.davemloft.net>
3611
3612         * config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous
3613         commit.
3614
3615 2004-07-21  Eric Christopher  <echristo@redhat.com>
3616
3617         * builtins.c (expand_builtin_setjmp_receiver): Fix comment for code
3618         removal.
3619         * c-decl.c (pop_scope): Ditto.
3620         * calls.c (expand_call): Remove call to current_nesting_level,
3621         update comment accordingly. Remove calls to expand_start_target_temps
3622         and expand_end_target_temps.
3623         * cfgexpand.c (construct_init_block): Remove call to
3624         expand_start_bindings_and_block.
3625         (construct_exit_block): Remove call to expand_end_bindings.
3626         * expr.c (safe_from_p): Remove BIND_EXPR handling.
3627         (expand_expr_real_1): Ditto. Fix formatting.
3628         (expand_vars): Delete.
3629         * stmt.c (POPSTACK): Remove block_stack.
3630         (stmt_status): Remove x_block_stack.
3631         (block_stack): Delete.
3632         (expand_start_bindings_and_block): Ditto.
3633         (expand_start_target_temps): Ditto.
3634         (expand_end_target_temps): Ditto.
3635         (current_nesting_level): Ditto.
3636         (warn_about_unused_variables): Ditto.
3637         (expand_end_bindings): Ditto.
3638         * tree.h: Remove declarations for above.
3639
3640 2004-07-21  Steven Bosscher  <stevenb@suse.de>
3641
3642         * rtl.h (insn_note): Remove NOTE_INSN_PREDICTION.
3643         * rtl.c (note_insn_name): Likewise.
3644         * print-rtl.c (print_rtx): Don't print it.
3645         * cfgrtl.h (can_delete_note_p): Don't handle it.
3646         (rtl_delete_block): Likewise.
3647         * passes.c (rest_of_handle_guess_branch_prob): Remove.
3648         (rest_of_compilation): Don't call it.
3649         * predict.c (process_note_predictions, process_note_prediction,
3650         note_prediction_to_br_prob): Remove.
3651         * basic-block.c (note_prediction_to_br_prob): Remove prototype.
3652         * stmt.c (return_prediction): Remove.
3653         (expand_value_return): Don't call it.  Don't add prediction
3654         notes for return statements.
3655
3656 2004-07-21  Josef Zlomek  <zlomekj@suse.cz>
3657
3658         * var-tracking.c (vt_find_locations): Set the in_pending bitmap at
3659         once.
3660
3661 2004-07-21  Paolo Bonzini  <bonzini@gnu.org>
3662
3663         * c-common.c (vector_types_convertible_p): Use vector types'
3664         TYPE_SIZE and TREE_TYPE instead of their mode.
3665         * convert.c (convert_to_integer): Likewise.
3666         (convert_to_vector): Likewise.
3667         * fold-const.c (fold_convert): Likewise.
3668         * varasm.c (output_constant): Likewise.
3669         * expr.c (store_constructor): Split ARRAY_TYPE and VECTOR_TYPE.
3670         Allow a VECTOR_TYPE initializer to be made of several vectors.
3671         For ARRAY_TYPEs and VECTOR_TYPES, simplify a bit the handling
3672         of cleared and need_to_clear, and use fold_convert.
3673         * c-typeck.c (build_binary_op): Do not use RDIV_EXPR for
3674         integer vectors.
3675
3676 2004-07-20  Richard Henderson  <rth@redhat.com>
3677
3678         * cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Split,
3679         (expand_gimple_basic_block): out from here.  Renamed from expand_block.
3680
3681 2004-07-20  David S. Miller  <davem@nuts.davemloft.net>
3682
3683         * config/sparc/sparc.c (sparc_rtx_costs case MULT): Emit
3684         enormous cost if not TARGET_HARD_MUL.
3685
3686 2004-07-20  Andrew Pinski  <apinski@apple.com>
3687
3688         PR target/16557
3689         * config/i386/darwin.h (CC1_SPEC): Move the -g SPECs from ...
3690         (ASM_SPEC): here.
3691
3692 2004-07-21  Paul brook  <paul@codesourcery.com>
3693
3694         * config/arm/arm.c (thumb_expand_prologue): Remove bogus GEN_INT.
3695
3696 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3697
3698         * fold-const.c (operand_equal_p): Temporarily support NULL args.
3699         (operand_equal_p, case ARRAY_REF): Compare args 2 and 3.
3700         (operand_equal_p, case COMPONENT_REF): Likewise, for arg 2.
3701
3702 2004-07-20  Zack Weinberg  <zack@codesourcery.com>
3703
3704         * rtl.h (plus_constant): Delete.
3705         (plus_constant_wide): Rename to plus_constant.
3706         (plus_constant_for_output_wide): Delete vestigial prototype.
3707         (GEN_INT): Remove unnecessary cast.
3708         * tree.h (build_int_2, size_int_type): Delete.
3709         (build_int_2_wide): Rename to build_int_2.
3710         (size_int_wide): Rename to size_int_kind.
3711         (size_int_type_wide): Rename to size_int_type.
3712         (size_int, ssize_int, bitsize_int, sbitsize_int): Use size_int_kind.
3713         Remove unnecessary cast.
3714         * tree.c (build_int_2_wide): Rename build_int_2; update comment.
3715         * explow.c (plus_constant_wide): Rename plus_constant; update comment.
3716         * fold-const.c (size_int_wide): Rename size_int_kind. Use size_int_type.
3717         (size_int_type_wide): Rename size_int_type.
3718         (int_const_binop): Use size_int_type.
3719         * c-lex.c (interpret_integer): Use build_int_2.
3720         * final.c (split_double): Remove unnecessary casts.
3721         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use build_int_2.
3722
3723 2004-07-20  Richard Henderson  <rth@redhat.com>
3724
3725         * gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c.
3726         (gimplify_compound_lval): Use is_gimple_tmp_reg.
3727         * tree-gimple.c (is_gimple_tmp_var): Move from gimplify.c.
3728         (is_gimple_tmp_reg): New.
3729         * tree-gimple.h (is_gimple_tmp_reg): Declare.
3730
3731 2004-07-20  Richard Henderson  <rth@redhat.com>
3732
3733         * tree-pretty-print.c (dump_generic_node): Dump
3734         CALL_EXPR_HAS_RETURN_SLOT_ADDR.
3735
3736 2004-07-20  Frank Ch. Eigler  <fche@redhat.com>
3737
3738         * tree-mudflap.c (mf_set_options_fndecl): New tree.
3739         (mudflap_init): Set it.
3740         (mudflap_register_call): Remove __mf_init call.
3741         (mudflap_finish_file): Emit call to __mf_init here.  Emit a call to
3742         to pass "-ignore-reads" option to libmudflap if needed.
3743
3744 2004-07-20  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
3745
3746         PR c++/14607
3747         * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY): Define.
3748         (MAKE_DECL_ONE_ONLY): Undefine.
3749         * pa-protos.h (som_text_section_asm_op, one_only_readonly_data_section,
3750         readonly_data, one_only_data_section, forget_section): New prototypes.
3751         * pa.c (pa_init_machine_status, som_text_section_asm_op): New
3752         functions.
3753         (pa_select_section): Add one-only (COMDAT) support.
3754         * pa.h (struct machine_function): Define.
3755         * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete.
3756         (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op.
3757         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
3758         ONE_ONLY_TEXT_SECTION_ASM_OP, ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
3759         ONE_ONLY_DATA_SECTION_ASM_OP): New defines.
3760         (EXTRA_SECTIONS): Add in_one_only_readonly_data and in_one_only_data.
3761         (EXTRA_SECTION_FUNCTIONS): Rework to use individual function macros.
3762         (READONLY_DATA_FUNCTION, ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
3763         ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New defines
3764         for EXTRA_SECTION_FUNCTIONS.
3765         * doc/install.texi: Update binutils requirements.
3766
3767 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
3768
3769         * vec.h (VEC_T_length, VEC_T_index, VEC_T_iterate, VEC_T_truncate,
3770         VEC_T_replace, VEC_T_quick_insert, VEC_T_safe_insert,
3771         VEC_T_ordered_remove, VEC_T_unordered_remove): Use unsigned, not
3772         size_t.
3773         (struct VEC): Use unsigned for num and alloc.
3774         * vec.c (struct vec_prefix): Likewise.
3775         (vec_o_reserve): Adjust.
3776
3777         * dbxout.c (dbxout_type): Fix printf format.
3778
3779         * tree.h (binfo_member): Remove.
3780         * tree.c (binfo_member): Remove.
3781
3782 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
3783
3784         * tree.h: Include vec.h
3785         (DEF_VEC_P(tree)): New type.
3786         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): Adjust.
3787         (BINFO_BASE_APPEND, BINFO_BASE_ITERATE): New.
3788         (BINFO_LANG_SLOT): Remove.
3789         (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF): New.
3790         (struct tree_binfo): Turn base_binfos into a trailing
3791         VEC(tree). Add vtt_subvtt, vtt_vptr, primary fields.
3792         (binfo_lang_slots): Remove.
3793         * tree.c (binfo_lang_slots): Remove.
3794         (make_tree_binfo_stat): Take a base binfo count, not a
3795         lang slot count.  Adjust.
3796         * Makefile.in (TREE_H): Add vec.h
3797         * alias.c (record_component_aliases): Adjust BINFO access.
3798         * dbxout.c (dbxout_type): Likewise.
3799         * dwarf2out.c (gen_member_die): Likewise.
3800         * sdbout.c (sdbout_one_type): Likewise.
3801         * tree-dump.c (deque_and_dump): Likewise.
3802         * config/i386/i386.c (classify_argument,
3803         contains_128bit_aligned_vector_p): Likewise.
3804         * config/sh/symbian.c (symbian_export_vtable_and_rtti_p): Likewise.
3805         * doc/c-tree.texi (Classes): Update BINFO documentation.
3806
3807 2004-07-20  Steven Bosscher  <stevenb@suse.de>
3808
3809         * c-common.h (check_case_value): Remove prototype.
3810         (c_add_case_label): Adjust prototype.
3811         * c-common.c (check_case_value): Make static.
3812         (check_case_bounds): New function.
3813         (c_add_case_label): Use it.  Take new argument orig_type.
3814         * c-typeck.c (struct c_switch): New orig_type field.
3815         (c_start_case): Set it.
3816         (do_case): Pass it to c_add_case_label.
3817         * expr.c (expand_expr_real_1): Don't warn for out-of-bounds
3818         cases from here.  Add the labels in reverse order.
3819         * stmt.c (struct case_node): Adjust comment.  Remove balance field.
3820         (add_case_node): Return nothing, don't check for duplicate cases.
3821         Insert new case nodes in a list, not in an AVL tree.
3822         (expand_end_case_type): Don't turn a case tree into a case list.
3823         (case_tree2list): Remove.
3824         * tree.h (add_case_node): Adjust prototype.
3825
3826 2004-07-19  Paolo Bonzini  <bonzini@gnu.org>
3827
3828         * genattr.c (struct range, struct function_unit,
3829         write_units, extend_range, init_range): Remove them.
3830         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
3831         Output "#define INSN_SCHEDULING" here.
3832         * genattrtab.c (struct range, struct function_unit_op,
3833         struct function_unit, struct dimension, enum operator,
3834         operate_exp, expand_units, simplify_knowing,
3835         encode_units_mask, simplify_by_exploding,
3836         find_and_mark_used_attributes, unmark_used_attributes,
3837         add_values_to_cover, increment_current_value,
3838         test_for_current_value, simplify_with_current_value,
3839         simplify_with_current_value_aux, gen_unit,
3840         write_unit_name, write_function_unit_info,
3841         write_complex_function, write_toplevel_expr,
3842         find_single_value, extend_range): Remove.
3843         (write_attr_get): Do not handle common_av->value
3844         being an FFS.
3845         (struct attr_desc): Remove func_units_p and blockage_p.
3846         (write_attr_valueq): Do not handle them.
3847         (find_attr): Do not clear them.
3848         (make_internal_attr): Do not initialize them.
3849         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
3850         * sched-vis.c (init_target_units, insn_print_units,
3851         init_block_visualization, print_block_visualization,
3852         visualize_scheduled_insns, visualize_no_unit,
3853         visualize_stall_cycles, visualize_alloc,
3854         visualize_free, target_units, get_visual_tbl_length,
3855         MAX_VISUAL_LINES, INSN_LEN, n_visual_lines,
3856         visual_tbl_line_length, visual_tbl, n_vis_no_unit,
3857         MAX_VISUAL_NO_UNIT, vis_no_unit): Remove.
3858         * haifa-sched.c (blockage_range, clear_units,
3859         schedule_unit, actual_hazard, potential_hazard,
3860         insn_unit, unit_last_insn, unit_tick,
3861         actual_hazard_this_instance, potential_hazard,
3862         schedule_unit, max_insn_queue_index_value): Remove.
3863         (MAX_INSN_QUEUE_INDEX): Removed, renamed throughout to
3864         max_insn_queue_index.
3865         * rtl.def (DEFINE_FUNCTION_UNIT): Remove.
3866         * doc/md.texi (Processor pipeline description): Remove
3867         references to old pipeline descriptions.
3868         (Automaton pipeline description): Merge with the above.
3869         (Old pipeline description, Comparison of the two descriptions):
3870         Remove.
3871
3872         * bt-load.c (migrate_btr_def): Remove references to
3873         use_pipeline_interface.
3874         * haifa-sched.c (insn_cost, schedule_insn,
3875         schedule_block, advance_one_cycle, sched_init,
3876         queue_to_ready, sched_finish): Likewise.
3877         * modulo-sched.c (sms_schedule, advance_one_cycle,
3878         ps_has_conflicts): Likewise.
3879         * sched-rgn.c (init_ready): Likewise.
3880         (debug_dependencies): Likewise, and remove an "if (1)".
3881         * target.h (use_dfa_pipeline_interface): Remove.
3882         * config/alpha/alpha.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
3883         * config/arc/arc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
3884         * config/arm/arm.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
3885         * config/c4x/c4x.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
3886         * config/frv/frv.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
3887         * config/i386/i386.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
3888         * config/ia64/ia64.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
3889         * config/iq2000/iq2000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
3890         * config/m32r/m32r.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
3891         * config/mcore/mcore.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
3892         * config/mips/mips.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
3893         * config/pa/pa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
3894         * config/rs6000/rs6000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
3895         * config/s390/s390.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
3896         * config/sh/sh.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
3897         * config/sparc/sparc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
3898         * config/v850/v850.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
3899         * config/xtensa/xtensa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
3900         * doc/tm.texi (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
3901
3902 2004-07-19  Roger Sayle  <roger@eyesopen.com>
3903
3904         * rtlanal.c (reg_set_p): Add check for regs_invalidated_by_call.
3905
3906 2004-07-19  Jeff Law  <law@redhat.com>
3907
3908         * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): New.
3909         (get_eq_expr_value): Use it.  Simplify slightly.
3910
3911 2004-07-19  Maciej W. Rozycki  <macro@linux-mips.org>
3912
3913         * config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list.
3914         (umulsidi3_32bit_r4000): Likewise.
3915
3916 2004-07-19  Nathan Sidwell  <nathan@codesourcery.com>
3917
3918         * vec.h: Propagate location information properly.
3919         (VEC_T_iterate): Add result pointer parameter.
3920         (VEC_T_space): New.
3921         (VEC_T_reserve): Use it.
3922
3923 2004-07-19  Daniel Jacobowitz  <dan@debian.org>
3924
3925         * Makefile.in (c-format.o): Depend on c-format.h.
3926         * c-format.h: New file.
3927         (struct format_char_info): Add CHAIN member.
3928         * c-format.c: Move some types and constants to c-format.h.
3929         (format_type_error): Set to -1.
3930         (struct function_format_info): Use an int for format_type.
3931         (decode_format_type): Return an int.  Return format_type_error
3932         on error.
3933         (print_char_table, asm_fprintf_char_table, gcc_diag_char_table)
3934         (gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table)
3935         (scan_char_table, time_char_table, monetary_char_table): Initialize
3936         CHAIN to NULL.
3937         (n_format_types): New variable.
3938         (check_format_info_main): Handle CHAIN in format_char_info.
3939         (handle_format_attribute): Handle TARGET_FORMAT_TYPES and
3940         TARGET_N_FORMAT_TYPES.
3941         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
3942         (sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c.
3943      &