OSDN Git Service

* tree-vectorizer.c (supportable_widening_operation): Support
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 9b3fc6e..0055802 100644 (file)
@@ -1,3 +1,241 @@
+2008-08-19  Ira Rosen  <irar@il.ibm.com>
+
+       * tree-vectorizer.c (supportable_widening_operation): Support
+       multi-step conversion, return the number of steps in such conversion
+       and the required intermediate types.
+       (supportable_narrowing_operation): Likewise.
+       * tree-vectorizer.h (vect_pow2): New function.
+       (supportable_widening_operation): Change argument types.
+       (supportable_narrowing_operation): Likewise.
+       (vectorizable_type_promotion): Add an argument.
+       (vectorizable_type_demotion): Likewise.
+       * tree-vect-analyze.c (vect_analyze_operations): Call 
+       vectorizable_type_promotion and vectorizable_type_demotion with
+       additional argument.
+       (vect_get_and_check_slp_defs): Detect patterns.
+       (vect_build_slp_tree): Add an argument, don't fail in case of multiple
+       types. 
+       (vect_analyze_slp_instance): Don't fail in case of multiple types. Call
+       vect_build_slp_tree with correct arguments. Calculate unrolling factor
+       according to the smallest type in the loop.
+       (vect_detect_hybrid_slp_stmts): Include statements from patterns.
+       * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call 
+       supportable_widening_operation with correct arguments. 
+       * tree-vect-transform.c (vect_get_slp_defs): Allocate output vector 
+       operands lists according to the number of vector statements in left
+       or right node, if exists.
+       (vect_gen_widened_results_half): Remove unused argument.
+       (vectorizable_conversion): Call supportable_widening_operation, 
+       supportable_narrowing_operation, and vect_gen_widened_results_half
+       with correct arguments. 
+       (vectorizable_assignment): Change documentation, support multiple
+       types in SLP. 
+       (vectorizable_operation): Likewise.
+       (vect_get_loop_based_defs): New function.
+       (vect_create_vectorized_demotion_stmts): Likewise.
+       (vectorizable_type_demotion): Support loop-aware SLP and general
+       multi-step conversion. Call vect_get_loop_based_defs and
+       vect_create_vectorized_demotion_stmts for transformation.
+       (vect_create_vectorized_promotion_stmts): New function.
+       (vectorizable_type_promotion): Support loop-aware SLP and general
+       multi-step conversion. Call vect_create_vectorized_promotion_stmts
+       for transformation.     
+       (vectorizable_store): Change documentation, support multiple
+       types in SLP. 
+       (vectorizable_load): Likewise.
+       (vect_transform_stmt): Pass SLP_NODE to 
+       vectorizable_type_promotion and vectorizable_type_demotion.
+       (vect_schedule_slp_instance): Move here the calculation of number
+       of vectorized statements for each node from...
+       (vect_schedule_slp): ... here.
+       (vect_transform_loop): Call vect_schedule_slp without the last
+       argument.
+
+2008-08-19  Dorit Nuzman  <dorit@il.ibm.com>
+
+       PR bootstrap/37152
+       * tree-vect-transform.c (vect_create_epilog_for_reduction): Change = 
+       to == in assert statement.
+       (vectorizable_reduction): Fix typo.
+
+2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR bootstrap/37153
+       * value-prof.c (check_counter): Dereference pointer to overall
+       count when printing it.
+
+2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * profile.h: Really add it.
+
+2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * mcf.c: Really add it.
+
+2008-08-18  Paul Yuan  <yingbo.com@gmail.com>
+           Vinodha Ramasamy  <vinodha@google.com>
+
+       * cgraph.c (cgraph_edge): Handle inconsistent counts when setting
+       count_scale.
+       * value-prof.c (check_counter): Fix the counter if
+       flag_profile_correction is true.
+       (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
+       tree_mod_subtract_transform):
+       Follow check_counter parameter change.
+       * common.opt (fprofile-correction): New option.
+       * mcf.c: New file.
+       * profile.h: Likewise.
+       * profile.c (edge_info, EDGE_INFO): Moved to new file profile.h.
+       (sum_edge_counts, is_edge_inconsistent, correct_negative_edge_counts,
+       is_inconsistent, set_bb_counts, read_profile_edge_counts): New
+       functions.
+       (compute_branch_probabilities): Refactored. Invokes mcf_smooth_cfg if
+       flag_profile_correction is set.
+
+2008-08-18  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.
+
+2008-08-18  Tomas Bily  <tbily@suse.cz>
+
+       * tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to CONVERT_EXPR_CODE_P.
+       * tree-ssa-threadedge.c (simplify_control_stmt_condition): Use
+       CONVERT_EXPR_P.
+       * tree-data-ref.c (split_constant_offset_1): Likewise.
+       * tree-inline.c (estimate_operator_cost): Use CASE_CONVERT.
+       * tree-sra.c (sra_walk_expr): Likewise.
+       * matrix-reorg.c (ssa_accessed_in_assign_rhs): Likewise.
+       * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
+       * gimple.h (gimple_assign_cast_p): Use CONVERT_EXPR_CODE_P.
+       * tree-ssa-structalias.c (find_func_aliases, find_func_aliases):
+       Likewise.
+       * gimple.c (gimple_assign_unary_nop_p): Likewise.
+       * tree-vect-transform.c (vectorizable_type_demotion)
+       (vectorizable_type_promotion): Likewise.
+       * tree-inline.c (expand_call_inline): 
+       * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
+       (forward_propagate_addr_expr_1, forward_propagate_comparison)
+       (tree_ssa_forward_propagate_single_use_vars): Likewise.
+       * expr.c (expand_expr_real_1): Likewise.
+       * tree-ssa-dom.c (hashable_expr_equal_p, iterative_hash_hashable_expr)
+       (gimple_assign_unary_useless_conversion_p): Likewise.
+       * tree-stdarg.c (execute_optimize_stdarg): Likewise.
+       * tree-ssa-ccp.c (ccp_fold, fold_gimple_assign): Likewise.
+       * fold-const.c (fold_unary): Likewise.
+       * tree.h (CONVERT_EXPR_P): Likewise.
+       * tree.c (simple_cst_equal, iterative_hash_expr): Likewise.
+       * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
+       * tree-vrp.c: 
+       (register_edge_assert_for_2, extract_range_from_unary_expr)
+       (register_edge_assert_for_1): Likewise.
+       
+2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       * real.h (dconst_e, dconst_third, dconst_sqrt2, dconst_e_ptr,
+       dconst_third_ptr, dconst_sqrt2_ptr): Declare.
+       (enum real_value_const): Delete.
+       (get_real_const): Delete.
+       * real.c (get_real_const): Delete.
+       (dconst_e_ptr): Define.
+       (dconst_third_ptr): Define.
+       (dconst_sqrt2_ptr): Define.
+       * builtins.c: Update all callers.
+
+2008-08-18  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-reassoc.c (reassociate_bb): Properly reset the
+       statement iterator after statement removal.
+
+2008-08-18  Andreas Tobler  <a.tobler@schweiz.org>
+
+       * config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function.
+       (detect_processor_freebsd): Likewise.
+       (host_detect_local_cpu): Call newly added functions for FreeBSD.
+
+2008-08-18  Richard Guenther  <rguenther@suse.de>
+
+       * tree-cfg.c (verify_types_in_gimple_assign): Verify copies
+       and loads have the correct types.
+
+2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       PR cpp/7263
+       * c-opts.c (cpp_opts): Remove static.
+       * c-parser.c (cpp_opts): Declare it extern.
+       (disable_extension_diagnostics): Handle cpp options.
+       (enable_extension_diagnostics): Likewise.
+
+2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       * diagnostics.c (permerror_at): Rename as permerror.
+       (permerror): Delete.
+       * toplev.h: Likewise.
+
+2008-08-18  Richard Guenther  <rguenther@suse.de>
+
+       * passes.c (init_optimization_passes): Remove cleanup_cfg1,
+       sdse1 and addressables2 passes.  Replace dce1 with cddce1.
+       Move call_cdce before build_alias.  Move copyrename2,
+       cunrolli and ccp2 beafore build_alias.  Re-add addressable2
+       right after final inlining.
+       * tree-cfg.c (build_gimple_cfg): Do not dump function here.
+       (pass_build_cfg): But instead via TODO_dump_func.
+
+2008-08-18  Richard Guenther  <rguenther@suse.de>
+
+       * tree-sra.c (generate_element_init_1): Deal with NULL constructor
+       element index.
+       (scalarize_init): If we failed to generate some initializers
+       do not generate zeros for not instantiated members.  Instead
+       rely on the copy out.
+       * tree-ssa-operands.c (get_addr_dereference_operands): Warn
+       about missing flow-sensitive alias info only if we have
+       aliases computed.
+
+2008-08-17  Nick Clifton  <nickc@redhat.com>
+
+       * doc/extend.texi (Function Attributes): Fix typo in description
+       if hot function attribute.
+
+2008-08-17  Daniel Jacobowitz  <dan@codesourcery.com>
+           Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * doc/install.texi (--with-mips-plt): Document.
+       * doc/invoke.texi (-mplt, -mno-plt): Document.
+       * config.gcc (mips*-*-*): Add mips-plt to supported_defaults
+       and handle ${with_mips_plt}.
+       * config/mips/mips.opt (mplt): New option.
+       * config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro.
+       (TARGET_ABICALLS_PIC2): Likewise.
+       (TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS.
+       (OPTION_DEFAULT_SPECS): Add a mips-plt entry.
+       (ASM_SPEC): Use !mabi=* instead of !mabi*.
+       (MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS
+       to decide whether to output ".option picX" directives.
+       * config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling.
+       Pass -call_nonpic rather than -KPIC for -mplt.
+       (BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present
+       on the command line.  Also remove it when -mabi=64 is used without
+       -msym32.
+       * config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete.
+       * config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle
+       TARGET_ABICALLS_PIC0.
+       (mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of
+       TARGET_ABICALLS.
+       (mips16_build_function_stub): Only output ".option pic" directives
+       and PIC stubs if TARGET_ABICALLS_PIC2.  Call through $25 instead of $1.
+       (mips16_build_call_stub): Fix comment and remove redundant
+       ".set at"/"set .noat" directives.
+       (mips_function_rodata_section): Use the default behaviour for
+       TARGET_ABSOLUTE_ABICALLS.
+       (mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0.
+       (mips_global_pointer): Handle TARGET_ABICALLS_PIC0.
+       (mips_restore_gp): Do nothing if the current function doesn't use
+       a global pointer.
+       (mips_expand_prologue): Only save $gp if the current function uses it.
+       Use a normal move for TARGET_ABICALLS_PIC0.
+       (mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2.
+
 2008-08-17  Richard Sandiford  <rdsandiford@googlemail.com>
 
        * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest