OSDN Git Service

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