+2006-12-13 Diego Novillo <dnovillo@redhat.com>
+
+ PR 30089
+ * tree-ssa-operands.h (SSA_OPERAND_MEMORY_SIZE): Add space to
+ accomodate 511 operands.
+
+2006-12-13 Richard Guenther <rguenther@suse.de>
+
+ * builtins.c (expand_builtin_cexpi): Fix typo.
+
+2006-12-13 Jan Hubicka <jh@suse.cz>
+
+ * Makefile.in: Add dependencies.
+ * tree-pretty-print.c: Include value-prof.h
+ (dump_generic_bb_buff): Dump histograms
+ * value-prof.c: Include pointer-set.h
+ (gimple_alloc_histogram_value, histogram_hash, histogram_eq,
+ set_histogram_value, gimple_histogram_value,
+ gimple_add_histogram_value, gimple_remove_histogram_value,
+ gimple_histogram_value_of_type, dump_histogram_value,
+ dump_histograms_for_stmt, gimple_remove_stmt_histograms,
+ gimple_duplicate_stmt_histograms, visit_hist,
+ verify_histograms): New functions.
+ (tree_value_profile_transformations): Update for new histogram API.
+ (tree_divmod_fixed_value): Update for new histogram API.
+ (tree_divmod_fixed_value_transform): Update for new histogram API.
+ (tree_mod_pow2): Update for new histogram API.
+ (tree_mod_pow2_value_transform): Update for new histogram API.
+ (tree_mod_subtract): Update for new histogram API.
+ (tree_mod_subtract_transform): Update for new histogram API.
+ (tree_stringops_transform): Update for new histogram API.
+ (tree_divmod_values_to_profile): Update for new histogram API.
+ (tree_stringops_values_to_profile): Update for new histogram API.
+ (tree_find_values_to_profile): Update for new histogram API.
+ * value-prof.h (gimple_histogram_value): Declare.
+ (gimple_histogram_value_of_type): Declare.
+ (gimple_add_histogram_value): Declare.
+ (gimple_remove_histogram_value): Declare.
+ (dump_histograms_for_stmt): Declare.
+ (gimple_remove_histogram_value): Declare.
+ (gimple_remove_stmt_histograms): Declare.
+ (gimple_duplicate_stmt_histograms): Declare.
+ (verify_histograms): Declare.
+ * function.h
+ (struct funrction): Add value_histograms hash.
+ (VALUE_HISTOGRAMS): New macro.
+ * profile.c (compute_value_histograms): update for new API.
+ * tree-inline.c: Include value-prof.h
+ (copy_bb): Update histograms.
+ * tree-flow.h (struct stmt_ann_d): Do not contain pointer to histograms;
+ reorder to get smaller memory layout.
+ * tree-cfg.c: Include value-prof.h
+ (bsi_remove): Update histograms.
+ (bsi_replace): Update histograms.
+ (verify_stmts): Call histogram verifier.
+ (tree_duplicate_bb): Update histograms.
+ (move_block_to_fn): Update histograms.
+
+2006-12-13 Richard Guenther <rguenther@suse.de>
+
+ * ipa-inline.c (cgraph_flatten_node): Replace leafify with
+ flatten.
+ (cgraph_decide_inlining): Likewise.
+
+2006-12-13 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/17687
+ * builtins.def (BUILT_IN_CEXPI, BUILT_IN_CEXPIF, BUILT_IN_CEXPIL):
+ New builtins for imaginary argument cexp.
+ * builtin-types.def (BT_FN_COMPLEX_FLOAT_FLOAT,
+ BT_FN_COMPLEX_DOUBLE_DOUBLE, BT_FN_COMPLEX_LONGDOUBLE_LONGDOUBLE):
+ New required builtin types.
+ * builtins.c (expand_builtin_cexpi): Declare.
+ (mathfn_built_in): Handle BUILT_IN_CEXPI.
+ (expand_builtin_cexpi): New static helper.
+ (expand_builtin): Call it.
+ (do_mpfr_sincos): Adjust for CEXPI evaluation.
+ (fold_builtin_sincos): New function to fold sincos to cepxi.
+
+2006-12-13 Richard Guenther <rguenther@suse.de>
+
+ * ipa-reference.c (scan_for_static_refs): Also scan
+ tcc_comparison class trees.
+
+2006-12-12 David Daney <ddaney@avtrex.com>
+
+ * config/mips/mips.h (ASM_OUTPUT_EXTERNAL): Undefine it before
+ define.
+
+2006-12-12 Andrew Pinski <pinskia@gmail.com>
+
+ * tree-vect-transform.c (vect_permute_load_chain):
+ Set DECL_GIMPLE_REG_P to true for the vect_perm_*
+ temp variables.
+
+2006-12-13 Sa Liu <saliu@de.ibm.com>
+ Ben Elliston <bje@au.ibm.com>
+
+ * config/spu/spu.h (C_COMMON_OVERRIDE_OPTIONS): Define.
+ (REGISTER_TARGET_PRAGMAS): Don't zero warn_main flag.
+ * config/spu/spu-protos.h (spu_c_common_override_options):
+ Declare.
+ * config/spu/spu-c.c (spu_c_common_override_options): New.
+ * config/spu/spu.c (spu_override_options): Whitespace fix.
+
+2006-12-12 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
+
+ * config/spu/spu.c (cpat_info): Fix an incorrectly identified case.
+
+2006-12-12 Geoffrey Keating <geoffk@apple.com>
+
+ * mips-tdump.c: Replace CROSS_COMPILE with
+ CROSS_DIRECTORY_STRUCTURE.
+ * mips-tfile.c: Likewise.
+ * gcc.c: Likewise.
+ * configure.ac: Likewise.
+ * cppdefault.c: Likewise.
+ * Makefile.in: Likewise.
+ * config/alpha/osf.h: Likewise.
+ * config/i386/cygwin.h: Likewise.
+ * config/i386/beos-elf.h: Likewise.
+ * config/i386/nto.h: Likewise.
+ * config/fr30/fr30.h: Likewise.
+ * config/svr4.h: Likewise.
+ * config/rs6000/aix.h: Likewise.
+ * config/rs6000/sysv4.h: Likewise.
+ * config/pa/pa64-hpux.h: Likewise.
+ * config/pa/pa-hpux10.h: Likewise.
+ * config/pa/pa-hpux11.h: Likewise.
+ * collect2.c: Likewise.
+ * configure: Regenerate.
+
+ * doc/tm.texi (Alignment Output): Document that ASM_OUTPUT_SKIP
+ actually takes an unsigned HOST_WIDE_INT for its second parameter.
+
+2006-12-13 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/spu/spu.c (TARGET_ENCODE_SECTION_INFO): Define.
+ (spu_encode_section_info): New.
+ * config/spu/spu.h (ALIGNED_SYMBOL_REF_P): Adjust.
+ (SYMBOL_FLAG_ALIGN1): New.
+
+2006-12-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR tree-opt/28624
+ * tree-ssa-dom.c (eliminate_degenerate_phis): Use a temporary
+ bitmap for EXECUTE_IF_SET_IN_BITMAP.
+
+2006-12-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR tree-opt/28436
+ * tree.h (DECL_COMPLEX_GIMPLE_REG_P): Rename to ...
+ (DECL_GIMPLE_REG_P): This.
+ * fold-const.c (fold_indirect_ref_1): Fold *(foo *)&vectorfoo into
+ using BIT_FIELD_REF.
+ * omp-low.c (omp_copy_decl_2): Use the renamed DECL_GIMPLE_REG_P.
+ * tree-gimple.c (is_gimple_reg): Use the renamed DECL_GIMPLE_REG_P
+ and check for VECTOR_TYPE.
+ * expr.c (get_inner_reference): Set the mode for BIT_FIELD_REF with
+ vector types.
+ * tree-flow-inline.h (var_can_have_subvars): Use the renamed
+ DECL_GIMPLE_REG_P.
+ * gimplify.c (internal_get_tmp_var): Use the renamed DECL_GIMPLE_REG_P
+ and check for VECTOR_TYPE.
+ (gimplify_bind_expr): Likewise.
+ (gimplify_function_tree): Likewise.
+ * expmed.c: Include target.h.
+ (extract_bit_field): For vector mode, try find a better mode first.
+ If that fails use gen_lowpart (for vectors only).
+ * tree-dfa.c (make_rename_temp): Use the renamed DECL_GIMPLE_REG_P
+ and check for VECTOR_TYPE.
+ * tree-ssa-pre.c (create_expressions_by_pieces): Likewise.
+ (insert_into_preds_of_block): Likewise.
+ (insert_fake_stores): Create gimple register store_tmps for
+ vector types.
+ * tree-sra.c (sra_elt): New field, is_vector_lhs.
+ (sra_walk_expr <case BIT_FIELD_REF>): For vector types that
+ are the left hand side, set the element's is_vector_lhs to true.
+ (instantiate_element): For vector types which were on the left
+ hand size, set DECL_GIMPLE_REG_P to false.
+ * tree-nested.c (create_tmp_var_for): Use the renamed DECL_GIMPLE_REG_P. * tree-inline.c (declare_return_variable): Use the renamed
+ DECL_GIMPLE_REG_P
+ and check for VECTOR_TYPE.
+ (copy_decl_to_var): Use the renamed DECL_GIMPLE_REG_P.
+ (copy_result_decl_to_var): Likewise.
+ * tree-vect-transform.c (vect_get_new_vect_var): For vector types,
+ create a gimple register variable.
+ (vect_permute_store_chain): Set DECL_GIMPLE_REG_P to true for the
+ vect_inter_* temp variables.
+ * Makefile.in (expmed.o): Update dependencies.
+
+2006-12-12 Peter Bergner <bergner@vnet.ibm.com>
+
+ * reload1.c (eliminate_regs_in_insn): Merge the plus_src "else" and
+ the offset == 0 "then" clauses.
+ * config/rs6000/predicates.md (gpc_reg_operand): Check for
+ reload_in_progress.
+
+2006-12-12 Marcin Dalecki <martin@dalecki.de>
+
+ * 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 <amacleod@redhat.com>
+
+ 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 <jakub@redhat.com>
+
+ 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 <wilson@specifix.com>
+ Jakub Jelinek <jakub@redhat.com>
+
+ 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 <irar@il.ibm.com>
+
+ * 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 <rguenther@suse.de>
+
+ 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 <hainque@adacore.com>
+
+ * config/rs6000/t-vxworks: Remove assignment to LIB2FUNCS_EXTRA.
+
+2006-12-12 Olivier Hainque <hainque@adacore.com>
+
+ * 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 <saliu@de.ibm.com>
+ Ben Elliston <bje@au.ibm.com>
+
+ * 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 <hongjiu.lu@intel.com>
+
+ 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 <dberlin@dberlin.org>
+
+ * tree-ssa-structalias.c (handle_ptr_arith): Return false when we
+ can't handle the pointer arithmetic.
+
+2006-12-11 Diego Novillo <dnovillo@redhat.com>
+
+ * 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)
+ <total_alias_vops>: Remove. Update all users.
+ <written_vars>: Change to a pointer set. Update all
+ users.
+ <dereferenced_ptrs_store>: Likewise.
+ <dereferenced_ptrs_load>: 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 <aldyh@redhat.com>
+
+ * 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 <amacleod@redhat.com>
+
+ * 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) <use_var>: Remove.
+ <use_ptr>: Remove.
+ <usev>: Add.
+ (struct vuse_optype_d) <kill_var>: Remove.
+ <use_ptr>: Remove.
+ <usev>: Add.
+ (struct mustdef_optype_d) <kill_var>: Remove.
+ <use_ptr>: Remove.
+ <usev>: 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) <vuse_index>: Add.
+ <mayuse_index>: 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 <aldyh@redhat.com>
+
+ * 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 <dvorakz@suse.cz>
+
+ PR rtl-optimization/30113
+ * loop-iv.c (implies_p): Require the mode of the operands to be
+ scalar.
+
+2006-12-11 Diego Novillo <dnovillo@redhat.com>
+
+ * 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 <schwab@suse.de>
+
+ * varasm.c (elf_record_gcc_switches): Cast second argument of
+ ASM_OUTPUT_SKIP to unsigned HOST_WIDE_INT.
+
+2006-12-11 Diego Novillo <dnovillo@redhat.com>
+
+ * 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 <carlos@codesourcery.com>
+
+ * config/arm/elf.h (MAX_OFILE_ALIGNMENT): Remove definition.
+
+2006-12-11 Jan Hubicka <jh@suse.cz>
+
+ * 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 <ubizjak@gmail.com>
+
+ PR target/30120
+ Revert:
+ 2006-11-15 Uros Bizjak <ubizjak@gmail.com>
+
+ * 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 <jh@suse.cz>
+
+ 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 <irar@il.ibm.com>
+
+ * 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 <saliu@de.ibm.com>
+ Ben Elliston <bje@au.ibm.com>
+
+ * config/spu/spu-elf.h (STARTFILE_SPEC): Update.
+ (ENDFILE_SPEC): Likewise.
+ * config/spu/spu.opt (mstdmain): New option.
+ * config/spu/crti.asm: Remove.
+ * config/spu/crtn.asm: Likewise.
+ * config/spu/crt0.c: Likewise.
+ * config/spu/crtend.c: Likewise.
+ * config/spu/t-spu-elf (EXTRA_MULTILIB_PARTS): Remove crt0 files
+ listed above.
+ ($(T)crti.o, $(T)crtn.o, $(T)crt1.o, $(T)crtend1.o): Remove.
+ * doc/invoke.texi (SPU Options): Document -mstdmain.
+
+2006-12-10 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * doc/loop.texi: Document number_of_latch_executions and
+ number_of_cond_exit_executions.
+ * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
+ chrec_is_positive, number_of_iterations_for_all_loops,
+ scev_const_prop): Use number_of_latch_executions.
+ (set_nb_iterations_in_loop): Do not increase the value of the
+ number of iterations.
+ (number_of_iterations_in_loop): Renamed to ...
+ (number_of_latch_executions): ... this.
+ (number_of_exit_cond_executions): New function.
+ * tree-scalar-evolution.h (number_of_iterations_in_loop): Declaration
+ removed.
+ (number_of_latch_executions, number_of_exit_cond_executions): Declare.
+ * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables): Use
+ number_of_latch_executions.
+ * tree-data-ref.c (get_number_of_iters_for_loop): Use
+ number_of_exit_cond_executions.
+ * tree-vect-analyze.c (vect_get_loop_niters): Ditto.
+ * cfgloop.h (struct loop): Improve description of the nb_iterations
+ field.
+
+2006-12-10 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-ssa-alias.c (compact_name_tags): Use sort_tags_by_id.
+ (tree_pointer_compare): Remove.
+
+2006-12-10 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-vrp.c (adjust_range_with_scev): Use get_chrec_loop.
+ * loop-unswitch.c (unswitch_loops): Use FOR_EACH_LOOP.
+ * tree-loop-linear.c (linear_transform_loops): Ditto.
+ * tree-ssa-loop-im.c (determine_lsm): Ditto.
+ * tree-ssa-loop-niter.c (estimate_numbers_of_iterations,
+ free_numbers_of_iterations_estimates): Ditto.
+ * tree_ssa_unswitch_loops (tree_ssa_unswitch_loops): Ditto.
+ * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
+ * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Ditto.
+ * modulo-sched.c (sms_schedule): Ditto.
+ * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables,
+ tree_unroll_loops_completely): Ditto.
+ * predict.c (predict_loops): Ditto.
+ * tree-if-conv.c (main_tree_if_conversion): Ditto.
+ * loop-unroll.c (unroll_and_peel_loops, peel_loops_completely,
+ decide_unrolling_and_peeling): Ditto.
+ * cfgloopmanip.c (unloop): Use delete_loop.
+ (place_new_loop): Access larray vector instead of parray.
+ (create_preheaders, force_single_succ_latches,
+ fix_loop_structure): Use FOR_EACH_LOOP and delete_loop..
+ * loop-doloop.c (doloop_optimize_loops): Ditto.
+ * loop-invariant.c (move_loop_invariants): Ditto.
+ * tree-cfg.c (replace_uses_by): Ditto.
+ * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Ditto.
+ * tree-chrec.h (CHREC_VAR, CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE):
+ Moved to ...
+ * tree.h (CHREC_VAR, CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE):
+ ... here.
+ * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop,
+ compute_overall_effect_of_inner_loop, chrec_is_positive): Use
+ get_loop and get_chrec_loop.
+ (number_of_iterations_for_all_loops): Use number_of_loops.
+ (scev_initialize, scev_reset, scev_const_prop): Use FOR_EACH_LOOP.
+ * tree-scalar-evolution.h (get_chrec_loop): New inline function.
+ * cfgloopanal.c (mark_irreducible_loops): Use number_of_loops,
+ and FOR_EACH_LOOP.
+ * tree-chrec.c (evolution_function_is_invariant_rec_p,
+ chrec_convert_1): Use get_loop and get_chrec_loop.
+ * loop-init.c (loop_optimizer_init): Use number_of_loops.
+ (loop_optimizer_init): Use FOR_EACH_LOOP.
+ * tree-vectorizer.c (vect_loops_num): Removed.
+ (vectorize_loops): Store number of loops locally. Use
+ FOR_EACH_LOOP and get_loop.
+ * tree-vectorizer.h (vect_loops_num): Removed.
+ * tree-data-ref.c (get_number_of_iters_for_loop): Use get_loop.
+ (find_data_references_in_loop): Do not set parallel_p.
+ * tree-data-ref.h: Do not declare VEC(loop_p).
+ * cfgloop.c (flow_loops_dump, mark_single_exit_loops,
+ verify_loop_structure): Use FOR_EACH_LOOP.
+ (flow_loops_free): Use FOR_EACH_LOOP, free larray vector.
+ (initialize_loops_parallel_p): Removed.
+ (flow_loops_find): Push the loops into a vector.
+ (delete_loop): New function.
+ (cancel_loop): Use delete_loop.
+ * cfgloop.h: Declare VEC(loop_p).
+ (struct loop): Remove parallel_p field.
+ (struct loops): Replace num and parray field by larray vector.
+ Remove shared_headers field.
+ (delete_loop): Declare.
+ (get_loop, get_loops, number_of_loops, fel_next, fel_init,
+ FOR_EACH_LOOP): New.
+ * doc/loop.tex: Document new accessor functions.
+
+2006-12-10 Andrew MacLeod <amacleod@redhat.com>
+
+ * common.opt (-ftree-lrs): Remove live range splitting option.
+ * makefile.in: Add tree-ssa-coalesce.o and reduce header dependancies.
+ * opts.c (decode_options): Remove flag_tree_live_range_split.
+ * tree-flow.h (struct var_ann_d): Rename fields from root_ to base_.
+ * tree-flow-inline.h (single_imm_use_p): New. Check for single use.
+ * tree-outof-ssa.c: Remove header files which aren't needed.
+ (SSANORM_*): Remove flags.
+ (print_exprs_edge, coalesce_abnormal_edges, coalesce_phi_operands,
+ coalesce_result_decls_and_copies, coalesce_asm_operands): Remove.
+ (coalesce_ssa_name): Move to tree-ssa-coalesce.c.
+ (assign_vars): Use Basevar instead of root_var structure.
+ (replace_def_variable): Dont do anything if def is replaceable.
+ (remove_ssa_form): Integrate functional changes.
+ (rewrite_out_of_ssa): Remove live-range_split option.
+ * tree-ssa-coalesce.c: New File for ssa-name coalescing.
+ (coalesce_cost): Calculate the cost of a coalesce.
+ (coalesce_cost_bb): Calculate the coalesce cost within a BB.
+ (coalesce_cost_edge): Calculate the coalesce cost on an edge.
+ (pop_cost_one_pair): Remove the best coalesce with cost 1 from the list.
+ (pop_best_coalesce): Remove the best coalesce from the list.
+ (coalesce_pair_map_hash): Calculate coalesce pair hash.
+ (coalesce_pair_map_eq): Compare 2 coalesce pairs for hash function.
+ (create_coalesce_list): Create a coalesce list object.
+ (delete_coalesce_list): Free a coalesce list object.
+ (find_coalesce_pair): Find matching pair in the coalesce list.
+ (add_cost_one_coalesce): Add a coalesce to the "cost one" list.
+ (add_coalesce): Add a coalesce to the coalesce list.
+ (compare_pairs): Comparision function to determine pair sorted order.
+ (num_coalesce_pairs): Number of coalesced pairs.
+ (first_coalesce_pair, end_coalesce_pair_p, next_coalesce_pair):
+ Coalesce pair iterator functions.
+ (sort_coalesce_list): Sort coalesce pairs in order of expense.
+ (dump_coalesce_list): Show coalesce list.
+ (ssa_conflicts_new): Create an SSA conflict graph.
+ (ssa_conflicts_delete): Delete an SSA conflict graph.
+ (ssa_conflicts_test_p): Test for conflicts.
+ (ssa_conflicts_add_one): Add a single conflict.
+ (ssa_conflicts_add): Add a conflict pair.
+ (ssa_conflicts_merge): Merge conflicts.
+ (struct live_track_d): Struct for tracking live partitions.
+ (new_live_track): Create new live_track object.
+ (delete_live_track): Delete a live_track object.
+ (live_track_remove_partition): Remove a partition from the live list.
+ (live_track_add_partition): Add a partition from the live list.
+ (live_track_clear_var): Take VAR from the live list.
+ (live_track_live_p): Is var live?
+ (live_track_process_use): Make var come alive.
+ (live_track_process_def): Make var go dead, add conflicts.
+ (live_track_init): Initialize to a live on exit set.
+ (live_track_clear_base_vars): Clear live partitions.
+ (build_ssa_conflict_graph): Build a conflict graph.
+ (print_exprs): Common debug output routine.
+ (abnormal_corrupt): Output info about a failed coalesce across an
+ abnormal edge.
+ (fail_abnormal_edge_coalesce): Output info about a failed MUST_COALESCE.
+ (create_outofssa_var_map): Create a var map and coalesce list.
+ (attempt_coalesce): Coalesce a pair.
+ (coalesce_partitions): Coalesce all pairs in a coalesce list.
+ (coalesce_ssa_name): Entry point. Determine what ssa_names to coalesce.
+ * tree-ssa-live.c: Remove header files which aren't needed.
+ (var_map_base_init): New. Initialize a basevar list.
+ (var_map_base_fini): New. Finish a basevar list.
+ (init_var_map): Initialize new fields.
+ (delete_var_map): Free new fields.
+ (var_union): Use renamed fields.
+ (compact_var_map): Remove.
+ (partition_to_view_init): Use renamed fields, change order of an if.
+ (partition_view_fini): Use renamed fields.
+ (partition_view_normal): Create basevar list if requested.
+ (partition_view_bitmap): Create a view based on a bitmap of partitions.
+ (change_partition_var): Use renamed fields.
+ (create_ssa_var_map): Remove.
+ (tpa_init, tpa_remove_partition, tpa_delete, tpa_compact,
+ root_var_init): Remove.
+ (partition_pair_map_hash, partition_pair_map_eq, create_coalesce_list,
+ delete_coalesce_list, find_partition_pair, coalesce_cost, add_coalesce,
+ compare_pairs, num_coalesce_pairs, first_partition_pair,
+ end_partition_pair_p, next_partition_pair, sort_coalesce_list,
+ pop_best_coalesce, add_conflicts_if_valid, set_if_valid,
+ build_tree_conflict_graph, coalesce_tpa_members, dump_coalesce_list,
+ tpa_dump): Moved to tree-ssa-coalesce.c and/or renamed there.
+ (dump_var_map): Use renamed fields.
+ * tree-ssa-live.h (struct _var_map): Modify fields.
+ (partition_to_var, version_to_var, var_to_partition): Use renamed
+ fields.
+ (basevar_index): New. Index of the base variable of a partition.
+ (num_basevars): New. Number of unique base variables in partition map.
+ (register_ssa_partition): Use renamed fields.
+ (struct tree_partition_associator_d): Remove.
+ (tpa_num_trees, tpa_tree, tpa_first_partition, tpa_next_partition,
+ tpa_find_tree, tpa_decompact, root_var_init, root_var_num,
+ root_var, root_var_first_partition, root_var_next_partition,
+ root_var_dump, root_var_delete, root_var_remove_partition,
+ root_var_find, root_var_compact, root_var_decompact): Remove.
+ (struct partition_pair, struct coalesce_list_d): Moved to
+ tree-ssa-coalesce.c
+ * tree-ssa-ter.c: Remove header files which aren't needed.
+
+2006-12-10 Steven Bosscher <steven@gcc.gnu.org>
+
+ * cse.c: (struct cse_basic_block_data): Remove LAST field.
+ (struct branch_path): Remove BRANCH and TAKEN fields. Add new
+ BB field.
+ (cse_visited_basic_blocks): New static bitmap.
+ (cse_end_of_basic_block, cse_basic_block): Remove.
+ (cse_find_path, cse_dump_path, cse_prescan_path,
+ cse_extended_basic_block): New static functions.
+ (cse_insn): Don't CSE over setjmp calls. Use the CFG to find
+ basic block boundaries. Don't record jump equivalences here.
+ Update the CFG after doing in-place replacement of the SET_SRC.
+ (cse_main): Rewrite. Look for extended basic block headers
+ and call cse_extended_basic_block on them until all paths that
+ start at this header are exhausted.
+ (rest_of_handle_cse): Verify that the CFG is incrementally updated
+ and correct after cse_main.
+ Don't call delete_trivially_dead_insns, let cfgcleanup do that.
+ (rest_of_handle_cse2): Verify the CFG here, too, after cse_main.
+ (pass_cse): Add TODO_verify_flow.
+ (pass_cse2): Likewise.
+
+2006-12-10 Rask Ingemann Lambertsen <rask@sygehus.dk>
+
+ * reload1.c (choose_reload_regs): Don't set byte offset when
+ resolving subregs of hard regs.
+
+2006-12-09 Zack Weinberg <zackw@panix.com>
+
+ * c-opts.c (c_common_parse_file): Unconditionally give a warning,
+ suitable for the language, if set_yydebug is true.
+ * c-pragma.h: Define enum pragma_omp_clause here. Don't define
+ YYDEBUG or declare yydebug.
+ * c-parser.c (yydebug, enum pragma_omp_clause): Delete.
+
+2006-12-09 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.c: Update copyright.
+ * cgraph.h: Likewise
+ (cgraph_update_pending_function): Remove prototype.
+ * cgraphunit.c: Update copyright; update overall comment.
+ (cgraph_assemble_pending_functions): Make local.
+
+2006-12-09 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
+
+ * haifa-sched.c (schedule_block): Remove excessive sanity check.
+
+2006-12-08 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
+
+ * config/spu/spu-protos.h (spu_split_immediate): Renamed from
+ spu_split_address.
+ (cpat_const_p, gen_cpat_const): Add.
+ * config/spu/spu.c (immediate_class): New enum.
+ (cpat_info, classify_immediate): New.
+ (print_operand): Use S, D, T instead of F, G, H. Use
+ classify_immediate. Handle cpat cases.
+ (spu_split_immediate): Renamed from spu_split_address. Split all
+ immediates that can be split.
+ (immediate_load_p): Use classify_immediate.
+ (spu_legitimate_constant_p): Accept everything except some cases of
+ CONST_VECTOR.
+ (spu_expand_move): Use spu_split_immedate.
+ (fsmbi_const_p): Use classify_immediate.
+ (cpat_const_p): New.
+ (gen_cpat_const: New.
+ * config/spu/constraints.md (j,k,l): New constraints for cpat
+ instructions.
+ * config/spu/spu.md (unnamed splitter): Change address splitter to
+ handle all immediates.
+ (_mov<mode>, _movdi, _movti): Handle i, j, k constraints for cpat
+ instructions.
+ (cpat, _cpat, splitter): Generate a TImode constant for cpat patterns
+ when possible.
+
+2006-12-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR target/30039
+ * pa.md (high:DI and lo_sum:DI): Handle 64-bit CONST_INTs in 32-bit
+ patterns. Correct length of high:DI instruction sequence.
+
+2006-12-08 Mike Stump <mrs@apple.com>
+
+ * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Build
+ libgcc with -mmacosx-version-min=10.4.
+ * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Default to
+ G4 for 10.5+ unless doing kernel builds.
+
+2006-12-08 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/30120
+ * reg-stack.c (convert_regs_entry): Mark current argument passing
+ registers as live.
+
+ * config/i386/i386.h (X87_REGPARM_MAX): Set to 0 to disable passing
+ of float arguments in x87 registers.
+
+2006-12-08 John David Anglin <dave.anglin.@nrc-cnrc.gc.ca>
+
+ * pa.h (LEGITIMATE_CONSTANT_P): Simplify.
+
+2006-12-08 Mark Shinwell <shinwell@codesourcery.com>
+
+ * recog.c (mode_dependent_address_p): Identify pre-increment,
+ pre-decrement, post-increment and post-decrement addressing as always
+ being mode-dependent.
+ * config/m32c/m32c.c (m32c_mode_dependent_address): Delete.
+ * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
+ * config/m32c/m32c-protos.h (m32c_mode_dependent_address): Delete.
+ * config/m32r/m32r.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete PRE_DEC,
+ PRE_INC and POST_INC checks.
+ * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
+ * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
+ * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
+ * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
+ * config/c4x/c4x.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete PRE_DEC,
+ PRE_INC, POST_DEC and POST_INC cases.
+ * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
+ Delete POST_INC and PRE_DEC cases.
+ * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to
+ no-op.
+ * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
+ * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to
+ no-op.
+ * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
+ * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
+ * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Delete
+ PRE_INC and PRE_DEC cases.
+ * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
+ * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
+ * config/arm/arm.h (ARM_GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
+ (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
+ * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
+ * config/vax/vax.c (vax_mode_dependent_address_p): Delete
+ auto-increment cases.
+ * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete
+ auto-increment cases.
+ * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
+
+2006-12-08 Andrew MacLeod <amacleod@redhat.com>
+
+ * Makefile.in: Add new file tree-ssa-ter.c.
+ * tree-outof-ssa.c (struct temp_expr_table_d, new_temp_expr_table,
+ free_temp_expr_table, add_value_to_version_list,
+ add_value_to_partition_list, remove_value_from_partition_list,
+ add_dependence, check_replaceable, finish_expr, mark_replaceable,
+ kill_expr, kill_virtual_exprs, find_replaceable_in_bb,
+ find_replaceable_exprs, dump_replaceable_exprs): Move to tree-ssa-ter.c.
+ * tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs): Add
+ prototypes.
+ * tree-ssa-ter.c: New file using code moved from tree-outof-ssa.c.
+ (struct value_expr_d): Remove.
+ (struct temp_expr_table_d): Rename fields, add explicit vector of
+ replaceable expressions instead of sharing. Change value_expr_p's to
+ bitmap. Delete free_list.
+ (new_temp_expr_table): Rename fields, count number of ssa_names in
+ each partition.
+ (free_temp_expr_table): Rename field, free new fields.
+ (new_value_expr, free_value_expr, find_value_in_list, add_value_to_list,
+ add_info_to_list, remove_value_from_list): Delete.
+ (version_to_be_replaced_p): New. Is an ssa-name replaceable?
+ (make_dependent_on_partition): New. Set bit in version list, allocating
+ a bitmap if need be.
+ (add_to_partition_kill_list): New. Set bit in the partition list,
+ allocating a bitmap if need be.
+ (remove_from_partition_kill_list): New. Remove a bit from the
+ partition list, free the bitmap if it is empty.
+ (add_dependence): Use renamed field, cleanup. Don't add a dependence
+ on partitions with only one member.
+ (is_replaceable_p): New. Split out replaceability check from
+ check_replaceable.
+ (process_replaceable): New. Code split from check_replaceable.
+ (check_replaceable): Removed.
+ (finished_with_expr): Renamed from finish_expr.
+ (kill_expr): Use renamed fields and less parameters.
+ (kill_virtual_exprs): Less parameters.
+ (mark_replaceable): Use renamed fields.
+ (find_replaceable_in_bb): Use renamed fields, cleanup.
+ (find_replaceable_exprs): Use renamed routines, cleanup.
+ (dump_replaceable_exprs): Don't go past end of ssa_names list.
+ (debug_ter): New. Debug routine to dump state.
+
+2006-12-08 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.c (effective_address_32bit_p): Return true for
+ anything involving the GOT.
+ (bfin_adjust_cost): Don't take the REGNO of a MEM.
+ (trapping_loads_p): Look inside the pattern of an insn to find the
+ SET.
+ * config/bfin/bfin.md (attr "type"): Add movcc.
+ (insn_reservation "alu"): Likewise.
+ (movsicc_insn1, movsicc_insn2): Change type to movcc.
+
+2006-12-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * config/spu/spu-c.c (spu_build_overload_builtin): Delete.
+ (spu_resolve_overloaded_builtin): Check for non scalar instead
+ of vector type and check the function call argument type also for
+ non scalar.
+ Call build_function_call instead of spu_build_overload_builtin.
+
+2006-12-07 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
+
+ * config/spu/spu.c (array_to_constant): Correct the order of arguments
+ to the calls of hwint_to_const_double.
+
+2006-12-07 Nick Clifton <nickc@redhat.com>
+
+ * config/elfos.h (TARGET_ASM_RECORD_GCC_SWITCHES): Set to
+ elf_record_gcc_switches.
+
+2006-12-07 Andrew Macleod <amacleod@redhat.com>
+
+ * expr.c (string_constant): Account for non-zero lower bound arrays.
+
+2006-12-07 Richard Guenther <rguenther@suse.de>
+
+ * builtins.c (expand_builtin_pow): Adjust predicates for
+ pow to cbrt expansion to unsafe math and !HONOR_NANS for
+ negative base.
+
+2006-12-07 Jan Hubicka <jh@suse.cz>
+
+ * i386.c (nocona_cost, pentium4_cost): Update preffered memcpy/memset
+ codegen.
+
+2006-12-07 Jan Hubicka <jh@suse.cz>
+
+ * tree-vrp.c (compare_values): Short circuit INTEGER_CST;
+ use fold_constant_to_binary; tolerate wrong type constants.
+ (value_intersect_p): Do just two tests.
+
+2006-12-07 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.c (print_operand): New modifier 'N' for constants.
+ * config/bfin/bfin.md (ssashiftv2hi3, ssashifthi3, lshiftv2hi3,
+ lshifthi3): Use it, and fix the order of alternatives.
+
+2006-12-07 Nick Clifton <nickc@redhat.com>
+
+ * common.opt (record-gcc-switches): New command line switch.
+ * target.h (print_switch_type): New enum.
+ (print_switch_fn_type): New typedef for a function pointer.
+ (struct gcc_target): Add record_gcc_switches and
+ record_gcc_switches_section fields.
+ * target-def.h (TARGET_ASM_RECORD_GCC_SWITCHES): Provide a
+ default definition.
+ (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Provide a default
+ definition.
+ * toplev.c (print_single_switch): Simplify by providing a
+ pointer to function that will format and output the switch
+ appropriately.
+ (print_switch_values): Likewise.
+ (print_to_asm_out_file): New function.
+ (print_to_stderr): New function.
+ (init_asm_output): If flag_record_gcc_switches is set then if
+ the target supports recording the switches then emit them into
+ the assembler output file, otherwise tell the user that the
+ switch is not supported.
+ * varasm.c (eld_record_gcc_switches): New function. Example
+ handler for the record_gcc_switches target hook.
+ * doc/tm.texi (TARGET_ASM_RECORD_GCC_SWITCHES): Document the new
+ target hook.
+ (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Likewise.
+ * doc/invoke.texi (-frecord-gcc-switches): Document.
+
+2006-12-07 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
+
+ PR target/29794
+ * sched-rgn.c (add_block1): Use correct initializer.
+
+2006-12-07 Richard Guenther <rguenther@suse.de>
+
+ * tree-vect-transform.c (vectorizable_call): Fix leftover of
+ TREE_OPERAND to GIMPLE_STMT_OPERAND conversion.
+
+2006-12-06 Aldy Hernandez <aldyh@redhat.com>
+
+ PR/30079
+ * config/pa/pa.c (hppa_gimplify_va_arg_expr): Build MODIFY_EXPR
+ not GIMPLE_MODIFY_STMT.
+
+2006-12-06 Jan Hubicka <jh@suse.cz>
+
+ * tree-vrp.c (operand_less_p): New.
+ (compare_values, value_inside_range): Rewrite in terms of
+ operand_less_p.
+
+2006-12-06 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (DIRFLAG_REG): Remove constant.
+ (type): Remove cld.
+ (length_immediate): Do not depend on cld type attribute.
+ (length_address): Ditto.
+ (modrm): Ditto.
+ (memory): Ditto.
+ (cld): Remove insn pattern.
+ (strmov_singleop): Do not use DIRFLAG_REG.
+ (*strmovdi_rex_1): Ditto.
+ (*strmovsi_1): Ditto.
+ (*strmovsi_rex_1): Ditto.
+ (*strmovhi_1): Ditto.
+ (*strmovhi_rex_1): Ditto.
+ (*strmovqi_1): Ditto.
+ (*strmovqi_rex_1): Ditto.
+ (rep_mov): Ditto.
+ (*rep_movdi_rex64): Ditto.
+ (*rep_movsi): Ditto.
+ (*rep_movsi_rex64): Ditto.
+ (*rep_movqi): Ditto.
+ (*rep_movqi_rex64): Ditto.
+ (strset_singleop): Ditto.
+ (*strsetdi_rex_1): Ditto.
+ (*strsetsi_1): Ditto.
+ (*strsetsi_rex_1): Ditto.
+ (*strsethi_1): Ditto.
+ (*strsethi_rex_1): Ditto.
+ (*strsetqi_1): Ditto.
+ (*strsetqi_rex_1): Ditto.
+ (rep_stos): Ditto.
+ (*rep_stosdi_rex64): Ditto.
+ (*rep_stossi): Ditto.
+ (*rep_stossi_rex64): Ditto.
+ (*rep_stosqi): Ditto.
+ (*rep_stosqi_rex64): Ditto.
+ (cmpstrnsi): Do not generate cld insn.
+ (cmpstrnqi_nz_1): Do not use DIRFLAG_REG.
+ (*cmpstrnqi_nz_1): Ditto.
+ (*cmpstrnqi_nz_rex_1): Ditto.
+ (cmpstrnqi_1): Ditto.
+ (*cmpstrnqi_1): Ditto.
+ (*cmpstrnqi_rex_1): Ditto.
+ (strlenqi_1): Ditto.
+ (*strlenqi_1): Ditto.
+ (*strlenqi_rex_1): Ditto.
+
+ * config/i386/geode.md (shift): Do not depend on cld type attribute.
+ * config/i386/pentium.md (pent_cld): Remove insn reservation.
+ * config/i386/athlon.md (athlon_decode): Do not depend on cld
+ type attribute.
+ * config/i386/ppro.md (ppro_cld): Remove insn reservation.
+ * config/i386/k6.md (k6_alux_only): Do not depend on cld type
+ attribute.
+ (k6_alux_only_load): Ditto.
+ (k6_alux_only_store): Ditto.
+
+ * config/i386/i386.c (ix86_expand_movmem): Remove cld_done boolean.
+ Do not emit cld instruction.
+ (ix86_expand_setmem): Ditto.
+ (ix86_expand_strlen): Do not emit cld instruction.
+
+2006-12-06 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.c (bfin_rtx_costs): Add a number of new cases, tweak
+ old ones.
+
+2006-12-06 Diego Novillo <dnovillo@redhat.com>
+
+ * gdbinit.in: Set complaints to 0.
+
+2006-12-06 Jan Hubicka <jh@suse.cz>
+
+ * statistics.h (ALONE_PASS_MEM_STAT, ALONE_MEM_STAT_INFO,
+ ALONE_MEM_STAT_DECL): New macros.
+ * bitmap.h: Include statistics.h
+ (struct bitmap_head_def): Add variant with pointer to bitmap descriptor.
+ (bitmap_initialize_stat): Rename from bitmap_initialize; add statistics.
+ (bitmap_obstack_alloc_stat, bitmap_gc_alloc_stat): Declare.
+ * bitmap.c: Include hashtab.h
+ (bitmap_descriptor): New.
+ (bitmap_hash): New static variable
+ (hash_descriptor, eq_descriptor, bitmap_descriptor, register_overhead):
+ New static functions.
+ (bitmap_register): New.
+ (bitmap_element_free, bitmap_element_allocate, bitmap_elt_clear_from,
+ bitmap_obstack_release): Do accounting.
+ (bitmap_obstack_alloc_stat): Rename from bitmap_obstack_alloc ; do
+ accounting.
+ (bitmap_gc_alloc_stat): Likewise.
+ (bitmap_obstack_free, bitmap_find_bit): Do statictics.
+ (print_statistics, dump_bitmap_statistics): New functions.
+ * toplev.c (finalize): Dump bitmap statistics.
+
+2006-12-06 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * reload1.c (delete_output_reload): Count occurrences in
+ CALL_INSN_FUNCTION_USAGE.
+ * rtlanal.c (count_occurrences): Handle EXPR_LIST nodes without
+ crashing at the end of the list.
+
+2006-12-05 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-ssa-structalias.c (set_used_smts): Re-fix pr29156.
+ Optimize to avoid marking more SMT's as used when they aren't.
+
+2006-12-05 Eric Christopher <echristo@apple.com>
+
+ * config/i386/i386.c (x86_output_aligned_bss): Move out
+ of COMMON_ASM_OP ifdef.
+
+2006-12-05 Eric Christopher <echristo@apple.com>
+
+ * config/darwin.h (DARWIN_EXTRA_SPECS): New.
+ (STARTFILE_SPEC): Use.
+ (DARWIN_DYLIB1_SPEC): New.
+ (DARWIN_CRT1_SPEC): New.
+ * config/i386/darwin64.h (SUBTARGET_EXTRA_SPECS): Use
+ DARWIN_EXTRA_SPECS.
+ * config/i386/darwin.h: Ditto.
+ * config/rs6000/darwin.h: Ditto.
+
+2006-12-05 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-vrp.c (pass_vrp): Remove PROP_smt_usage.
+ * tree-complex.c (pass_lower_complex): Ditto.
+ * tree-ssa-ccp.c (pass_ccp): Ditto.
+ (pass_store_ccp): Ditto.
+ * tree-ssa-dom.c (pass_dominator): Ditto.
+ (pass_phi_only_cprop): Ditto.
+ * tree-sra.c (pass_sra): Ditto.
+ * tree-ssa-forwprop.c (pass_forwprop): Ditto.
+ * tree-flow.h (updating_used_alone): Remove.
+ (updating_used_alone): Ditto.
+ * tree-ssa-alias.c (updating_used_alone): Remove variable.
+ (lhs_may_store_to): Remove function.
+ (recalculate_used_alone): Ditto.
+ (compute_may_aliases): Remove used_alone calculation.
+ * tree.h (struct tree_memory_tag): Remove is_used_alone and
+ old_used_alone. Remove SMT_USED_ALONE and SMT_OLD_USED_ALONE.
+ * tree-pass.h (PROP_smt_usage): Remove.
+ * passes.c (execute_todo): Remove used alone recalculation.
+ (execute_one_pass): Ditto.
+ * tree-ssa-operands.c (add_virtual_operand): Remove used_alone
+ stuff.
+
+2006-12-05 Brooks Moses <brooks.moses@codesourcery.com>
+
+ * doc/include/texinfo.tex: Update to version 2006-11-08.17.
+
+2006-12-05 Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR tree-optimization/14784
+ * tree-ssa-operands.c (access_can_touch_variable): Unrevert the fix.
+
+2006-12-05 Aldy Hernandez <aldyh@redhat.com>
+
+ Merge from gimple-tuples-branch.
+
+ 2006-12-04 Aldy Hernandez <aldyh@redhat.com>
+
+ * config/s390/s390.c (s390_va_start): Replace MODIFY_EXPR with
+ GIMPLE_MODIFY_STMT.
+ (s390_gimplify_va_arg): Same.
+ * config/sparc/sparc.c (sparc_gimplify_va_arg): Same.
+ * config/sh/sh.c (sh_va_start): Same.
+ (sh_gimplify_va_arg_expr): Same.
+ * config/xtensa/xtensa.c (xtensa_va_start): Same.
+ (xtensa_gimplify_va_arg_expr): Same.
+ * config/ia64/ia64.c (ia64_gimplify_va_arg): Same.
+ * config/pa/pa.c (hppa_gimplify_va_arg_expr): Same.
+ * config/mips/mips.c (mips_va_start): Same.
+ (mips_gimplify_va_arg_expr): Same.
+
+ 2006-12-04 Aldy Hernandez <aldyh@redhat.com>
+
+ * Merge from mainline at revision 119445.
+
+ 2006-12-04 Aldy Hernandez <aldyh@redhat.com>
+
+ * config/spu/spu.c (spu_va_start): Change MODIFY_EXPR to
+ GIMPLE_MODIFY_STMT.
+ (spu_gimplify_va_arg_expr): Same.
+
+ 2006-12-04 Aldy Hernandez <aldyh@redhat.com>
+
+ * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
+ Change uses of MODIFY_EXPR to GIMPLE_MODIFY_STMT.
+ (xstormy16_expand_builtin_va_arg): Same.
+
+ 2006-12-04 Aldy Hernandez <aldyh@redhat.com>
+
+ * config/frv/frv.c (frv_expand_builtin_va_start): Change MODIFY_EXPR
+ to GIMPLE_MODIFY_STMT.
+
+ 2006-12-04 Aldy Hernandez <aldyh@redhat.com>
+
+ * config/alpha/alpha.c (va_list_skip_additions): Change all
+ occurrences of MODIFY_EXPR to GIMPLE_MODIFY_STMT.
+ (alpha_va_start): Same.
+ (alpha_gimplify_va_arg_1): Same.
+ (alpha_gimplify_va_arg): Same.
+
+ 2006-12-01 Aldy Hernandez <aldyh@redhat.com>
+
+ * gimplify.c (gimplify_modify_expr): Remove FIXME comment.
+
+ 2006-12-01 Aldy Hernandez <aldyh@redhat.com>
+
+ * tree-ssa-loop-im.c: Rename all PROTECTED_TREE_OPERAND to
+ GENERIC_TREE_OPERAND, and all PROTECTED_TREE_TYPE to
+ GENERIC_TREE_TYPE.
+ * tree-complex.c: Same.
+ * tree-pretty-print.c: Same.
+ * tree.c: Same.
+ * tree.h: Same.
+ * builtins.c: Same.
+ * fold-const.c: Same.
+ * tree-ssa-dom.c: Same.
+ * tree-ssa-propagate.c: Same.
+ * tree-ssa-alias.c: Same.
+ * gimple-low.c: Same.
+ * dwarf2out.c: Same.
+ * c-pretty-print.c: Same.
+ * gimplify.c: Same.
+ * tree-inline.c: Same.
+ * tree-outof-ssa.c: Same.
+ * tree-ssa-structalias.c: Same.
+ * tree-ssa-reassoc.c: Same.
+ * stmt.c: Same.
+
+ 2006-11-16 Aldy Hernandez <aldyh@redhat.com>
+
+ * tree.c (build2_stat): Fix comment.
+
+ 2006-11-13 Aldy Hernandez <aldyh@redhat.com>
+
+ * tree-ssa-propagate.c (get_rhs): Use GIMPLE_MODIFY_STMT and
+ TREE_OPERAND when appropriate.
+
+ 2006-11-04 Aldy Hernandez <aldyh@redhat.com>
+
+ * java/java-tree.h (lang_tree_node): Handle gimple tuples.
+ (EXPR_WFL_EMIT_LINE_NOTE): Look inside base.
+ (EXPR_WFL_LINECOL): Use EXPR_LOCUS macro instead of exp.locus.
+ * java/java-gimplify.c (java_gimplify_expr): Comment on why we do
+ not handle GIMPLE_MODIFY_STMT in the switch statement.
+ (java_gimplify_modify_expr): Call build2 with GIMPLE_MODIFY_STMT.
+ (java_gimplify_new_array_init): Same.
+
+ 2006-11-03 Aldy Hernandez <aldyh@redhat.com>
+
+ * gimplify.c (gimplify_omp_for): Allow gimple statements.
+ * tree-outof-ssa.c (check_replaceable): Use PROTECTED_TREE_OPERAND.
+ * fold-const.c (fold_binary): Allow gimple statements.
+ (fold): Same.
+ * fortran/trans-array.c (gfc_conv_descriptor_data_set_internal):
+ Rename from gfc_conv_descriptor_data_set.
+ Call gfc_add_modify instead of gfc_add_modify_expr.
+ * fortran/trans-array.h (gfc_conv_descriptor_data_set_internal):
+ Rename from gfc_conv_descriptor_data_set.
+ (gfc_conv_descriptor_data_set): New macro.
+ (gfc_conv_descriptor_data_set_tuples): New macros.
+ * fortran/trans-openmp.c (gfc_omp_clause_default_ctor): Call
+ gfc_conv_descriptor_data_set_tuples.
+ * fortran/trans.c (gfc_add_modify): Rename from gfc_add_modify_expr.
+ Generate GIMPLE_MODIFY_STMT when appropriate.
+ * fortran/trans.h (gfc_add_modify): Rename from gfc_add_modify_expr.
+ (gfc_add_modify_expr): New macro.
+ (gfc_add_modify_stmt): New macro.
+ * fortran/f95-lang.c (lang_tree_node): Handle gimple statements.
+
+ 2006-11-01 Aldy Hernandez <aldyh@redhat.com>
+
+ * Merge from mainline at revision 118200.
+
+ 2006-10-09 Aldy Hernandez <aldyh@redhat.com>
+
+ * tree-inline.c (copy_bb): Check for GIMPLE_MODIFY_STMT, and adjust
+ accordingly.
+
+ 2006-10-09 Aldy Hernandez <aldyh@redhat.com>
+
+ * tree.h (TREE_CHAIN, TREE_TYPE): Add versions for non GCC or not
+ enable checking.
+ Also, add __extension__ to GCC versions.
+ * tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE.
+ * tree-inline.c (copy_tree_r): Initialize chain to assuage the warning
+ patrol.
+
+ 2006-10-05 Aldy Hernandez <aldyh@redhat.com>
+
+ * tree-complex.c (expand_complex_libcall): Adjust for
+ GIMPLE_MODIFY_STMT.
+ (expand_complex_comparison): Same.
+ * tree-pretty-print.c (dump_generic_node): Is_expr should include
+ GIMPLE_STMT_P statements.
+ * value-prof.c (tree_divmod_fixed_value_transform): Adjust for
+ GIMPLE_MODIFY_STMT.
+ (tree_mod_pow2_value_transform): Same.
+ (tree_mod_subtract_transform): Same.
+ * tree.c (build2_stat): Check for gimplified function in cfun.
+ * tree.h (DECL_GIMPLIFIED): Delete.
+ (struct tree_function_decl): Remove gimplified_flag.
+ * omp-low.c (lower_omp_for): Adjust for GIMPLE_MODIFY_STMT.
+ * cp/cp-gimplify.c (cp_gimplify_expr): Adjust for GIMPLE_MODIFY_STMT.
+ (cxx_omp_clause_apply_fn): Adjust for GIMPLE_MODIFY_STMT.
+ (cxx_omp_clause_copy_ctor): Same.
+ (cxx_omp_clause_assign_op): Same.
+ * c-pretty-print.c (pp_c_conditional_expression): Same.
+ (pp_c_expression): Same.
+ * langhooks.c (lhd_omp_predetermined_sharing): Same.
+ * function.h (struct function): Add gimplified field.
+ * tree-if-conv.c (add_to_dst_predicate_list): Adjust for
+ GIMPLE_MODIFY_STMT.
+ (find_phi_replacement_condition): Same.
+ * gimplify.c (gimplify_modify_expr_to_memcpy): Same.
+ (gimplify_modify_expr_to_memset): Same.
+ (gimplify_init_ctor_eval_range): Same.
+ (gimplify_modify_expr_complex_part): Same.
+ (tree_to_gimple_tuple): Same.
+ (gimplify_modify_expr): Same.
+ (gimple_push_cleanup): Same.
+ (gimplify_omp_for): Same.
+ (gimplify_omp_atomic_pipeline): Same.
+ (gimplify_omp_atomic_mutex): Same.
+ (gimplify_expr): Same.
+ (gimplify_one_sizepos): Same.
+ (gimplify_function_tree): Same.
+ * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Same.
+ (vect_recog_widen_sum_pattern): Same.
+ * tree-vect-transform.c (get_initial_def_for_reduction): Same.
+ (vect_create_epilog_for_reduction): Same.
+ (vectorizable_reduction): Same.
+
+ 2006-09-28 Aldy Hernandez <aldyh@redhat.com>
+
+ * tree-ssa-math-opts.c (replace_reciprocal): Use GIMPLE_STMT_OPERAND.
+ * tree-if-conv.c (if_convertible_gimple_modify_stmt_p): Same.
+ (ifc_temp_var): Same.
+ * tree-vect-analyze.c (vect_determine_vectorization_factor): Check
+ for gimple statements.
+ (vect_analyze_operations): Same.
+ (exist_non_indexing_operands_for_use_p): Use GIMPLE_STMT_OPERAND.
+ * gimplify.c (gimplify_return_expr): Handle gimple statements.
+ * lambda-code.c (can_put_in_inner_loop): Same.
+ (can_put_after_inner_loop): Same.
+ * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Same.
+ (vect_create_data_ref_ptr): Same.
+ (vect_init_vector): Same.
+ (vect_get_vec_def_for_operand): Same.
+ (vect_create_epilog_for_reduction): Same.
+ (vectorizable_reduction): Same.
+ (vectorizable_assignment): Same.
+ (vectorizable_operation): Same.
+ (vectorizable_load): Same.
+ (vectorizable_condition): Same.
+ * config/rs6000/rs6000.c (rs6000_va_start): Do not create MODIFY_EXPRs.
+ (rs6000_gimplify_va_arg): Same.
+
+ 2006-09-25 Aldy Hernandez <aldyh@redhat.com>
+
+ * tree-vrp.c (simplify_div_or_mod_using_ranges): Use
+ GIMPLE_STMT_OPERAND.
+ (simplify_abs_using_ranges): Same.
+ * tree-complex.c (expand_complex_operations_1): Use
+ PROTECTED_TREE_OPERAND.
+ * tree-ssa-loop-niter.c (simplify_replace_tree): Check for gimple
+ stmt.
+ (get_val_for): Use GIMPLE_STMT_OPERAND.
+ * tree-tailcall.c (adjust_accumulator_values): Same.
+ (adjust_return_value): Same.
+ * tree.c (walk_tree): Use IS_GIMPLE_STMT_CODE_CLASS on default
+ case. Remove special case for tcc_gimple_stmt.
+ * tree.h (CAN_HAVE_LOCATION_P): New.
+ * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Check for
+ GIMPLE_STMT_P.
+ * tree-stdarg.c (va_list_counter_bump): Use GIMPLE_STMT_OPERAND.
+ * tree-ssa-dom.c (propagate_rhs_into_lhs): Same.
+ * tree-nrv.c (execute_return_slot_opt): Same.
+ * tree-ssa-alias.c (count_uses_and_derefs): Check for GIMPLE_STMT_P.
+ * tree-vn.c (set_value_handle): Same.
+ (get_value_handle): Same.
+ * c-decl.c (add_stmt): Use CAN_HAVE_LOCATION_P.
+ * tree-vectorizer.c (find_loop_location): Same.
+ * c-typeck.c (c_process_expr_stmt): Same.
+ (c_finish_stmt_expr): Same.
+ * gimplify.c (should_carry_locus_p): Same.
+ (tree_to_gimple_tuple): Delete definition and use of unecessary
+ variable save_tree_block.
+ * tree-ssa-pre.c (phi_translate): Check for GIMPLE_STMT_P.
+ (create_expression_by_pieces): Use GIMPLE_STMT_OPERAND.
+ (realify_fake_stores): Same.
+ * tree-ssa-forwprop.c (forward_propagate_addr_into_variable_arr):
+ Use TREE_OPERAND.
+ * tree-inline.c (copy_body_r): Check for EXPR_P and GIMPLE_STMT_P.
+ (copy_tree_r): Check for IS_GIMPLE_STMT_CODE_CLASS.
+ * tree-cfg.c (move_stmt_r): Use EXPR_P. Check for GIMPLE_STMT_P.
+ * c-parser.c (c_parser_typeof_specifier): Use CAN_HAVE_LOCATION_P.
+ (c_parser_statement_after_labels): Same.
+ (c_parser_paren_condition): Same.
+ (c_parser_for_statement): Same.
+ (c_parser_omp_for_loop): Same.
+ * tree-ssa-reassoc.c (linearize_expr): Use GIMPLE_STMT_OPERAND.
+ (linearize_expr_tree): Same.
+ * dwarf2out.c (reference_to_unused): Check for GIMPLE_STMT_P.
+ * function.c (instantiate_expr): Same.
+
+ 2006-09-22 Aldy Hernandez <aldyh@redhat.com>
+
+ * tree.c (expr_location): Use GIMPLE_STMT_LOCUS.
+ (set_expr_location): Same.
+ (expr_locus): Same.
+ (set_expr_locus): Same.
+ (expr_filename): Same.
+ (expr_lineno): Same.
+ (tree_block): Use GIMPLE_STMT_BLOCK.
+ (protected_tree_operand): Use GIMPLE_STMT_OPERAND.
+ * tree.h (struct gimple_stmt): Remove prev and next.
+ (GIMPLE_STMT_OPERAND_CHECK): New.
+ (TREE_TO_GIMPLE_STMT): Delete.
+ (GIMPLE_STMT_TO_TREE): Delete.
+ (GIMPLE_STMT_OPERAND): Use union, not cast.
+ (GIMPLE_STMT_LOCUS): New.
+ (GIMPLE_STMT_BLOCK): New.
+ * gimplify.c (tree_to_gimple_tuple): Use union. Do not cast
+ to tree_base.
+ * tree-cfg.c (verify_gimple_tuples_1): Call gcc_unreachable.
+
+ 2006-09-21 Aldy Hernandez <aldyh@redhat.com>
+
+ * tree-into-ssa.c (REGISTER_DEFS_IN_STMT): Change common.base
+ to base.
+ * tree-tailcall.c (adjust_return_value): Same.
+ * tree.c (tree_code_size): Remove GIMPLE_STATEMENT_LIST case.
+ (copy_node_stat): Change common.base to base.
+ (tree_node_structure): Return TS_GIMPLE_STATEMENT for tcc_gimple_stmt.
+ Remove GIMPLE_STATEMENT_LIST case.
+ * tree.h (struct gimple_stmt): Make operands of type tree.
+ (TREE_CODE, TREE_SET_CODE, TREE_ADDRESSABLE, CALL_EXPR_TAILCALL,
+ CASE_LOW_SEEN, TREE_STATIC, CLEANUP_EH_ONLY, CASE_HIGH_SEEN,
+ TREE_NO_WARNING, TREE_CONSTANT_OVERFLOW, TREE_SYMBOL_REFERENCED,
+ TYPE_REF_CAN_ALIAS_ALL, TREE_OVERFLOW, TREE_PUBLIC,
+ TYPE_CACHED_VALUES_P, TREE_SIDE_EFFECTS, FORCED_LABEL,
+ TREE_THIS_VOLATILE, TREE_THIS_NOTRAP, TREE_READONLY,
+ TREE_CONSTANT, TYPE_SIZES_GIMPLIFIED, DECL_UNSIGNED,
+ BIT_FIELD_REF_UNSIGNED, TYPE_UNSIGNED, TREE_ASM_WRITTEN, TREE_USED,
+ TREE_NOTHROW, CALL_EXPR_RETURN_SLOT_OPT, DECL_BY_REFERENCE,
+ CALL_FROM_THUNK_P, TYPE_ALIGN_OK, TREE_PRIVATE, TREE_PROTECTED,
+ TREE_DEPRECATED, IDENTIFIER_TRANSPARENT_ALIAS, TREE_INVARIANT,
+ TREE_LANG_FLAG_*, SSA_NAME_OCCURS_IN_ABNORMAL_PHI,
+ SSA_NAME_IN_FREE_LIST, TYPE_VOLATILE, TYPE_READONLY, BINFO_VIRTUAL_P):
+ Change common.base to base.
+ (GIMPLE_STATEMENT_LIST*): Remove.
+ (union tree_node): Add base. Remove gimple_statement_list.
+ Remove pointer from gstmt.
+ * tree-ssa-propagate.c (set_rhs): Change common.base to base.
+ * treestruct.def: Add TS_BASE. Remove TS_GIMPLE_STATEMENT_LIST.
+ * tree-vn.c (vn_compute): Change common.base to base.
+ * tree-eh.c (verify_eh_throw_stmt_node): Same.
+ * tree-flow-inline.h (var_ann): Same.
+ (function_ann): Same.
+ (stmt_ann): Same.
+ (mark_non_addressable): Same.
+ * gimplify.c (tree_to_gimple_tuple): Same.
+ * tree.def (DEFTREECODE): Remove GIMPLE_STATEMENT_LIST.
+ * tree-dfa.c (create_var_ann): Change common.base to base.
+ (create_function_ann): Same.
+ (create_stmt_ann): Same.
+ (create_tree_ann): Same.
+ (collect_dfa_stats_r): Same.
+ * tree-ssa-pre.c (NECESSARY): Change common.base to base.
+ * tree-ssa-dce.c (NECESSARY): Same.
+ * tree-ssa.c (delete_tree_ssa): Same.
+ * tree-optimize.c (execute_free_cfg_annotations): Same.
+ * tree-flow.h: Same.
+
+ 2006-09-19 Aldy Hernandez <aldyh@redhat.com>
+
+ * tree.c (tree_code_size): Handle GIMPLE_STATEMENT_LIST.
+ (tree_node_structure): Handle GIMPLE_STATEMENT_LIST and
+ GIMPLE_MODIFY_STMT.
+ * tree.h (struct gimple_stmt): Add prev and next fields.
+ (GIMPLE_STMT_TO_TREE): Cast, do not call GIMPLE_STMT_CHECK.
+ (GIMPLE_STATEMENT_LIST_HEAD): New.
+ (GIMPLE_STATEMENT_LIST_TAIL): New.
+ (struct gimple_statement_list): New.
+ (union tree_node): Add gimple_stmt_list and gstmt.
+ * treestruct.def: Add TS_GIMPLE_STATEMENT_LIST, TS_GIMPLE_STATEMENT.
+ * tree.def: Add GIMPLE_STATEMENT_LIST.
+
+ 2006-09-06 Aldy Hernandez <aldyh@redhat.com>
+
+ * tree-dump.c (dequeue_and_dump): Handle GIMPLE_MODIFY_STMT.
+ * tree-vrp.c (build_assert_expr_for): Change uses of
+ MODIFY_EXPR to GIMPLE_MODIFY_STMT and adjust accordingly.
+ (find_assert_locations): Same.
+ (remove_range_assertions): Same.
+ (stmt_interesting_for_vrp): Same.
+ (vrp_visit_assignment): Same.
+ (vrp_visit_stmt): Same.
+ (simplify_cond_using_ranges): Same.
+ * tree-into-ssa.c (REGISTER_DEFS_IN_THIS_STMT): Adjust for new
+ tree structure.
+ * tree-ssa-loop-im.c (movement_possibility): Change uses of
+ MODIFY_EXPR to GIMPLE_MODIFY_STMT and adjust accordingly.
+ (stmt_cost): Same.
+ (determine_invariantness_stmt): Same.
+ (schedule_sm): Same.
+ (gather_mem_refs_stmt): Same.
+ * tree-complex.c (init_dont_simulate_again): Same.
+ (complex_visit_stmt): Same.
+ (set_component_ssa_name): Same.
+ (expand_complex_move): Same.
+ (expand_complex_div_wide): Same.
+ (expand_complex_comparison): Same.
+ (expand_complex_operations_1): Same.
+ * tree-ssa-loop-niter.c (expand_simple_operations): Same.
+ (chain_of_csts_start): Same.
+ (infer_loop_bounds_from_undefined): Same.
+ * tree-pretty-print.c (dump_generic_node): Same.
+ (op_prio): Same.
+ (op_symbol_1): Same.
+ * tree-ssa-loop-manip.c (create_iv): Same.
+ * value-prof.c (tree_divmod_fixed_value): Same.
+ (tree_divmod_fixed_value_transform): Same.
+ (tree_mod_pow2): Same.
+ (tree_mod_pow2_value_transform): Same.
+ (tree_mod_subtract): Same.
+ (tree_mod_subtract_transform): Same.
+ (tree_divmod_values_to_profile): Same.
+ * tree-tailcall.c (process_assignment): Same.
+ (find_tail_calls): Same.
+ (adjust_accumulator_values): Same.
+ (adjust_return_value): Same.
+ (eliminate_tail_call): Same.
+ * tree.c (tree_code_size): Handle tcc_gimple_stmt.
+ (make_node_stat): Same.
+ (copy_node_stat): Handle gimple tuples.
+ (expr_align): Handle GIMPLE_MODIFY_STMT. Abort on MODIFY_EXPR.
+ (tree_node_structure): Handle tcc_gimple_stmt.
+ (build2_stat): Abort on MODIFY_EXPR after gimplification. Handle
+ tcc_gimple_stmt.
+ (build2_gimple_stat): New.
+ (expr_location): New.
+ (set_expr_location): New.
+ (expr_has_location): New.
+ (expr_locus): New.
+ (set_expr_locus): New.
+ (expr_filename): New.
+ (expr_lineno): New.
+ (walk_tree): Handle tcc_gimple_stmt.
+ (tree_block): New.
+ (protected_tree_operand): New.
+ (protected_tree_type): New.
+ (tree_code_kind): Add gimple statements.
+ * tree.h (tree_code_class): Add tcc_gimple_stmt.
+ (IS_GIMPLE_STMT_CODE_CLASS): New.
+ (struct tree_base): New.
+ (struct tree_common): Shrink.
+ (struct gimple_stmt): New.
+ (struct gimple_expr): New.
+ (TREE_SET_CODE, TREE_ADDRESSABLE, CALL_EXPR_TAILCALL,
+ CASE_LOW_SEEN, TREE_STATIC, CLEANUP_EH_ONLY, CASE_HIGH_SEEN,
+ TREE_NO_WARNING, TREE_CONSTANT_OVERFLOW, TREE_SYMBOL_REFERENCED,
+ TYPE_REF_CAN_ALIAS_ALL, TREE_OVERFLOW, TREE_PUBLIC,
+ TYPE_CACHED_VALUES_P, SAVE_EXPR_RESOLVED_P, TREE_SIDE_EFFECTS,
+ FORCED_LABEL, TREE_THIS_VOLATILE, TREE_THIS_NOTRAP, TREE_READONLY,
+ TREE_CONSTANT, TYPE_SIZES_GIMPLIFIED, DECL_UNSIGNED,
+ BIT_FIELD_REF_UNSIGNED, TYPE_UNSIGNED, TREE_ASM_WRITTEN,
+ TREE_USED, TREE_NOTHROW, CALL_EXPR_RETURN_SLOT_OPT,
+ DECL_BY_REFERENCE, CALL_FROM_THUNK_P, TYPE_ALIGN_OK,
+ TREE_PRIVATE, TREE_PROTECTED, TREE_DEPRECATED,
+ IDENTIFIER_TRANSPARENT_ALIAS, TREE_INVARIANT,
+ TREE_LANG_FLAG_[0-6], SSA_NAME_CHECK, SSA_NAME_IN_FREE_LIST,
+ TYPE_VOLATILE, TYPE_READONLY, TREE_VISITED, BINFO_VIRTUAL_P):
+ Adjust for new `common' layout.
+ (struct tree_function_decl): Add gimplified_flag.
+ (DECL_GIMPLIFIED): NEW.
+ (EXPR_LOCATION, SET_EXPR_LOCUS, EXPR_FILENAME, EXPR_LOCUS,
+ SET_EXPR_LOCUS, SET_EXPR_LOCATION, EXPR_LINENO,
+ EXPR_HAS_LOCATION): Call corresponding function.
+ (GIMPLE_STMT_CHECK): New.
+ (TREE_OPERAND_CHECK, TREE_TYPE, TREE_CHAIN): Abort on gimple tuples.
+ (TREE_BLOCK): Call tree_block.
+ (GIMPLE_STMT_P): New.
+ (GIMPLE_TUPLE_P): New.
+ (TREE_TO_GIMPLE_STMT): New.
+ (GIMPLE_STMT_TO_TREE): New.
+ (GIMPLE_STMT_OPERAND): New.
+ (GIMPLE_TUPLE_HAS_LOCUS_P): New.
+ (PROTECTED_TREE_OPERAND): New.
+ (PROTECTED_TREE_TYPE): New.
+ (build2_gimple_stat): Protoize.
+ (build2_gimple): New.
+ (expr_location): Protoize.
+ (set_expr_location): Protoize.
+ (expr_has_location): Protoize.
+ (expr_locus): Protoize.
+ (set_expr_locus): Protoize.
+ (expr_filename): Protoize.
+ (expr_lineno): Protoize.
+ (tree_block): Protoize.
+ (protected_tree_operand): Protoize.
+ (protected_tree_type): Protoize.
+ (enum tree_node_kind): Add gimple_stmt_kind.
+ * c-decl.c (union lang_tree_node): Tuples do not have a
+ TREE_CHAIN.
+ * ipa-cp.c (constant_val_insert): Change uses of MODIFY_EXPR to
+ GIMPLE_MODIFY_STMT and adjust accordingly.
+ * tree-scalar-evolution.c (follow_ssa_edge): Same.
+ (interpret_condition_phi): Same.
+ (pointer_used_p): Same.
+ (analyze_scalar_evolution_1): Same.
+ (scev_const_prop): Same.
+ (interpret_rhs_modify_stmt): Rename from
+ interpret_rhs_modify_expr.
+ * builtins.c (std_expand_builtin_va_start): Change uses of
+ MODIFY_EXPR to GIMPLE_MODIFY_STMT and adjust accordingly.
+ (std_gimplify_va_arg_expr): Same.
+ (expand_builtin_va_copy): Same.
+ (integer_valued_real_p): Same.
+ * fold-const.c (maybe_lvalue_p): Same.
+ (fold_unary): Same.
+ (tree_expr_nonnegative_p): Same.
+ (tree_expr_nonzero_p): Same.
+ * omp-low.c (extract_omp_for_data): Same.
+ (lower_rec_input_clauses): Same.
+ (lower_reduction_clauses): Same.
+ (lower_copyprivate_clauses): Same.
+ (lower_send_clauses): Same.
+ (lower_send_shared_vars): Same.
+ (expand_parallel_call): Same.
+ (expand_omp_parallel): Same.
+ (expand_omp_for_generic): Same.
+ (expand_omp_for_static_nochunk): Same.
+ (expand_omp_for_static_chunk): Same.
+ (expand_omp_sections): Same.
+ (lower_omp_single_copy): Same.
+ (lower_omp_parallel): Same.
+ * tree-ssa-dse.c (memory_address_same): Same.
+ (dse_optimize_stmt): Same.
+ * ipa-reference.c (scan_for_static_refs): Same.
+ * tree-gimple.c (is_gimple_reg_rhs): Same.
+ (get_call_expr_in): Same.
+ (recalculate_side_effects): Same.
+ * cgraphunit.c (cgraph_create_edges): Same.
+ * tree-ssa-copyrename.c (rename_ssa_copies): Same.
+ * tree-ssa-ccp.c (get_default_value): Same.
+ (likely_value): Same.
+ (visit_assignment): Same.
+ (ccp_visit_stmt): Same.
+ (get_maxval_strlen): Same.
+ (ccp_fold_builtin): Same.
+ * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Same.
+ (find_givs_in_stmt): Same.
+ (find_interesting_uses_op): Same.
+ (find_interesting_uses_stmt): Same.
+ (rewrite_use_nonlinear_expr): Same.
+ * ipa-pure-const.c (scan_function): Same.
+ * tree-stdarg.c (va_list_counter_bump): Same.
+ (check_all_va_list_escapes): Same.
+ (execute_optimize_stdarg): Same.
+ * tree-ssa-math-opts.c (compute_merit): Same.
+ (insert_reciprocals): Same.
+ (execute_cse_reciprocals): Same.
+ * tree-ssa-dom.c (initialize_hash_element): Same.
+ (simple_iv_increment_p): Same.
+ (record_equivalences_from_stmt): Same.
+ (optimize_stmt): Same.
+ (remove_stmt_or_phi): Same.
+ (get_rhs_or_phi_arg): Same.
+ (get_lhs_or_phi_result): Same.
+ (propagate_rhs_into_lhs): Same.
+ * tree-nrv.c (tree_nrv): Same.
+ (execute_return_slot_opt): Same.
+ * tree-ssa-propagate.c (get_rhs): Same.
+ (set_rhs): Same.
+ (stmt_makes_single_load): Same.
+ (stmt_makes_single_store): Same.
+ (replace_vuses_in): Same.
+ (fold_predicate_in): Same.
+ (substitute_and_fold): Same.
+ * tree-ssa-alias.c (compute_call_clobbered): Same.
+ (recalculate_used_alone): Same.
+ (count_uses_and_derefs): Same.
+ (is_escape_site): Same.
+ (find_used_portions): Same.
+ * gimple-low.c (lower_stmt): Same.
+ (block_may_fallthru): Same.
+ (lower_return_expr): Same.
+ * tree-ssa-sink.c (is_hidden_global_store): Same.
+ (statement_sink_location): Same.
+ * dwarf2out.c (loc_descriptor_from_tree_1): Same.
+ * expr.c (safe_from_p): Same.
+ (expand_expr_real): Same.
+ (expand_expr_real_1): Same.
+ * tree-ssa-loop-ivcanon.c (empty_loop_p): Same.
+ * predict.c (expr_expected_value): Same.
+ (strip_builtin_expect): Same.
+ (apply_return_prediction): Same.
+ (tree_bb_level_predictions): Same.
+ (tree_estimate_probability): Same.
+ * tree-vn.c (vn_compute): Same.
+ * tree-eh.c (add_stmt_to_eh_region_fn): Same.
+ (remove_stmt_from_eh_region_fn): Same.
+ (do_return_redirection): Same.
+ (honor_protect_cleanup_actions): Same.
+ (lower_try_finally_switch): Same.
+ (lower_eh_constructs_1): Same.
+ (tree_could_throw_p): Same.
+ (verify_eh_throw_stmt_node): Same.
+ * function.c (gimplify_parameters): Same.
+ * tree-vectorizer.c (vect_is_simple_use): Same.
+ (vect_is_simple_reduction): Same.
+ * ipa-type-escape.c (scan_for_refs): Same.
+ * tree-if-conv.c (tree_if_conversion): Same.
+ (tree_if_convert_stmt): Same.
+ (if_convertible_gimplify_modify_stmt_p): Rename from
+ if_convertible_modify_expr_p.
+ (if_convertible_stmt_p): Adjust for GIMPLE_MODIFY_STMT.
+ (ifc_temp_var): Same.
+ (replace_phi_with_cond_modify_stmt): Rename from
+ replace_phi_with_cond_modify_expr.
+ (process_phi_nodes): Call replace_phi_with_cond_modify_stmt.
+ * tree.def (DEFTREECODE): Add GIMPLE_MODIFY_STMT.
+ * tree-data-ref.c (find_data_references_in_loop): Adjust for
+ GIMPLE_MODIFY_STMT.
+ * tree-flow-inline.h (var_ann): Same.
+ (function_ann): Same.
+ (stmt_ann): Same.
+ (mark_non_addressable): Same.
+ * tree-vect-analyze.c (vect_determine_vectorization_factor): Same.
+ * gimplify.c (tree_to_gimple_tuple): New.
+ (build_stack_save_restore): Adjust for GIMPLE_MODIFY_STMT.
+ (gimplify_return_expr): Same.
+ (gimplify_decl_expr): Same.
+ (gimplify_self_mod_expr): Same.
+ (gimplify_cond_expr): Same.
+ (gimplify_init_constructor): Same.
+ (gimplify_modify_expr): Same.
+ (gimplify_expr): Same.
+ (gimplify_function_tree): Same.
+ (force_gimple_operand): Same.
+ * tree-ssa-phiopt.c (conditional_replacement): Same.
+ (minmax_replacement): Same.
+ (abs_replacement): Same.
+ * tree-dfa.c (create_var_ann): Same.
+ (create_function_ann): Same.
+ (create_stmt_ann): Same.
+ (create_tree_ann): Same.
+ (collect_dfa_stats_r): Same.
+ * tree-ssa-pre.c (find_or_generate_expression): Same.
+ (create_expression_by_pieces): Same.
+ (try_look_through_load): Same.
+ (insert_fake_stores): Same.
+ (realify_fake_stores): Same.
+ (compute_avail): Same.
+ (eliminate): Same.
+ (init_pre): Same.
+ (poolify_modify_stmt): Rename from poolify_modify_stmt.
+ Adjust for GIMPLE_MODIFY_STMT.
+ (NECESSARY): Adjust for new `common' layout.
+ * tree-ssa-live.c (build_tree_conflict_graph): Adjust for
+ GIMPLE_MODIFY_STMT.
+ * tree-sra.c (sra_walk_modify_stmt): Rename from
+ sra_walk_modify_expr.
+ (sra_walk_function): Adjust for GIMPLE_MODIFY_STMT.
+ (generate_copy_inout): Same.
+ (generate_element_copy): Same.
+ (generate_element_zero): Same.
+ (scalarize_copy): Same.
+ * tree-mudflap.c (mf_decl_cache_locals): Same.
+ (mf_build_check_statement_for): Same.
+ (mf_xform_derefs): Same.
+ * ipa-prop.c (ipa_method_modify_stmt): Same.
+ * print-tree.c (print_node): Handle gimple tuples.
+ Add case for tcc_gimple_stmt.
+ * tree-ssa-copy.c (stmt_may_generate_copy): Adjust for
+ GIMPLE_MODIFY_STMT.
+ (copy_prop_visit_assignment): Same.
+ (copy_prop_visit_stmt): Same.
+ (init_copy_prop): Same.
+ * tree-ssa-forwprop.c (ssa_name_defined_by_comparison_p): Same.
+ (forward_propagate_into_cond_1): Same.
+ (find_equivalent_equality_comparison): Same.
+ (tidy_after_forward_propagate_addr): Same.
+ (forward_propagate_addr_expr_1): Same.
+ (simplify_not_neg_expr): Same.
+ (simplify_switch_expr): Same.
+ * tree-ssa-dce.c (find_pdom): Same.
+ (mark_stmt_if_obviously_necessary): Same.
+ (NECESSARY): Adjust for new `common' layout.
+ * tree-flow.h: Same.
+ * tree-vect-patterns.c (widened_name_p): Adjust for
+ GIMPLE_MODIFY_STMT.
+ (vect_recog_dot_prod_pattern): Same.
+ (vect_recog_widen_sum_pattern): Same.
+ (vect_pattern_recog_1): Same.
+ * tree-nested.c (init_tmp_var): Same.
+ (save_tmp_var): Same.
+ (walk_stmts): Same.
+ (convert_call_expr): Same.
+ (finalize_nesting_tree_1): Same.
+ * tree-ssa.c (verify_ssa): Same.
+ (delete_tree_ssa): Same.
+ * lambda-code.c (lbv_to_gcc_expression): Same.
+ (lle_to_gcc_expression): Same.
+ (lambda_loopnest_to_gcc_loopnest): Same.
+ (can_put_in_inner_loop): Same.
+ (can_convert_to_perfect_nest): Same.
+ (perfect_nestify): Same.
+ * tree-ssa-loop-prefetch.c (gather_memory_references): Same.
+ * tree-inline.c (copy_body_r): Same.
+ (setup_one_parameter): Same.
+ (initialize_inlined_parameters): Same.
+ (estimate_num_insns_1): Same.
+ (expand_call_inline): Same.
+ (gimple_expand_calls_inline): Same.
+ (copy_tree_r): Same.
+ * tree-optimize.c (execute_free_cfg_annotations): Same.
+ * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Same.
+ (vect_align_data_ref): Same.
+ (vect_create_data_ref_ptr): Same.
+ (vect_init_vector): Same.
+ (vect_create_epilog_for_reduction): Same.
+ (vectorizable_reduction): Same.
+ (vectorizable_assignment): Same.
+ (vectorizable_operation): Same.
+ (vectorizable_store): Same.
+ (vectorizable_load): Same.
+ (vectorizable_live_operation): Same.
+ (vectorizable_condition): Same.
+ (vect_generate_tmps_on_preheader): Same.
+ (vect_create_cond_for_align_checks): Same.
+ * tree-object-size.c (collect_object_sizes_for): Same.
+ (check_for_plus_in_loops_1): Same.
+ (check_for_plus_in_loops): Same.
+ * tree-outof-ssa.c (insert_copy_on_edge): Same.
+ (replace_use_variable): Same.
+ (check_replaceable): Same.
+ (rewrite_trees): Same.
+ (identical_copies_p): Same.
+ (insert_backedge_copies): Same.
+ * tree-profile.c (tree_gen_edge_profiler): Same.
+ * tree-vect-generic.c (expand_vector_operations_1): Same.
+ * tree-ssa-structalias.c (update_alias_info): Same.
+ (find_func_aliases): Same.
+ * tree-cfg.c (factor_computed_gotos): Same.
+ (make_edges): Same.
+ (make_goto_expr_edges): Same.
+ (tree_merge_blocks): Same.
+ (remove_useless_stmts_cond): Same.
+ (remove_useless_stmts_1): Same.
+ (tree_find_edge_insert_loc): Same.
+ (verify_expr): Same.
+ (gimplify_val): Same.
+ (verify_gimple_tuples_1): New.
+ (verify_gimple_tuples): New.
+ (verify_stmts): Call verify_gimple_tuples.
+ * tree-ssa-reassoc.c (get_rank): Adjust for GIMPLE_MODIFY_STMT.
+ (get_unary_op): Same.
+ (linearize_expr): Same.
+ (get_single_immediate_use): Same.
+ (negate_value): Same.
+ (should_break_up_subtract): Same.
+ (break_up_subtract): Same.
+ (repropagate_negates): Same.
+ (break_up_subtract_bb): Same.
+ (reassociate_bb): Same.
+ * config/i386/i386.c (ix86_va_start): Same.
+ (ix86_gimplify_va_arg): Same.
+ * stmt.c (expand_expr_stmt): Same.
+ (warn_if_unused_value): Same.
+ (expand_return): Same.
+ * tree-ssanames.c (make_ssa_name): Same.
+ * tree-ssa-threadedge.c (lhs_of_dominating_assert): Same.
+ * tree-ssa-operands.c (finalize_ssa_defs): Same.
+ (add_virtual_operand): Same.
+ (get_expr_operands): Same.
+ (parse_ssa_operands): Same.
+ (get_modify_stmt_operands): Rename from get_modify_expr_operands.
+
+2006-12-05 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config.host: Remove extra blank line.
+
+2006-12-05 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config.host (i[34567]86-*-*, x86-64-*-*): Use driver-i386.o only if
+ target is also an x86 variant.
+
+2006-12-05 Richard Guenther <rguenther@suse.de>
+
+ * config/i386/i386.c (ix86_builtin_vectorized_function): Declare.
+ (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define.
+ (ix86_builtin_vectorized_function): New function to vectorize
+ sqrt.
+
+2006-12-05 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.c (output_file_start): Fix comment which referred to
+ ia64_override_options.
+
+2006-12-04 Jan Hubicka <jh@suse.cz>
+
+ * cfgexpand.c (expand_one_var): Guard expand_one_stack_var by
+ really_expand.
+
+2006-12-04 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * rtlanal.c (note_uses): Deal with SEQUENCEs.
+ * config/bfin/bfin.c: Include "timevar.h".
+ (bfin_flag_schedule_insns2, splitting_for_sched,
+ bfin_flag_var_tracking): New variables.
+ (print_operand): Handle '%!'.
+ (override_options): Disable normal sched2 pass, instead set
+ bfin_flag_schedule_insns2 for reorg to handle it.
+ (output_file_start): Likewise for var-tracking.
+ (bfin_optimize_loop): Take some care not to stumble over SEQUENCEs.
+ (gen_one_bundle, bfin_gen_bundles, type_for_anomaly, trapping_loads_p):
+ New functions.
+ (bfin_reorg): Do second scheduling pass here, and call
+ bfin_gen_bundles. Use type_for_anomaly and trapping_loads_p instead
+ of examining insns directly. If bfin_flag_var_tracking, call
+ var-tracking pass when done with everything else.
+ * config/bfin/bfin.h (PRINT_OPERAND_PUNCT_VALID_P): '!' is valid.
+ * config/bfin/bfin.md (UNSPEC_32BIT): New constant.
+ (movsi_insn32): New pattern, with two new splits to create it
+ before the final scheduling pass.
+ (neghi2): Not a dsp32 insn, rather alu0.
+ (movbi, pushsi_insn, popsi_insn, movsi_insn, movv2hi_insn, movhi_insn,
+ movqi_insn, movsf_insn, movsi_insv, extendhisi2, zero_extendhisi2,
+ extendqihi2, extendqisi2, zero_extendqihi2, zero_extendqisi2,
+ mulhisi3, umulhisi3, ssadsi3, sssubsi3, smaxsi3, sminsi3, abssi2,
+ ssnegsi2, signbitssi2, smaxhi3, sminhi3, abshi2, ssneghi2, signbitshi2,
+ movhi_low2high, movhi_high2high, movhi_low2low, movhi_high2low,
+ movhiv2hi_low, movhiv2hi_high, composev2hi, packv2hi, movv2hi_hi,
+ ssaddhi3, sssubhi3, addv2hi3, ssaddv2hi3, subv2hi3, sssubv2hi3,
+ addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3, sublohiv2hi3,
+ subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3, addlohiv2hi3,
+ addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3, sminv2hi3, smaxv2hi3,
+ flag_mulhi, flag_mulhisi, flag_mulhisi_parts, flag_machi,
+ flag_machi_acconly, flag_macinithi, flag_macinit1hi, mulv2hi3,
+ flag_mulv2hi, flag_mulv2hi_parts, flag_macv2hi_parts,
+ flag_macv2hi_parts_acconly, flag_macinitv2hi_parts,
+ flag_macinit1v2hi_parts, mulhisi_ll, mulhisi_lh, mulhisi_hl,
+ mulhisi_hh, ssnegv2hi2, absv2hi2, ssashiftv2hi3, ssashifthi3,
+ lshiftv2hi3, lshifthi3): Use '%!' to terminate all dsp32/load/store
+ variants instead of ';'.
+ (ror_one, rol_one): Likewise. Make them dsp32 insns.
+ (ashlsi3_insn, ashrsi3, lshrsi3): Add dsp32 variants.
+ (align8, align16, align24): Now named patterns; also using '%!'.
+ (mnop): New insn.
+
+2006-12-05 Kazu Hirata <kazu@codesourcery.com>
+
+ * config/i386/darwin.h, config/spu/spu.c, tree-ssa-live.c,
+ tree-vect-generic.c, tree-vect-transform.c: Fix comment typos.
+
2006-12-04 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
* config/spu/spu-protos.c (spu_split_address): Add.
(spu_force_reg): Remove.
2006-12-01 Joseph Myers <joseph@codesourcery.com>
- David Edelsohn <edelsohn@gnu.org>
+ David Edelsohn <edelsohn@gnu.org>
PR target/24036
* doc/tm.texi (HARD_REGNO_NREGS_HAS_PADDING,
* tree-vectorizer.h (vectorizable_function): Export.
* tree-vect-transform.c (vectorizable_function): Likewise.
- * tree-vect-patterns.c (vect_recog_pow_pattern): Set
- type_in to scalar type in recognition of squaring.
+ * tree-vect-patterns.c (vect_recog_pow_pattern): Set
+ type_in to scalar type in recognition of squaring.
Make sure the target can vectorize sqrt in recognition
of sqrt, set type_in to vector type in this case.
2006-04-20 Jakub Jelinek <jakub@redhat.com>
+ PR C/27558
* c-pretty-print.c (pp_c_direct_abstract_declarator): Print
TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather
than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)).