X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FChangeLog;h=0f8b36e5c2ae04b3efe804d1d6c2b7cc19c79f1b;hb=8e51eac0149bdc641a31ff8f202d2adc625220af;hp=02ba1037f21f3ae3a5dff130a12028796c1b1963;hpb=280450faa1152c283c0bb88b31337cee8e569ff5;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 02ba1037f21..0f8b36e5c2a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,1133 @@ +2004-07-28 Richard Sandiford + + * config/frv/frv.h (EPILOGUE_USES): New. Use LR. + +2004-07-28 Richard Sandiford + + * cse.c (validate_canon_reg): New function, split out from... + (canon_reg): ...here. Use validate_canon_reg for both 'e' and 'E'. + +2004-07-28 Diego Novillo + + * tree-ssa-alias.c (maybe_create_global_var): Don't just + return if .GLOBAL_VAR has been created. + +2004-07-28 Diego Novillo + + * tree-ssa.c (verify_flow_insensitive_alias_info): Process + every variable that may have aliases, not just tags. + +2004-07-28 Aldy Hernandez + + * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to + move_from_CR_eq_bit. + Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ. + + + * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to + e500_flip_eq_bit. + + * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to + output_e500_flip_eq_bit. + + * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to + output_e500_flip_eq_bit. + (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to + output_e500_flip_eq_bit. + Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit. + (print_operand): case D. Get to EQ bit. + +2004-07-28 Richard Sandiford + + * gcov.c (function_summary): Add missing \n. + +2004-07-28 Alexandre Oliva + + Introduce sh4a support. + * config.gcc: Handle sh4a multilibs and cpu selection. + * config/sh/sh.h: Likewise. Handle sh4a command line flags. + * config/sh/t-mlib-sh4a: New. + * config/sh/t-mlib-sh4al: New. + * config/sh/t-mlib-sh4a-nofpu: New. + * config/sh/t-mlib-sh4a-single: New. + * config/sh/t-mlib-sh4a-single-only: New. + 2004-02-20 DJ Delorie + * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua". + * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support. + 2003-08-22 Eric Christopher + * config/sh/sh4a.md: Update for chip errata. + 2003-08-07 Eric Christopher + * config/sh/sh4a.md: New file. sh4a processor description. + 2003-07-08 Alexandre Oliva + * config/sh/sh.h (TARGET_SWITCHES): Added 4al. Adjust description + of -m4a-nofpu. + (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu. + * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu. + * doc/invoke.texi (SH Options): Document -m4al. + 2003-07-03 Alexandre Oliva + * config/sh/sh.c (expand_block_move): Remove commented-out code + checked in by mistake. + (sh_cannot_change_mode_class): Enable SUBREGs to be used to select + single elements from SFmode vectors. + * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output + register. + (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER. + 2003-07-01 Alexandre Oliva + * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int, + sh_fsca_int2sf): Remove variable declarations. + * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int, + sh_fsca_int2sf): New functions. + (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx, + sh_fsca_int2sf_rtx): New static variables. + * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int, + sh_fsca_int2sf): Declare. + * config/sh/sh.md: Adjust. + * doc/invoke.texi (SH Options): Document new options. + * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward + compatibility from SH4 code. + 2003-06-27 Alexandre Oliva + * config/sh/sh.c (expand_block_move): Don't emit POST_INC too + early. + (memory_movsrc_operand): Renamed to... + (unaligned_load_operand): ... this. Simplified. + * config/sh/sh.h (PREDICATE_CODES): Adjust. + * config/sh/sh.md (movua, extv, extzv): Likewise. Change movua's + input operand to SImode, and adjust the others. Introduce + post-increment by peephole. + * config/sh/sh.c (expand_block_move): Give the target address the + same mode as the temp reg. + * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned + copying. + 2003-06-26 Alexandre Oliva + Introduce support for SH4a. + * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if + __SH4A__. Emit 4 4kb blocks and touch all of them otherwise. + * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int, + sh_fsca_int2sf): New. + (sh_init_builtins): Initialize them. + (print_operand): Support `d'. + (expand_block_move): Use movua if src is misaligned. + (memory_movsrc_operand): New. + * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__ + and one of the SH4 macros. + (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP, + SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A, + SELECT_SH4A_SINGLE): New. + (TARGET_NONE): Add SH4A_BIT. + (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a. + (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu. + (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare. + (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate. + (enum processor_type): Added PROCESSOR_SH4A. + (PREDICATE_CODES): Add memory_movsrc_operand. + * config/sh/sh.md: Removed unused variables. + (attr cpu): Add sh4a. + (attr type): Add movua, fsrra and fsca. + (prefetch): New, for SH4. + (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi. + (toggle_sz): Set type to fp. + (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New. + (movua, extv, extzv): New. + * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single + and 4a-single-only. + +2004-07-28 Diego Novillo + + * tree-optimize.c (init_tree_optimization_passes): Schedule + pass_may_alias right after the program is renamed into SSA. + * tree-pass.h (PROP_alias): Define. + * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias. + * tree-sra.c (pass_sra): Likewise. + * tree-ssa-ccp.c (pass_ccp): Likewise. + * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise. + * tree-ssa-dce.c (pass_dce): Likewise. + * tree-ssa-dom.c (pass_dominator): Likewise. + * tree-ssa-dse.c (pass_dse): Likewise. + * tree-ssa-forwprop.c (pass_forwprop): Likewise. + * tree-ssa-loop-ch.c (pass_ch): Likewise. + * tree-ssa-phiopt.c (pass_phiopt): Likewise. + * tree-ssa-pre.c (pass_pre): Likewise. + * tree-tailcall.c (pass_tail_recursion): Likewise. + * tree-ssa.c (pass_redundant_phi): Likewise. + * tree-ssa-alias.c (aliases_computed_p): Remove. + Update all users. + (init_alias_info): Do not mark all type tags for renaming + unconditionally. + Clear may_aliases from every symbol. + (setup_pointers_and_addressables): If a pointer has not been + dereferenced and it had a type tag, clear it and mark the old + tag for renaming. + +2004-07-28 Diego Novillo + + PR tree-optimization/16705 + * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on + .GLOBAL_VAR. + +2004-07-27 Richard Kenner + + * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error + check. + + * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR, + don't make another one. + + PR optimization/15077 + * function.h (struct function): Add field saved_static_chain_decl. + Fix comment for static_chain_decl. + * tree-inline.c (save_body): Add new arg and handle static_chain_decl. + * tree-inline.h (save_body): Add new arg. + * tree-optimize.c (tree_rest_of_compilation): Handle saving + static_chain_decl. + +2004-07-27 Richard Henderson + + * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove. + (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use + is_gimple_addressable. + * tree-gimple.c (is_gimple_addressable): Rename from + is_gimple_addr_expr_arg; accept INDIRECT_REF. + (is_gimple_lvalue): Don't test INDIRECT_REF directly. + * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for + rename to is_gimple_addressable. + +2004-07-28 Alan Modra + + * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards. + +2004-07-27 Richard Henderson + + * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT + before rounding. + +2004-07-27 Zack Weinberg + + * libgcc2.c: Change all conditionals testing + LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80. + * libgcc2.h: Likewise. + * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set + TYPE_PRECISION of float80_type to 80. + * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION + of fpreg_type and float80_type to 80. + * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h + * config/m68k/netbsd-elf.h: + Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE + to evaluate to 80 whenever they would formerly have evaluated to 96. + * config/i386/sco5.h: Remove unnecessary redefinition of + LONG_DOUBLE_TYPE_SIZE. + * doc/rtl.texi: Clarify uses of XFmode and TFmode. + * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for + XFmode, with a bitsize of 80. Update commentary. + * config/ia64/ia64-modes.def: Likewise. + * config/m68k/m68k-modes.def: Likewise. + +2004-07-27 Steven Bosscher + + * cfgexpand.c (tree_expand_cfg): Fix comment. + + * calls.c (expand_call): Ignore rtx_equal_function_value_matters. + * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets): + Remove. + (prepare_function_start): Don't set rtx_equal_function_value_matters. + * integrate.c (copy_rtx_and_substitute): Don't test for it. + * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets. + Don't set rtx_equal_function_value_matters. Don't register RTL hooks + here again. Update leading comment. + * rtl.c (rtx_equal_function_value_matters): Remove. + (rtx_equal_p): Don't test for it. + * simplify-rtx.c (simplify_binary_operation, simplify_subreg): + Likewise. + + * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND. + * rtl.c (note_insn_name): Likewise. + * emit-rtl.c (remove_unnecessary_notes): Don't handle it. + * final.c (final_scan_insn): Likewise. + + * except.c (finish_eh_generation): Don't call cfg_cleanup from here. + * passes.c (rest_of_handle_eh): Do it here. + + * stmt.c (struct nesting): Remove struct nesting block member. + (struct stmt_status): Remove x_block_start_count field. + (current_block_start_count): Remove. + +2004-07-27 Brian Booth + + * tree-optimize.c (register_one_dump_file): Update condition that uses + static_pass_number. + (dup_pass_1): Replace with... + (next_pass_1): This. + (NEXT_PASS): Call next_pass_1. + (DUP_PASS): Remove. + (init_tree_optimization_passes): Remove uses of DUP_PASS. + (execute_one_pass): Update condition that uses + static_pass_number. + * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed + integer. + +2004-07-27 Nick Clifton + + * config/m32r/m32r.c: Include integrate.h in order to get the + prototype for get_hard_reg_initial_val(). + + * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r" + and tidy up indentation. + (final_presence_set): Use absence_set instead, so that if there is + nothing in the "o" pipe the "s" pipe can be scheduled. + +2004-07-27 Diego Novillo + + * tree-ssa-alias.c (create_name_tags): Ignore pointers that + don't have PT_VARS nor PT_MALLOC set. + Clear name tag from pointers that have not been dereferenced. + (set_pt_anything, set_pt_malloc): Forward declare. + * tree-ssa-copy.c (may_propagate_copy): Compare alias sets, + not type compatibility when determining if a pointer can be + copy propagated. + +2004-07-27 Richard Sandiford + + * expr.h (canonicalize_condition, get_condition): Add an int argument. + * gcse.c (fis_get_condition): Reimplement using get_condition, leaving + it to check whether the condition is still valid at the jump insn. + * ifcvt.c (noce_get_condition): Likewise. + (noce_get_alt_condition): Update call to canonicalize_condition. + * loop-iv.c (simplify_using_initial_values): Update call to + get_condition. Remove FIXME. + (check_simple_exit): Update call to get_condition. + * loop-unswitch.c (may_unswitch_on): Likewise. + * loop.c (check_dbra_loop): Likewise. + (canonicalize_condition, get_condition): Add an argument to say whether + the condition must still be valid at INSN. + (get_condition_for_loop): Update call to get_condition. Require that + the condition be valid at INSN. + * predict.c (estimate_probability): Update call to get_condition. + Remove unused earliest parameter. + (expected_value_to_br_prob): Update call to canonicalize_condition. + +2004-07-26 Eric Christopher + + * tree-dfa.c (add_referenced_var): Register initializers of global + variables. + +2004-07-26 Paolo Bonzini + + * config/i386/i386.c (function_arg): Always treat 8- + and 16-byte wide vectors the same, even if MMX/SSE + are disabled. + (contains_128bit_aligned_vector_p): Add comment. + +2004-07-26 J"orn Rennecke + + * ra.h (enum node_type): Rename to: + (enum ra_node_type). + * ra-colorize.c: Likewise. + +2004-07-26 Richard Sandiford + + * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag + after simplifying the jump. + +2004-06-26 Richard Henderson + + * calls.c (combine_pending_stack_adjustment_and_call): Make + preferred_unit_stack_boundary argument unsigned. Make + unadjusted_alignment unsigned. + (expand_call): Make preferred_stack_boundary and + preferred_unit_stack_boundary variables unsigned. + * function.c (assign_stack_local_1): Make alignment unsigned. + * function.h (struct function): Make stack_alignment_needed, + preferred_stack_boundary unsigned. + * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned. + (ix86_compute_frame_layout): Make stack_alignment_needed, + preferred_alignment variables unsigned. + * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned. + +2004-07-26 Tom Tromey + + * tree.h: Fix typo in comment. + +2004-07-26 Daniel Jacobowitz + + PR bootstrap/12804 + * ggc-zone.c (struct alloc_chunk): Remove attribute packed. + (MAX_FREE_BIN_SIZE): Increase on 64-bit targets. + (ggc_free): Remove incorrect freeing. + (sweep_pages): Advance PP for large pages. Fix indentation. + +2004-07-26 Richard Sandiford + + PR rtl-optimization/16643 + * cfglayout.h (cfg_layout_initialize): Add a flags parameter. + * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg. + * basic-block.h (reorder_basic_blocks): Add a flags parameter. + * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize. + (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize. + * function.c (thread_prologue_and_epilogue_insns): Likewise. + * rtl.h (tracer): Add a flags parameter. + * tracer.c (tracer): Pass it to cfg_layout_initialise. + * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks. + (rest_of_handle_reorder_blocks): Update calls to tracer and + reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate. + (rest_of_handle_tracer): Pass 0 to tracer. + (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize. + +2004-07-25 David Edelsohn + + PR target/16239 + * config/rs6000/rs6000.md (movdi_internal64): Further disparage + f->f. + +2004-07-24 Nathan Sidwell + + * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree). + (BINFO_BASE_ACCESS): Adjust. + (BINFO_BASE_ACCESS_APPEND): New. + (struct tree_binfo): Make base_accesses a VEC(tree) pointer. + * dbxout.c (dbxout_type): Adjust binfo access accessing. + * dwarf2out.c (gen_member_die): Likewise. + * tree-dump.c (deque_and_dump): Likewise. + +2004-07-26 Falk Hueffner + + * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div + costs. + +2004-07-25 Roger Sayle + + * config/i386/i386.c (output_fp_compare): Use ffreep to pop top + value off of the stack if TARGET_USE_FFREEP. + +2004-07-26 Bernardo Innocenti + + * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC (). + * gengtype-yacc.y: Likewise. Replace free() with XDELETE (). + * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer + check on invocation of XRESIZEVEC (). + +2004-07-26 Bernardo Innocenti + + * c-common.c (disable_builtin_function): Rename variable n to + new_disabled_builtin. + * c-decl.c (duplicate_decls): Rename parameter decl to new_decl. + Rename local variable old to old_decl. + * gensupport.c (shift_output_template): Rename parameter old to src. + * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to + old_rtx and newx to new_rtx. + +2004-07-26 Bernardo Innocenti + + * Makefile.in (C_PRAGMA_H): New variable to track dependencies + of c-pragma.h. + * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to + enum cpp_ttype. + * c-lex.c: Likewise. + +2004-07-25 Roger Sayle + + * fold-const.c (constant_boolean_node): Make extern. + (make_range): Wrap long lines. + (fold_cond_expr_with_comparison): Remove unnecessary call to + pedantic_non_lvalue. Add missing calls to fold_convert. + (fold_truthop): Add missing calls to fold_convert. + (fold): Likewise. + * tree.h (constant_boolean_node): Add prototype here. + * builtins.c (expand_builtin_strncmp): Add missing calls to + fold_convert. + * tree-ssa-dom.c (record_equivalences_from_incoming_edge): + Call fold_convert and constant_boolean_node to correct types. + * tree-ssa-forwprop.c (substitute_single_use_vars): Add + missing call to fold_convert to correct types. + +2004-07-26 Niall Douglas + Brian Ryner + + PR c++/9283 + PR c++/15000 + * c-common.c (c_common_attribute_table): Allow + handle_visibility_attribute to be called for types. + (handle_visibility_attribute) When given a type, set the visibility + bits on the TYPE_NAME. When given a decl, don't set no_add_attrs + so that we can check later whether the attribute was present. Added + warning if attribute applied to non class type. + * c-decl.c (diagnose_mismatched_decls): Updated rules for merging + decls and checking that they are consistent. + * common.opt: Added -fvisibility. + * c.opt, c-opts.c: Added -fvisibility-inlines-hidden. + * c-pragma.h, c-pragma.c: Added handle_pragma_visibility(). + * flags.h, tree.h: Added assorted support defines for overall patch + * opts.c: Added parsing support for -fvisibility. + * tree.c (build_decl): Set visibility for all decls to be whatever + is in force at that time. + * varasm.c (default_binds_local_p_1): Reworked logic determining + when to make a symbol locally bound. + * doc/invoke.texi: Added documentation for -fvisibility and + -fvisibility-inlines-hidden. + +2004-07-25 Bernardo Innocenti + + * basic-block.h (reorder_block_def): Rename to reorder_block_def_p. + * c-common.c: Add missing casts from void * to other types. + * c-decl.c: Likewise. + * c-format.c: Likewise. + * c-lex.c: Likewise. + * c-pragma.c: Likewise. + * c-typeck.c: Likewise. + * defaults.h: Likewise. + * genconstants.c: Likewise. + * gengtype-lex.l: Likewise. + * genmodes.c: Likewise. + * read-rtl.c: Likewise. + * rtl.c: Likewise. + +2004-07-25 Bernardo Innocenti + + * bitmap.c: Use type-safe memory allocation macros from libiberty. + * c-common.c: Likewise. + * c-decl.c: Likewise. + * c-lang.c: Likewise. + * c-lex.c: Likewise. + * c-opts.c: Likewise. + * c-parse.in: Likewise. + * c-typeck.c: Likewise. + * genconditions.c: Likewise. + * gengtype-lex.l: Likewise. + * gengtype-yacc.y: Likewise. + * gengtype.c: Likewise. + * genmodes.c: Likewise. + * gensupport.c: Likewise. + * read-rtl.c: Likewise. + * read-rtl.c (read_constants): Use INSERT instead of TRUE in call to + htab_find_slot(). + +2004-07-25 Bernardo Innocenti + + * c-decl.c (groktypename, groktypename_in_param_context): Rename + variable typename to type_name. + * c-lex.c (interpret_float): Likewise. + +2004-07-25 Roger Sayle + + * convert.c (convert_to_real, convert_to_integer, + convert_to_complex): Replace calls to build with calls to buildN. + * coverage.c (tree_coverage_counter_ref): Likewise. + * dojump.c (do_jump): Likewise. + * dwarf2out.c (loc_descriptor_from_tree): Likewise. + * emit-rtl.c (component_ref_for_mem_expr, + set_mem_attributes_minus_bitpos): Likewise. + * explow.c (update_nonlocal_goto_save_area): Likewise. + * expmed.c (expand_shift, make_tree, const_mult_add_overflow_p, + expand_mult_add): Likewise. + * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall, + store_constructor, get_inner_reference, expand_expr_real_1, + try_casesi, try_tablejump): Likewise. + * function.c (expand_function_start): Likewise. + * stmt.c (emit_case_bit_tests, expand_end_case_type, + node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise. + * stor-layout.c (place_union_field, layout_type): Likewise. + * tree.c (substitute_in_expr, tree_fold_gcd): Likewise. + * varasm.c (copy_constant): Likewise. + +2004-07-25 Bernardo Innocenti + + * c-common.c: Rename all identifiers named `new'. + * c-decl.c: Likewise. + * gensupport.c: Likewise. + * simplify-rtx.c: Likewise. + * c-common.c (disable_builtin_function): Replace a call to xmalloc() + with XNEW(). + * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc() + with XNEWVEC(). + +2004-07-25 Joseph S. Myers + + PR c/15360 + * c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized + declarations until after calling pushdecl. + (grokdeclarator): Set DECL_EXTERNAL for variables based on use of + "extern" and not on whether the declaration is initialized. + +2004-07-25 Daniel Jacobowitz + + * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*) + (sparc-*-solaris2*): Include sol2.o and sol2-protos.h. + * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h", + "cpplib.h", "c-pragma.h", "c-common.h". + (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini) + (solaris_register_pragmas): New functions. + * config/sol2-protos.h: New file. + * config/sol2.c: New file. + * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE) + (REGISTER_TARGET_PRAGMAS): New macros. + (solaris_pending_aligns, solaris_pending_inits) + (solaris_pending_finis): New variables. + * config/t-sol2 (sol2-c.o): Update dependencies. + (sol2.o): New rule. + * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of + SUBTARGET_INSERT_ATTRIBUTES. + (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE. + * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES) + (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define. + * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine. + * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine. + * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES) + (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define. + * config/sparc/sparc.c (sparc_attribute_table): New. + (TARGET_INSERT_ATTRIBUTES): Define in terms of + SUBTARGET_INSERT_ATTRIBUTES. + (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE + is defined. + * doc/extend.texi (Solaris Pragmas): New section. + +2004-07-25 Bernardo Innocenti + + * c-common.c: Rename all identifiers named `class' to `cl'. + * c-common.h: Likewise. + * c-parse.in: Likewise. + * c-typeck.c: Likewise. + * genmodes.c: Likewise. + * real.c: Likewise. + * real.h: Likewise. + * recog.c: Likewise. + * recog.h: Likewise. + * regrename.c: Likewise. + * tree.h: Likewise. + * c-common.c (builtin_function_2): Change type of 5th parameter from + int to enum built_in_function. Change type of 8th parameter from int + to bool. + * c-decl (builtin_function): Replace call to ggc_alloc_cleared () + with GGC_CNEW(). + * c-typeck.c (convert_arguments): Change type of formal_prec from + int to unsigned int. + * genmodes.c (blank_mode): Make a few negative constants unsigned. + (complete_all_modes, calc_wider_mode, emit_insn_modes_h, + emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size, + emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner, + emit_mode_base_align, emit_class_narrowest_mode): Pass an integer + iterator to for_all_modes () instead of an enum because enums can't + be incremented in C++. + + +2004-07-25 Daniel Jacobowitz + + * regmove.c (optimize_reg_copy_1): Don't try to replace call-used + hard registers. + +2004-07-25 Richard Kenner + + * tree-ssa-operands.c (get_stmt_operands, get_expr_operands): + Handle ARRAY_RANGE_REF like ARRAY_REF. + +2004-07-25 Joseph S. Myers + + * c-typeck.c (digest_init): Don't allow arrays of signed or + unsigned variants of wchar_t to be initialized by wide string + constants. Do allow arrays of enumerated types compatible with + wchar_t to be initialized by wide string constants. Refine tests + distinguishing wide and narrow strings and arrays. Give specific + error for arrays of other integer types initialized by string + constants. + (output_init_element, process_init_element): Check for + INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when + initializing with string constants. + +2004-07-25 Richard Henderson + + * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P + on the RESULT_DECL. + * cgraphunit.c (cgraph_build_static_cdtor): Likewise. + * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and + DECL_IGNORED_P to new decl. + +2004-07-24 Zack Weinberg + + * config/ia64/ia64.c (general_xfmode_operand) + (destination_xfmode_operand): Delete. + * config/ia64/ia64.h (PREDICATE_CODES): Remove them. + * config/ia64/ia64.md (*movxf_internal): Use general_operand + and destination_operand. + +2004-07-24 Alexander Kabaev + + * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing. + (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS. + +2004-07-24 Alexander Kabaev + Zack Weinberg + + * tree.h (staticp): Change return type to bool. + +2004-07-25 Bernardo Innocenti + + * c-common.c (c_staticp): Last episode of the staticp saga. + +2004-07-25 Bernardo Innocenti + + * c-common.h (c_staticp): Change return type from int to bool. + * tree.c (staticp): Likewise. + * langhooks.h (staticp): Likewise. + +2004-07-25 Bernardo Innocenti + + * langhooks-def.h (lhd_staticp): Change return type from int to + bool in prototype to match definition. + +2004-07-25 Bernardo Innocenti + + * system.h (bool, true, false): Don't redefine as preprocessor macros + in C++. + +2004-07-24 Roger Sayle + + * expmed.c (init_expmed): A signed modulus by a power of two is + considered cheap if its less than or equal to four instructions. + +2004-07-25 Bernardo Innocenti + + * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, + GGC_CNEWVAR): New macros. + +2004-07-25 Bernardo Innocenti + + * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter + lists. + * c-decl.c: Likewise. + * c-format.c: Likewise. + * c-lex.c: Likewise. + * c-opts.c: Likewise. + * c-pragma.c: Likewise. + * c-typeck.c: Likewise. + * gencheck.c: Likewise. + * genconditions.c: Likewise. + * genconfig.c: Likewise. + * genflags.c: Likewise. + * gengtype.c: Likewise. + * gensupport.c: Likewise. + * ggc-none.c: Likewise. + * langhooks.c: Likewise. + * statistics.h: Likewise. + * stub-objc.c: Likewise. + * java/decl.c: Likewise. + +2004-07-24 Roman Zippel + + * config/m68k/m68k.c (output_scc_di): Fix coding style. + (symbolic_operand): Fix prototype. + * config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand. + * config/m68k/m68k.md: Add constants for registers a0 and sp and + use them, change from the "{...}" syntax to the simpler {...} + syntax. + (*cfv4_extendqisi2): Fix destination predicate. + * config/m68k/m68k-protos.h: Remove various declarations also + generated via PREDICATE_CODES. + +2004-07-23 Mike Stump + + * c-typeck.c (convert_for_assignment): Tightened up pointer + converstions that differ in signedness. + +2004-07-23 Zack Weinberg + + * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED. + +2004-07-23 Richard Kenner + + * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'. + * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New. + + * gimplify.c (gimplify_compound_lval): Check for no handled + operations, rather than checking for explicit list of nodes. + (is_gimple_addr_expr_arg_or_indirect): New function. + (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove + redundant setting of TREE_INVARIANT. + (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval. + * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p. + +2004-07-23 Diego Novillo + + PR tree-optimization/16688 + PR tree-optimization/16689 + * tree-ssa-alias.c (setup_pointers_and_addressables): Remove + unnecessary initialization of 'tag'. + (get_tmt_for): Check that the new type tag has the same alias + set as the pointed-to type. + (group_aliases): Only regular variables need to be removed + from the alias set of a name tag. + * tree-ssa-copy.c (may_propagate_copy): Do not allow copy + propagation if the two types are not compatible. + (merge_alias_info): Rename from replace_ssa_names_ann. + Add more checking. + (replace_exp_1): If both arguments are SSA_NAMEs, check that + the propagation can be done. + Only call merge_alias_info on pointers. + (propagate_value): Likewise. + * tree-ssa-copyrename.c: Include langhooks.h. + (copy_rename_partition_coalesce): Call replace_ssa_name_symbol + to do the merging. + Do not coalesce variables with incompatible types. + (rename_ssa_copies): Call replace_ssa_name_symbol. + * tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has + the same type as the underlying _DECL. + * tree-ssanames.c (replace_ssa_name_symbol): New function. + * tree.h (replace_ssa_name_symbol): Declare. + +2004-07-23 Richard Henderson + + PR c++/16277 + * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval; + unshare it properly. + (gimplify_modify_expr_rhs): Push assignment from a conditional into + the conditional for all non-register types. + +2004-07-23 Richard Henderson + + * expr.c (expand_expr_real_1): Don't handle non-local variables. + * expr.h (fix_lexical_addr): Remove. + * function.c (NEED_SEPARATE_AP): Remove. + (fix_lexical_addr): Remove. + * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC, + not null decl_function_context. + (create_alias_vars): Likewise. + * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels. + (simple_goto_p): Likewise. + * tree-dfa.c (add_referenced_var): Don't check for non-local variables. + * tree-ssa-ccp.c (get_default_value): Likewise. + * tree-tailcall.c (suitable_for_tail_opt_p): Likewise. + * tree.c (needs_to_live_in_memory): Likewise. + * tree-flow-inline.h (may_be_aliased): Move... + * tree-ssa-alias.c (may_be_aliased): ... here. Enhance check for + when TREE_STATIC variables may be addressable. + +2004-07-24 Jakub Jelinek + + * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp. + +2004-07-23 Zack Weinberg + + * print-rtl.c (print_rtx ): Don't attempt to print + bitmap contents if GENERATOR_FILE is defined. + * Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o. + ($(BUILD_PREFIX_1)bitmap.o): Delete rule. + +2004-07-23 Joseph S. Myers + + * c-decl.c (start_function): Form composite type of function types + rather than copying type from previous prototype declaration. + +2004-07-23 Janis Johnson + + * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove + the const qualifier for the second argument in the C++ functions. + + * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use + specific pointer types. + + * config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm, + vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used + for vector bool and/or vector pixel, add C++ and C missing support. + (vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh, + vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh, + vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum, + vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws, + vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add + missing C++ and C support for vector bool and/or vector pixel. + (vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw, + vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw, + vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw, + vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub, + vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix + C++ and C types used for vector bool and/or vector pixel. + (vec_st, vec_stl): Add C++ support for vector pixel. + (vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool. + (vec_all_ne): Add C++ support for vector pixel. + + * config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name. + (vec_vmulesb): Add missing C++ function. + (vec_perm): Fix type of third argument in C++ function. + (vec_vsum4shs): Fix C++ function name. + (vec_any_ge): Remove C++ functions for unsupported arg combinations. + (vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the + argument passed to the error handler in C macro. + (vec_nmsub): Remove extra parens around argument names in C macro. + (vec_packpx): Add missing parens in C macro. + +2004-07-22 Paolo Bonzini + + * machmode.def: Remove vector modes. + * config/alpha/alpha-modes.def: Add supported vector modes. + * config/arm/arm-modes.def: Likewise. + * config/frv/frv-modes.def: Likewise. + * config/i386/i386-modes.def: Likewise. + * config/rs6000/rs6000-modes.def: Likewise. + * config/sh/sh-modes.def: Likewise. + +2004-07-23 Matthias Klose + + * intl.c (gcc_init_libintl): Use PACKAGE for the text domain. + * configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE. + * config.h: Regenerate. + * configure: Likewise. + +2004-07-22 Mark Mitchell + + * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on + generated SYMBOL_REFs for labels. + * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr): + Change prototype. + (machopic_stub_name): Remove. + (machopic_indirection_name): New function. + (machopic_mcount_stub_name): Likewise. + (machopic_classify_name): Remove. + (machopic_function_base_sym): New function. + (machpoic_classify_symbol): Likewise. + (machopic_classify_ident): Remove. + (machopic_define_ident): Likewise. + (machopic_define_name): Likewise. + (machopic_name_defined_p): Likewise. + (machopic_ident_defined_p): Likewise. + (darwin_strip_name_encoding): Likewise. + (machopic_define_symbol): New function. + * config/darwin.c (hashtab.h): Include. + (machopic_defined_list): Remove. + (machopic_classify_ident): Likewise. + (machopic_classify_name): Likewise. + (machopic_ident_defined_p): Likewise. + (machopic_define_ident): Likewise. + (machopic_define_name): Likewise. + (machopic_symbol_defined_p): New function. + (machopic_classify_symbol): Likewise. + (machopic_data_defined_p): Use machopic_classify_symbol. + (machopic_define_symbol): New function. + (machopic_function_base_sym): New function. + (machopic_non_lazy_pointers): Remove. + (machopic_non_lazy_ptr_name): Likewise. + (machopic_stubs): Likewise. + (machopic_stub_name): Likewise. + (NON_LAZY_POINTER_SUFFIX): New macro. + (STUB_SUFFIX): Likewise. + (machopic_indirection): New structure. + (machopic_indirections): New variable. + (machopic_indirection_hash): New function. + (machopic_indirection_eq): Likewise. + (machopic_indirection_name): Likewise. + (machopic_mcount_stub_name): New function. + (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use + hash table. + (machopic_indirect_data_reference): Rework to use new functions. + (machopic_indirect_call_target): Likewise. + (machopic_legitimize_pic_address): Likewise. + (machopic_output_indirection): New function. + (machopic_finish): Use it. + (machopic_operand_p): Rework to use new functions. + (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS. + (darwin_strip_name_encoding): Remove. + (update_non_lazy_ptrs): Remove. + (update_stubs): Likewise. + (darwin_non_lazy_pcrel): Use new functions. + * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise. + (ASM_OUTPUT_LABELREF): Likewise. + (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise. + (MACHO_SYMBOL_FLAG_VARIABLE): New macro. + (MACHO_SYMBOL_FLAG_DEFINED): Likewise. + (TARGET_STRIP_NAME_ENCODING): Do not use + darwin_strip_name_encoding. + (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use + darwin_strip_name_encoding. + * config/i386/darwin.h (FUNCTION_PROFILER): Use + machopic_mcount_stub_name. + * config/i386/i386.c (x86_output_mi_thunk): Use + machopic_indirection_name, not machopic_stub_name. + * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use + machopic_function_base_sym. + (print_operand): Use machopic_classify_symbol. + (rs6000_emit_prologue): Use machopic_function_base_sym. + (output_profile_hook): Do not use machopic_stub_name. + (macho_branch_isalnds): Do not use darwin_strip_name_encoding. + +2004-07-22 Joseph S. Myers + + PR c/7284 + * fold-const.c (extract_muldiv_1): Do not treat signed left shift + as multiplication. + +2004-07-22 Joseph S. Myers + + * doc/implement-c.texi: New file. + * doc/extend.texi (C Implementation): Move to there. + * doc/gcc.texi: Include implement-c.texi. + * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi. + +2004-07-22 Jason Merrill + + * integrate.c (copy_decl_for_inlining): Remove invisible reference + handling. + * tree-inline.c (setup_one_parameter): Likewise. + +2004-07-22 Brian Booth + + * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL. + (substitute_and_fold): Propigate into VUSE operands when possible. + (visit_phi_node): Handle UNKNOWN_VAL latticevalue. + (cp_lattice_meet): Handle merging of latticevalues when + UNKNOWN_VAL is present. + (visit_stmt): Visit assignments with V_MUST_DEFs. + (visit_assignment): Gather ccp information for V_MUST_DEF operands. + (ccp_fold): Deal with RHS' that are constant and virtual. + (evaluate_stmt): Handle UNKNOWN_VAL likely values. + (dump_lattice_value): Dump UNKNOWN_VAL latticevalues. + (initialize): Mark statements with V_MUST_DEFs as VARYING only if the + V_MUST_DEF operand is VARYING. Fix comment and include VOPS when + computing immediate uses. + (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state + transition. + (replace_vuse_in): New function. + (likely_value): Add check of vuse operands. + (get_default_value): Set the default value of virtually defined + variables to UKNOWN_VAL instead of VARYING. + +2004-07-22 Richard Henderson + + * expr.c (emit_push_insn): Don't use set_mem_attributes. + +2004-07-22 Richard Henderson + + * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used + variables due to conditional compilation. + +2004-07-22 Diego Novillo + + * tree-into-ssa.c (set_livein_block): Fix typo in comment. + (rewrite_ssa_into_ssa): Start iterating over SSA names at 1. + Release SSA names that have been re-renamed. + * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the + variable. + * tree-ssa-alias.c (init_alias_info): If aliases have been + computed before, clear existing alias information. + (create_name_tags): Do no fixup PT_ANYTHING pointers. + If the new name tag for a pointer is different than the one it + had before, mark the old tag for renaming. + (replace_may_alias): New function. + (group_aliases): Call it. + (setup_pointers_and_addressables): Always call get_tmt_for. + (maybe_create_global_var): Don't create .GLOBAL_VAR more than + once. + (set_pt_anything): New local function. + (set_pt_malloc): New local function. + (merge_pointed_to_info): Don't merge pointed-to variables from + the original pointer if the destination is pointing to an + unknown location. + (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc. + (add_pointed_to_var): Do not add a variable to the points-to + set if the pointer is already pointing to anywhere. + (collect_points_to_info_r): If the defining statement is a PHI + node, only merge pointed-to information if the argument has + already been visited. + (get_tmt_for): Only create a new tag if the pointer didn't + have one already. + (dump_alias_info): Emit more information. + (dump_points_to_info_for): Likewise. + * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't + try to get the annotation of an SSA_NAME. + * tree-ssa-operands.c (add_stmt_operand): Only check for empty + alias sets when checking is enabled. + * tree-ssa-pre.c (need_eh_cleanup): New local variable. + (eliminate): Mark basic blocks that will need + EH information cleaned up. + (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one + predecessor. + Initialize need_eh_cleanup. + (fini_pre): Call tree_purge_all_dead_eh_edges and + cleanup_tree_cfg if needed. + Free need_eh_cleanup. + * tree-ssa.c (verify_ssa_name): New function. + (verify_def): Call it. + Re-arrange to avoid printing too many error messages. + (verify_use): Likewise. + (verify_phi_args): Likewise. + (verify_flow_insensitive_alias_info): New function. + (verify_flow_sensitive_alias_info): New function. + (verify_alias_info): New function. + (verify_ssa): Call verify_alias_info. + Clear TREE_VISITED on all the SSA_NAMEs before scanning the + program. + Re-arrange to avoid printing too many error messages. + * tree-ssanames.c (make_ssa_name): Clear + SSA_NAME_IN_FREE_LIST. + (release_ssa_name): Never release a default definition. + (release_defs): New function. + * tree.h: Declare it. + * tree-ssa-dce.c (remove_dead_stmt): Call it. + +2004-07-22 Diego Novillo + + * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS. + If true, do a depth-first search. Do a breadht-first search, + otherwise. + (walk_use_def_chains): Add new argument IS_DFS. + Update all users. + * tree-flow.h (walk_use_def_chains): Update prototype. + +2004-07-22 Hans-Peter Nilsson + + * config/cris/cris.md: Tweak formatting. + (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi) + (mover2side, moverside, movemside, movei, op3, andu): Replace + live define_peephole:s with define_peephole2 near-equivalents. + Delete the rest. + ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap". Match all + word-size modes. + ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"): + Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and + "*mov_sidesi_mem" respectively. + +2004-07-22 Paolo Bonzini + + * tree-cfg.c (gimplify_val): Move from tree-complex.c. + (gimplify_build1): Move from tree-complex.c do_unop. + (gimplify_build2): Move from tree-complex.c do_binop. + (gimplify_build3): New. + * tree-complex.c (gimplify_val, do_unop, do_binop): Remove. + Adjust throughout to call the functions above. + * tree-flow.h: Declare the functions above. + * tree-nested.c (gimplify_val): Rename to... + (tsi_gimplify_val): ... this. + + * Makefile.in (tree_complex.o): Update dependencies. + (stor-layout.o): Depend on regs.h. + * c-common.c (handle_vector_size_attribute): Update for + vector types without corresponding vector modes. + * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if + a corresponding vector mode is not available. + * print-tree.c (print_node): Print nunits for vector types + * regclass.c (have_regs_of_mode): New. + (init_reg_sets_1): Initialize it and use it instead + of allocatable_regs_of_mode. + * regs.h (have_regs_of_mode): Declare it. + * stor-layout.c (layout_type): Pick a mode for vector types. + * tree-complex.c (build_word_mode_vector_type, tree_vec_extract, + build_replicated_const, do_unop, do_binop, do_plus_minus, + do_negate, expand_vector_piecewise, expand_vector_parallel, + expand_vector_addition, expand_vector_operations_1, + expand_vector_operations, tree_lower_operations, + pass_lower_vector_ssa, pass_pre_expand): New. + (expand_complex_operations, pass_lower_complex): Remove. + * tree-optimize.c (init_tree_optimization_passes): Adjust + pass ordering for changes in tree-complex.c. + * tree-pass.h: Declare new passes. + * tree.c (finish_vector_type): Remove. + (make_vector_type): New. + (build_vector_type_for_mode, build_vector_type): Rewritten. + * tree.def (VECTOR_TYPE): Document where the number of + subparts is stored. + * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field. + (make_vector): Remove declaration. + 2004-07-21 Richard Henderson * gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE,