X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FChangeLog;h=9513dcd0825dc1f9ff62b6b780a21b9617b019cf;hb=c5a4df253229217debaf0a53a8ea210429733c6f;hp=23dfc078da958e8693653aacea252a2155eb6581;hpb=3faa52bc1969ceadce5ae922eadf4f2ef4674ed4;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 23dfc078da9..9513dcd0825 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,684 @@ +2006-12-12 Marcin Dalecki + + * doc/passes.texi: remove docs about "redundant PHI removal". + * tree-pass.h: remove orphaned declaration of pass_redundant_phi, + remove redundant pass_partition_blocks declaration. + +2006-12-12 Andrew Macleod + + PR tree-optimization/30159 + * tree-ssa-coalesce.c (coalesce_ssa_name): Process single ssa_name + functions in case a default_def coalesce is required. + +2006-12-12 Jakub Jelinek + + PR libstdc++/11953 + * gthr-posix.h (_REENTRANT): Only define if __osf__ is defined. + + * config/ia64/linux.h (CPP_SPEC): Define. + * config/s390/linux.h (CPP_SPEC): Define. + +2006-12-12 Jim Wilson + Jakub Jelinek + + PR rtl-optimization/27761 + * combine.c (try_combine): Don't create a useless garbage SET + if PATTERN (i2) is a PARALLEL. If added_sets_1, save + PATTERN (i1) resp. SET from i1src to i1dest in i1pat + and use it to prevent accidental modification of i1src. + +2006-12-12 Ira Rosen + + * tree-vect-analyze.c (vect_analyze_data_ref_access): Add another check + for stores with gaps. + * tree-vect-transform.c (vect_permute_store_chain): Create + interleave_high or interleave_low according to the endianess. + +2006-12-12 Richard Guenther + + PR middle-end/30147 + * fold-const.c (fold_read_from_constant_string): Only fold read + from constant string if the result type is integer. + +2006-12-12 Olivier Hainque + + * config/rs6000/t-vxworks: Remove assignment to LIB2FUNCS_EXTRA. + +2006-12-12 Olivier Hainque + + * config/vxlib.c: Extract tls related routines into ... + * config/vxlib-tls.c: New file. + * config/t-vxworks: Add vxlib-tls.c to LIB2FUNCS_EXTRA. + +2006-12-12 Sa Liu + Ben Elliston + + * config/spu/spu.opt (mfixed-range): New option. + * config/spu/spu.h (spu_fixed_range_string): Declare. + * config/spu/spu.c (spu_override_options): Handle -mfixed-range. + (fix_range): New function. + * doc/invoke.texi (SPU Options): Document -mfixed-range. + * testsuite/gcc.target/spu/fixed-range.c: New. + * testsuite/gcc.target/spu/fixed-range-bad.c: Ditto. + +2006-12-11 H.J. Lu + + PR middle-end/17982 + PR middle-end/20218 + * cgraphunit.c (cgraph_optimize): Remove call to + process_pending_assemble_externals. + + * config/elfos.h (ASM_OUTPUT_EXTERNAL): New. + + * config/ia64/hpux.h (TARGET_ASM_FILE_END): Removed. + + * config/ia64/ia64.c (ia64_asm_output_external): Rewritten. + (ia64_hpux_add_extern_decl): Removed. + (ia64_hpux_file_end): Likewise. + (extern_func_list): Likewise. + (extern_func_head): Likewise. + + * output.h (assemble_external): Update comments. + (default_elf_asm_output_external): New. + (maybe_assemble_visibility): New. + + * toplev.c (compile_file): Update comment. + + * varasm.c (assemble_external): Always put it on + pending_assemble_externals. + (maybe_assemble_visibility): Make it extern and return int. + (default_elf_asm_output_external): New. + +2006-12-11 Daniel Berlin + + * tree-ssa-structalias.c (handle_ptr_arith): Return false when we + can't handle the pointer arithmetic. + +2006-12-11 Diego Novillo + + * doc/tree-ssa.texi: Update documentation for virtual operands + and the use of push_stmt_changes/pop_stmt_changes. + * doc/invoke.texi: Remove documentation for params + global-var-threshold. + Update documentation on max-aliased-vops. + + * tree-into-ssa.c: Cleanup comments, variables and + spacing in various functions. + (regs_to_rename): Declare. + (mem_syms_to_rename): Declare. + (dump_update_ssa): Declare. + (debug_update_ssa): Declare. + (dump_names_replaced_by): Declare. + (debug_names_replaced_by): Declare. + (dump_def_blocks): Declare. + (debug_def_blocks): Declare. + (dump_defs_stack): Declare. + (debug_defs_stack): Declare. + (dump_currdefs): Declare. + (debug_currdefs): Declare. + (mark_def_sites): Do not handle virtual operands. + (compute_idf): Rename from find_idf. Update users. + (register_new_def): Make local. Convert second argument + to 'tree'. + Use BLOCK_DEFS_STACK directly. + If pushing a non-register, also push the underlying + symbol. + (rewrite_stmt): Do not handle virtual operands. + (dump_tree_ssa): Call dump_def_blocks, dump_defs_stack, + dump_currdefs and dump_tree_ssa_stats. + (dump_tree_ssa_stats): Also dump REPL_TBL. + (replace_use): Remove. Update all users to call SET_USE + instead. + (rewrite_blocks): Move code to free memory to + fini_ssa_renamer. + (mark_def_site_blocks): Move initialization code to + init_ssa_renamer. + (init_ssa_renamer): New. + (fini_ssa_renamer): New. + (rewrite_into_ssa): Call them. + (prepare_block_for_update): Process SSA_OP_ALL_USES first + and SSA_OP_ALL_DEFS later. Do not process virtual + operands separately. + (dump_update_ssa): Call dump_decl_set. + (init_update_ssa): Initialize regs_to_rename and + mem_syms_to_rename. + Call init_ssa_renamer. + (delete_update_ssa): Call fini_ssa_renamer. + Free blocks_with_phis_to_rewrite. + (mark_sym_for_renaming): If the variable has + sub-variables, also mark them. + If the variable belongs to a partition, also mark it. + (mark_set_for_renaming): Call mark_sym_for_renaming on + every symbol in the set. + (switch_virtuals_to_full_rewrite): Call + mark_set_for_renaming. + (update_ssa): Separate syms_to_rename into regs_to_rename + and mem_syms_to_rename. + + * tree-dump.c (dump_options): Add TDF_MEMSYMS. + * tree-pretty-print.c (debug_generic_expr): Add TDF_MEMSYMS. + (debug_generic_stmt): Likewise. + (debug_tree_chain): Likewise. + (dump_symbols): New. + (dump_generic_node): Check for TDF_MEMSYMS. + Handle MEMORY_PARTITION_TAG. + If the statement references memory and TDF_MEMSYMS is + given, call dump_symbols. + Indicate default names with (D). + (dump_vops): Update for new virtual operator format. + + * tree.c (init_ttree): Add MEMORY_PARTITION_TAG to + tree_contains_struct. + (tree_code_size): Handle MEMORY_PARTITION_TAG. + (tree_node_structure): Likewise. + (needs_to_live_in_memory): Handle SSA names. + * tree.h (MTAG_P): Likewise. + (struct tree_memory_partition_tag): Declare. + (MPT_SYMBOLS): Define. + (union tree_node): Add field 'mpt'. + * treestruct.def (TS_MEMORY_PARTITION_TAG): Define. + * tree.def (MEMORY_PARTITION_TAG): Define. + + * tree-pass.h (TDF_MEMSYMS): Define. + + * params.h (GLOBAL_VAR_THRESHOLD): Remove. + + * tree-ssa-alias.c: Include pointer-set.h + (struct alias_map_d): Remove fields total_alias_vops, + grouped_p and may_aliases. Update all users. + (struct mp_info_def): Declare. + (mp_info_t): New type. + (get_smt_for): Rename from get_tmt_for. Update all + users. + (add_may_alias): Add argument ALREADY_ADDED. If given, + use it to avoid adding duplicate entries to alias sets. + (replace_may_alias): Remove. Update all users. + (total_alias_vops_cmp): Remove. Update all users. + (group_aliases_into): Remove. Update all users. + (tree_pointer_compare): Remove. Update all users. + (compact_name_tags): Remove. Update all users. + (group_aliases): Remove. Update all users. + (mark_non_addressable): Move from tree-flow-inline.h. + Remove the symbol from the partition holding it, if + needed. + (dump_mp_info): New. + (debug_mp_info): New. + (sort_mp_info): New. + (create_partition_for): New. + (rewrite_alias_set_for): New. + (compute_memory_partitions): New. + (compute_may_aliases): Call it. + (init_alias_info): If computing aliases for the first + time, mark every memory symbol for renaming. + (have_common_aliases_p): New. + (compute_flow_insensitive_aliasing): Call it. + (setup_pointers_and_addressables): Do not cache + num_referenced_vars. + For register promoted symbols, mark their former + partition for renaming. + (maybe_create_global_var): Only create .GLOBAL_VAR if + there are no call-clobbered variables and a mix of pure + and non-pure functions were found. + (may_alias_p): Tidy comments. + (create_tag_raw): Remove unused variable new_type. + (dump_alias_info): call dump_memory_partitions. + (dump_points_to_info_for): Call dump_decl_set. + (may_be_aliased): Tidy comments and formatting. + + * timevar.def (TV_MEMORY_PARTITIONING): Define. + * tree-vectorizer.c (vect_memsyms_to_rename): Rename from + vect_vnames_to_rename. Set DECL_UIDs instead of SSA name + versions in it. + (slpeel_update_phi_nodes_for_guard1): Ignore memory PHIs. + * tree-vect-transform.c (vect_transform_loop): Call + mark_set_for_renaming with vect_memsyms_to_rename. + * tree-flow-inline.h (zero_imm_uses_p): New. + (memory_partition): New. + (set_memory_partition): New. + (factoring_name_p): New. + (symbol_mem_tag): New. Update every function that used + to access the annotation directly. + (set_symbol_mem_tag): Likewise. + + * tree-ssa-copy.c (may_propagate_copy): Allow copies + between a partition and a symbol as long as the symbol + belongs to the partition. + (merge_alias_info): Ignore merge requests when memory + partitions are involved. + + * tree-ssa.c (verify_ssa_name): Check that default + definitions have empty defining statements. + (verify_use): Remove argument IS_VIRTUAL. + Don't call verify_ssa_name. + (verify_phi_args): Call verify_ssa_name. + (verify_flow_insensitive_alias_info): Handle MPTs. + (verify_flow_sensitive_alias_info): Likewise. + (verify_name_tags): Likewise. + (verify_call_clobbering): Likewise. + (verify_ssa): Check for VOPs only after aliasing + information is available. + Check virtuals and real operands separately. + Call verify_ssa_name on every operand. + (stmt_references_memory_p): Move to tree-ssa-operands.c. + (walk_use_def_chains_1): Guard against NULL PHI + arguments. + + * tree-ssa-operands.c (stmt_references_memory_p): Move from + tree-ssa.c. + (get_mpt_for): New. + (dump_memory_partitions): New. + (debug_memory_partitions): New. + + * tree-flow.h (struct var_ann_d): Add field mpt. + (struct stmt_ann_d): Add bitfield references_memory. + * Makefile.in (tree-ssa-structalias.o): Include + pointer-set.h + (tree-ssa-alias.o): Likewise. + * tree-ssa-structalias.c: (update_alias_info): Use + STORED_SYMS to determine which variables are being + written to by the store operation. + * tree-ssa-structalias.h (struct alias_info) + : Remove. Update all users. + : Change to a pointer set. Update all + users. + : Likewise. + : Likewise. + (NUM_REFERENCES): Remove. Update all users. + (NUM_REFERENCES_CLEAR): Remove. Update all users. + (NUM_REFERENCES_INC): Remove. Update all users. + (NUM_REFERENCES_SET): Remove. Update all users. + + * params.def (PARAM_GLOBAL_VAR_THRESHOLD): Remove. + Update all users. + (PARAM_MAX_ALIASED_VOPS): Set to 10. + * tree-ssanames.c (make_ssa_name): Initialize + SSA_NAME_IS_DEFAULT_DEF to 0. + +2006-12-11 Aldy Hernandez + + * tree-ssa-dse.c (aggregate_vardecl_d): New. + (dse_global_data): Add aggregate_vardecl field. + (dse_possible_dead_store_p): New. + Add prev_defvar variable. + Allow immediate uses and previous immediate uses to differ + if they are setting different parts of the whole. + (get_aggregate_vardecl): New. + (dse_record_partial_aggregate_store): New. + (dse_whole_aggregate_clobbered_p): New. + (dse_partial_kill_p): New. + (dse_optimize_stmt): Abstract code checking a possible dead store + into new function dse_possible_dead_store_p(). + Call dse_maybe_record_aggregate_store(). + When checking whether a STMT and its USE_STMT refer to the + same memory address, check also for partial kills that clobber + the whole. + Move some variable definitions to the block where they are used. + (aggregate_vardecl_hash): New. + (aggregate_vardecl_eq): New. + (aggregate_vardecl_free): New. + (aggregate_whole_store_p): New. + (tree_ssa_dse): Initialize and free aggregate_vardecl. + Mark which aggregate stores we care about. + +2006-12-11 Andrew Macleod + + * tree-ssa-operands.h (struct vuse_element_d): Declare. + (vuse_element_t): Declare. + (struct vuse_vec_d): Declare. + (vuse_vec_p): Declare. + (VUSE_VECT_NUM_ELEM): Define. + (VUSE_VECT_ELEMENT_NC): Define. + (VUSE_ELEMENT_PTR_NC): Define. + (VUSE_ELEMENT_VAR_NC): Define. + (VUSE_VECT_ELEMENT): Define. + (VUSE_ELEMENT_PTR): Define. + (VUSE_ELEMENT_VAR): Define. + (struct maydef_optype_d) : Remove. + : Remove. + : Add. + (struct vuse_optype_d) : Remove. + : Remove. + : Add. + (struct mustdef_optype_d) : Remove. + : Remove. + : Add. + (VUSE_OP_PTR): Add argument. Use VUSE_ELEMENT_PTR. + (VUSE_OP): Add argument. Use VUSE_ELEMENT_PTR. + (VUSE_NUM): Define. + (VUSE_VECT): Define. + (MAYDEF_OP_PTR): Add argument. Use VUSE_OP_PTR. + (MAYDEF_OP): Add argument. Use VUSE_OP. + (MAYDEF_NUM): Define. + (MAYDEF_VECT): Define. + (MUSTDEF_KILL_PTR): Use VUSE_OP_PTR. + (MUSTDEF_KILL): Use VUSE_OP. + (MUSTDEF_NUM): Define. + (MUSTDEF_VECT): Define. + (realloc_maydef): Declare. + (realloc_vuse): Declare. + (struct ssa_operand_iterator_d) : Add. + : Add. + (LOADED_SYMS): Define. + (STORED_SYMS): Define. + (FOR_EACH_SSA_MUSTDEF_OPERAND): Call op_iter_next_mustdef. + * tree-into-ssa.c: Adapt for multi-operand V_MAY_DEF and VUSE + operators. + * tree-pretty-print.c: Likewise. + * tree-ssa-dse.c: Likewise. + * tree-flow-inline.h: Likewise. + (op_iter_next_mustdef): New. + * tree-ssa-operands.c: Likewise. + (ALLOC_OPTYPE): Remove. + Update all users. + (alloc_def): New. + (alloc_use): New. + (alloc_maydef): New. + (alloc_vuse): New. + (alloc_mustdef): New. + (realloc_maydef): New. + (realloc_vuse): New. + +2006-12-11 Aldy Hernandez + + * tree-ssa-operands.c: Remove build_v_must_defs. + (init_ssa_operands): Delete build_v_must_defs. + (finalize_ssa_v_must_def_ops): Remove. + (finalize_ssa_v_must_defs): Remove. + (finalize_ssa_stmt_operands): Do not call + finalize_ssa_v_must_defs. + (start_ssa_stmt_operands): Do not check build_v_must_defs. + (append_v_must_def): Delete. + (copy_virtual_operands): Do not copy V_MUST_DEFs. + (get_modify_expr_operands): Remove reference to V_MUST_DEF from + comment. Remove opf_kill_def. + (build_ssa_operands): Remove references to v_must_defs. + (copy_virtual_operands): Same. + (copy_virtual_operands): Same. + (fini_ssa_operands): Same. + (free_ssa_operands): Same. + (add_mustdef_op): Remove. + Remove mustdef_optype_p. + (alloc_mustdef): Remove. + Remove references to V_MUST_DEFs in comment at top of file. + (get_expr_operands): Remove opf_kill_def. + (opf_kill_def): Remove. + (add_virtual_operand): Remove opf_kill_def. + (get_indirect_ref_operands): Same. + (get_tmr_operands): Same. + + * tree-vectorizer.c (rename_variables_in_bb): Remove + SSA_OP_ALL_KILLS. + + * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Remove + SSA_OP_ALL_KILLS. + (check_loop_closed_ssa_stmt): Same. + + * tree-ssa.c (verify_def): Remove V_MUST_DEF from comment. + (verify_use): Same. + (verify_ssa): Remove V_MUST_DEFs traces. + (verify_ssa): Remove SSA_OP_ALL_KILLS. + + * tree-into-ssa.c (mark_def_sites): Change SSA_OP_VMUSTDEF to + SSA_OP_VMAYDEF. + (rewrite_update_stmt): Remove SSA_OP_VIRTUAL_KILLS. + (rewrite_stmt): Remove SSA_OP_ALL_KILLS. + + * tree-ssa-operands.h (struct stmt_operands_d): Remove V_MUST_DEF + references. + (MUSTDEF_OPS): Remove. + (SSA_OP_VMUSTDEF): Remove. + (FOR_EACH_SSA_MUSTDEF_OPERAND): Remove. + (struct mustdef_optype_d): Remove. + Remove mustdef_optype_p. + (struct stmt_operands_d): Remove mustdef_ops. + (ssa_operand_iterator_d): Remove mustdefs and mustkills. + (SSA_OP_VIRTUAL_DEFS): Remove SSA_OP_VMUSTDEF. + (MUSTDEF_RESULT_PTR): Remove. + (MUSTDEF_RESULT): Remove. + (MUSTDEF_KILL_PTR): Remove. + (MUSTDEF_KILL): Remove. + (MUSTDEF_NUM): Remove. + (MUSTDEF_VECT): Remove. + (SSA_OP_VIRTUAL_KILLS): Remove. + (SSA_OP_ALL_VIRTUALS): Remove SSA_OP_VIRTUAL_KILLS. + (SSA_OP_VMUSTKILL): Remove. + (SSA_OP_ALL_KILLS): Remove. + (SSA_OP_ALL_OPERANDS): Remove SSA_OP_ALL_KILLS. + + * tree-flow-inline.h (op_iter_init_def): Remove + SSA_OP_VIRTUAL_KILLS. + (delink_stmt_imm_use): Remove SSA_OP_ALL_KILLS. + + * tree-ssa-pre.c (compute_rvuse_and_antic_safe): Remove + SSA_OP_VIRTUAL_KILLS. + + * tree-ssa-loop-im.c (determine_max_movement): Remove + SSA_OP_VIRTUAL_KILLS. + (gather_mem_refs_stmt): Same. + (gather_mem_refs_stmt): Same. + + * tree-ssa-dce.c (mark_really_necessary_kill_operand_phis): Delete. + (perform_tree_ssa_dce): Remove call to + mark_really_necessary_kill_operand_phis. + + * tree-flow-inline.h (op_iter_init): Remove setting of mustdefs + and mustkills. + (op_iter_next_use): Do not check mustkills. + (op_iter_next_def): Do not check mustdefs. + (op_iter_next_tree): Do not check mustkills or mustdefs. + (clear_and_done_ssa_iter): Do not set mustdefs or mustkills. + (op_iter_next_maymustdef): Do not check mustkills. + (op_iter_init_must_and_may_def): Remove SSA_OP_VMUSTKILL. + (op_iter_init_mustdef): Remove. + + * tree-ssa-live.c (create_ssa_var_map): Change SSA_OP_VMUSTDEF to + SSA_OP_VMAYDEF. + + * tree-ssa-dse.c (dse_optimize_stmt): Remove SSA_OP_VMUSTDEF. + + * tree-ssa-ccp.c: Remove V_MUST_DEF traces from comments. + (visit_assignment): Same. + + * tree-ssa-copy.c (copy_prop_visit_assignment): Same. + + * tree-sra.c (mark_all_v_defs_1): Remove V_MUST_DEF from comment. + + * tree-outof-ssa.c (check_replaceable): Remove SSA_OP_VMUSTDEF. + + * tree-pretty-print.c (dump_vops): Remove printing of V_MUST_DEF. + Remove kill_p variable. + + * tree-dfa.c (struct dfa_stats_d): Remove num_v_must_defs. + (dump_dfa_stats): Remove code related to V_MUST_DEFs. + (collect_dfa_stats_r): Do not set num_v_must_defs. + (mark_new_vars_to_rename): Remove v_must_defs_{before,after} + code. + + * tree-into-ssa.c (mark_def_sites): Change SSA_OP_VMUSTKILL to + SSA_OP_VMAYUSE. + + * tree-ssa-pre.c (compute_rvuse_and_antic_safe): Remove + SSA_OP_VMUSTDEF and SSA_OP_VMUSTKILL. + + * tree-ssa-propagate.c (stmt_makes_single_store): Remove + SSA_OP_VMUSTDEF. + +2006-12-11 Zdenek Dvorak + + PR rtl-optimization/30113 + * loop-iv.c (implies_p): Require the mode of the operands to be + scalar. + +2006-12-11 Diego Novillo + + * tree-ssa-operands.h (create_ssa_artificial_load_stmt): + Rename from create_ssa_artficial_load_stmt. Update all users. + * tree-into-ssa.c (register_new_def): Make static. + * tree.c (is_global_var): Handle SSA_NAMEs. + * tree.h (SSA_NAME_IS_DEFAULT_DEF): Define. Update all users + that used to call gimple_default_def. + * tree-ssa-operands.c (push_stmt_changes): New. + (pop_stmt_changes): New. Update every pass that modifies + statements to bracket modifications with + push_stmt_changes/pop_stmt_changes. + (discard_stmt_changes): New. + * tree-ssa-dom.c (stmts_to_rescan): Change to stack of + 'tree *' instead of 'tree'. Update all users. + * tree-flow-inline.h (zero_imm_uses_p): New. + (symbol_mem_tag): New. Update every function that used + to access the annotation directly. + (set_symbol_mem_tag): Likewise. + * tree-dfa.c (dump_variable): Always show the escape mask. + (mark_symbols_for_renaming): Rename from + mark_new_vars_to_rename. Update all users. + Only mark to rename naked symbols in real and virtual + operands. + +2006-12-11 Andreas Schwab + + * varasm.c (elf_record_gcc_switches): Cast second argument of + ASM_OUTPUT_SKIP to unsigned HOST_WIDE_INT. + +2006-12-11 Diego Novillo + + * tree-scalar-evolution.c (scev_const_prop): + * tree-phinodes.c (remove_phi_node): Add argument + RELEASE_LHS_P. If given, release the SSA name on the LHS of + the PHI node. + Update all users. + * tree-ssa-dce.c: Remove forward declarations for static + functions. Re-arrange functions bodies as needed. + (find_obviously_necessary_stmts): Never mark PHI nodes as + obviously necessary. + +2006-12-11 Carlos O'Donell + + * config/arm/elf.h (MAX_OFILE_ALIGNMENT): Remove definition. + +2006-12-11 Jan Hubicka + + * value-prof.c (tree_stringops_transform): New. + (tree_value_profile_transformations): Require count to be non-zero; + call stringop transform; reset stmt BSI after BB changed. + (tree_divmod_fixed_value, tree_mod_pow2): Don't emit unnecesary label. + (interesting_stringop_to_profile_p, tree_stringop_fixed_value): New. + (tree_stringops_values_to_profile): New. + (tree_values_to_profile): Call tree_stringops_values_to_profile. + * tree.h (build_string_literal): Tidy prototype. + (validate_arglist, builtin_memset_read_str, get_pointer_alignment): + Declare. + * builtins.c (validate_arglist, builtin_memset_read_str, + get_pointer_alignment): Export. + +2006-12-11 Uros Bizjak + + PR target/30120 + Revert: + 2006-11-15 Uros Bizjak + + * config/i386/i386.opt: New target option -mx87regparm. + + * config/i386/i386.h (struct ix86_args): Add x87_nregs, x87_regno, + float_in_x87: Add new variables. mmx_words, sse_words: Remove. + (X87_REGPARM_MAX): Define. + + * config/i386/i386.c (override_options): Error out for + -mx87regparm but no 80387 support. + (ix86_attribute_table): Add x87regparm. + (ix86_handle_cconv_attribute): Update comments for x87regparm. + (ix86_comp_type_attributes): Check for mismatched x87regparm types. + (ix86_function_x87regparm): New function. + (ix86_function_arg_regno_p): Add X87_REGPARM_MAX 80387 floating + point registers. + (init_cumulative_args): Initialize x87_nregs and float_in_x87 + variables. + (function_arg_advance): Process x87_nregs and x87_regno when + floating point argument is to be passed in 80387 register. + (function_arg): Pass XFmode arguments in 80387 registers for local + functions. Pass SFmode and DFmode arguments to local functions + in 80387 registers when flag_unsafe_math_optimizations is set. + + * reg-stack.c (convert_regs_entry): Disable NaN load for + stack registers that are used for argument passing. + + * doc/extend.texi: Document x87regparm function attribute. + * doc/invoke.texi: Document -mx87regparm. + +2006-12-11 Jan Hubicka + + Move all varpool routines out of cgraph/cgraphunit to varpool.c + * cgraph.c: Update comments. + (cgraph_varpool_hash, + cgraph_varpool_nodes, cgraph_varpool_last_needed_node + cgraph_varpool_node_name, cgraph_varpool_node, + cgraph_varpol_mode_for_asm, cgraph_varpool_mark_needed_node, + cgraph_variable_initializer_availability): Move to + varpool.c and drop cgraph_ prefixes. + (cgraph_varpool_enqueue_needed_node, cgraph_varpool_reset_queue, + cgraph_varpool_first_unanalyzed_node, cgraph_varpool_finalize_decl): + move to varpool.c; drop cgraph_ prefix; make static. + (dump_cgraph_varpool_node): Move to varpool.c under name + dump_varpool_node. + (dump_varpool, hash_varpool_node, eq_varpool_node, + decide_is_variable_needed): Move to varpool.c + (decl_assembler_name_equal): Move to tree.c. + (availability_names): Rename to ... + (cgraph_availability_names): ... this one. + (dump_cgraph_node): Update. + * cgraph.h: Reorder declarations now in varpool.c + (cgraph_vailablity_names): Declare. + (struct cgraph_varpool_node): Rename to ... + (struct varpool_node): ... this one. + (cgraph_varpool_first_unanalyzed_node, cgraph_varpool_nodes_queue, + cgraph_varpool_first_unanalyzed_node, cgraph_varpool_node, + cgraph_varpool_node_for_asm, cgraph_varpool_mark_needed_node, + cgraph_varpool_finalize_decl, cgraph_varpool_enqueue_needed_node, + cgraph_varpool_reset_queue, cgraph_varpool_assemble_pending_decls, + cgraph_variable_initializer_availability): Rename to ... + (varpool_first_unanalyzed_node, varpool_nodes_queue, + varpool_first_unanalyzed_node, varpool_node, + varpool_node_for_asm, varpool_mark_needed_node, + varpool_finalize_decl, varpool_enqueue_needed_node, + varpool_assemble_pending_decls, variable_initializer_availability): + Rename to ... + * tree.c (decl_assembler_name_equal): Move here from cgraph.c. + * tree.h (decl_assembler_name_equal): Declare. + * omp-low.c (lower_omp_critical): Update. + * ipa-reference (analyze_variable, static_execute): Likewise. + * toplev.c (wrapup_global_declaration_2, compile_file): Update. + * cgraphunit.c: Update comments. + (cgraph_varpool_assembled_nodes_queue): Move to varpool.c under name + varpool_assembled_nodes_queue. + (cgraph_varpool_analyze_pending_decls): Move to varpool.c under name + varpool_analyze_pending_decls. + (cgraph_varpool_remove_unreferenced_decls): Move to varpool.c under name + varpool_remove_unreferenced_decls. + (record_reference): Update. + (cgraph_create_edges): Update. + (record_referneces_in_initializer): New function. + (cgraph_varpool_assemble_decl): Move to varpool.c under name + varpool_assemble_decl; make global. + (cgraph_varpool_assemble_pending_decls): Move to varpool.c under name + varpool_assemble_pending_decls. + (process_function_and_variable_attributes, cgraph_finalize_compilation_unit, + struct cgraph_order_sort, cgraph_output_in_order, + cgraph_function_and_variable_invisibility, cgraph_optimize, + cgraph_increase_alignment): Update. + * dwarf2out.c (decls_for_scope): Likewise. + * ipa-type-escape.c (analyze_variable, type_escape_execute): Likewise. + * except.c (output_ttype): Likewise. + * varasm.c (mark_decl_referenced): Likewise. + (find_decl_and_mark_referenced, assemble_alias): update. + * Makefile.in: Add varpool.c, gt-varpool.c and remove gt-cgraphunit.c + * passes.c (rest_of_decl_compilation): Update. + +2006-12-11 Ira Rosen + + * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Use + GIMPLE_STMT_OPERAND. + * tree-vect-transform.c (vect_permute_store_chain): Likewise. + (vect_setup_realignment): Likewise. + 2006-12-11 Sa Liu Ben Elliston