OSDN Git Service

Account for loop unrolling in the insn-to-prefetch ratio heuristic.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 774d7c8..6236c9e 100644 (file)
@@ -1,3 +1,381 @@
+2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
+
+       * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
+       Account for loop unrolling in the insn-to-prefetch ratio heuristic.
+       (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
+       the unroll_factor.
+
+2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
+
+       * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
+       a diagnostic info when the insn-to-mem ratio is too small.
+
+2010-05-07  Richard Guenther <rguenther@suse.de>
+
+       * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
+       the linker plugin.
+       (store_arg): Queue temp_filename for deletion instead of
+       the whole argument.
+
+2010-05-07  Richard Guenther  <rguenther@suse.de>
+
+       * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
+       (run_gcc): Handle LTRANS phase invocation.
+       * collect2.c (maybe_run_lto_and_relink): Do not set
+       WPA_SAVE_LTRANS.
+
+2010-05-07  Jakub Jelinek  <jakub@redhat.com>
+
+       * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
+       this is also meaningful on PARM_DECLs and RESULT_DECLs.
+
+2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
+
+2010-05-07  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/44020
+       * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
+       code when PRE is not yet initialized.
+
+2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * config/mips/dbxmdebug.h: Remove.
+       * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
+
+2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
+
+       * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
+       with null pointer and also warn about ordered comparison of zero with
+       pointer if -Wextra.
+
+2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
+
+       * graphite-blocking.c
+       (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
+       * graphite-clast-to-gimple.c
+       (clast_to_gcc_expression): Same.
+       (precision_for_value): Same.
+       (precision_for_interval): Same.
+       (gcc_type_for_interval): Same.
+       (graphite_create_new_guard): Same.
+       (compute_bounds_for_level): Same.
+       (graphite_create_new_loop_guard): Same.
+       * graphite-interchange.c
+       (build_linearized_memory_access): Same.
+       (pdr_stride_in_loop): Same.
+       (memory_strides_in_loop_1): Same.
+       (memory_strides_in_loop): Same.
+       (extend_scattering): Same.
+       (psct_scattering_dim_for_loop_depth): Same.
+       (pbb_number_of_iterations): Same.
+       * graphite-poly.h
+       (debug_iteration_domains): Same.
+       * graphite-ppl.c
+       (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
+       (ppl_set_inhomogeneous_gmp): Same.
+       (ppl_strip_loop): Same.
+       (ppl_lexico_compare_linear_expressions): Same.
+       (ppl_read_polyhedron_matrix): Same.
+       (ppl_max_for_le_pointset): Same.
+       * graphite-ppl.h
+       (ppl_read_polyhedron_matrix): Same.
+       (tree_int_to_gmp): Same.
+       (gmp_cst_to_tree): Same.
+       (ppl_set_inhomogeneous): Same.
+       (ppl_set_inhomogeneous_tree): Same.
+       (ppl_set_coef): Same.
+       (ppl_set_coef_tree): Same.
+       * graphite-sese-to-poly.c
+       (build_pbb_scattering_polyhedrons): Same.
+       (build_scop_scattering): Same.
+       (scan_tree_for_params_right_scev): Same.
+       (scan_tree_for_params): Same.
+       (find_params_in_bb): Same.
+       (find_scop_parameters): Same.
+       (add_upper_bounds_from_estimated_nit): Same.
+       (build_loop_iteration_domains): Same.
+       (add_condition_to_domain): Same.
+       (pdr_add_memory_accesses): Same.
+
+2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
+
+       * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
+       CLooG's value_* macros to their respective mpz_* counterparts.
+       * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
+       (graphite_create_new_loop_guard): Same.
+       * graphite-interchange.c (build_linearized_memory_access): Same.
+       (pdr_stride_in_loop): Same.
+       (memory_strides_in_loop_1): Same.
+       (1st_interchange_profitable_p): Same.
+       * graphite-poly.c (extend_scattering): Same.
+       (psct_scattering_dim_for_loop_depth): Same.
+       (pbb_number_of_iterations): Same.
+       (pbb_number_of_iterations_at_time): Same.
+       * graphite-poly.h (new_1st_loop): Same.
+       * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
+       (oppose_constraint): Same.
+       (insert_constraint_into_matrix): Same.
+       (ppl_set_inhomogeneous_gmp): Same.
+       (ppl_set_coef_gmp): Same.
+       (ppl_strip_loop): Same.
+       (ppl_lexico_compare_linear_expressions): Same.
+       (ppl_max_for_le_pointset): Same.
+       (ppl_min_for_le_pointset): Same.
+       (ppl_build_realtion): Same.
+       * graphite-ppl.h (gmp_cst_to_tree): Same.
+       (ppl_set_inhomogeneous): Same.
+       (ppl_set_inhomogeneous_tree): Same.
+       (ppl_set_coef): Same.
+       (ppl_set_coef_tree): Same.
+       * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
+       (build_scop_scattering): Same.
+       (add_value_to_dim): Same.
+       (scan_tree_for_params_right_scev): Same.
+       (scan_tree_for_params_int): Same.
+       (scan_tree_for_params): Same.
+       (find_params_in_bb): Same.
+       (find_scop_parameters): Same.
+       (add_upper_bounds_from_estimated_nit): Same.
+       (build_loop_iteration_domains): Same.
+       (create_linear_expr_from_tree): Same.
+       (add_condition_to_domain): Same.
+       (pdr_add_memory_accesses): Same.
+
+2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
+           Jason Merrill  <jason@redhat.com>
+
+       * c-common.c (c_common_reswords): Add nullptr.
+       * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
+       * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
+       (gen_type_die_with_usage): Likewise.
+       * dbxout.c (dbxout_type): Likewise.
+       * sdbout.c (plain_type_1): Likewise.
+
+2010-05-06  Jason Merrill  <jason@redhat.com>
+
+       * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
+       Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
+       ret appropriately.
+       (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
+
+       * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
+       stripping WITH_SIZE_EXPR.
+       (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
+       change.
+
+2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
+       list of obsolete configurations.
+       Disabled check for obsolete configurations.
+       (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
+       Removed support for previous versions.
+       * config/mips/iris.h: Removed.
+       * config/mips/iris5.h: Removed.
+       * config/mips/iris6.h: Merged old iris.h contents.
+       (TARGET_IRIX): Removed.
+       (DRIVER_SELF_SPECS): Removed mabi=32.
+       (IDENT_ASM_OP): Removed undef.
+       (STARTFILE_SPEC): Removed mabi=32.
+       (ENDFILE_SPEC): Likewise.
+       (IRIX_SUBTARGET_LINK_SPEC): Likewise.
+       (MACHINE_TYPE): Update for IRIX 6.5.
+       * config/mips/mips.c (mips_build_builtin_va_list): Replaced
+       TARGET_IRIX by TARGET_IRIX6.
+       (mips_file_start): Likewise.
+       (mips_output_external): Remove IRIX 5/6 O32 support.
+       (mips_output_function_prologue): Likewise.
+       * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
+       TARGET_IRIX6.
+       (TARGET_CPU_CPP_BUILTINS): Likewise.
+       (TARGET_IRIX): Removed.
+       * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
+       (MULTILIB_DIRNAMES): Removed 32.
+       (MULTILIB_OSDIRNAMES): Removed ../lib.
+       * doc/install.texi (Prerequisites): Don't reference IRIX before
+       6.5.
+       (Specific, mips-sgi-irix5): Document removal.
+       (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI
+       removal.
+       Remove references to older IRIX 6 releases and the O32 ABI.
+
+2010-05-06  Jakub Jelinek  <jakub@redhat.com>
+
+       * gcc.dg/Wunused-var-8.c: Move to...
+       * c-c++-common/Wunused-var-6.c: ... here.  New test.
+
+       PR bootstrap/43994
+       * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
+       instead of DF_REF_REAL_REG.
+
+2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+       PR target/43888
+       * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
+       handling to still return true for x64 targets.
+
+2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
+
+2010-05-06  Jan Hubicka  <jh@suse.cz>
+
+       PR tree-optimization/43791
+       * ipa-inline.c (update_caller_keys): Remove bogus
+       disregard_inline_limits check.
+
+2010-05-06  Michael Matz  <matz@suse.de>
+
+       PR tree-optimization/43984
+       * tree-ssa-pre.c (inserted_phi_names): Remove.
+       (inserted_exprs): Change to bitmap.
+       (create_expression_by_pieces): Set bits, don't append to vector.
+       (insert_into_preds_of_block): Don't handle inserted_phi_names.
+       (eliminate): Don't look at inserted_phi_names, remove deleted
+       insns from inserted_exprs.
+       (remove_dead_inserted_code): Adjust to use bitmaps instead of
+       vectors.
+       (init_pre, fini_pre): Allocate and free bitmaps.
+       (execute_pre): Insert insns on edges before elimination.
+
+2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       * tree.c (initializer_zerop): Handle STRING_CST.
+
+2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
+
+       PR 40989
+       * doc/invoke.texi (Wimplicit): Document as C only.
+       * opts.c (common_handle_option): Add argument kind.
+       (handle_option): Rename as read_cmdline_option. Factor out code to...
+       (handle_option): ... here. New.
+       (handle_options): Rename as read_cmdline_options.
+       (decode_options): Update call.
+       (set_option): Use option index instead of option pointer. Classify
+       diagnostics correctly.
+       (enable_warning_as_error): Call handle_option.
+       * opts.h (set_option): Update declaration.
+       (handle_option): Declare.
+       * langhooks.h (struct lang_hooks): Add argument kind to
+       handle_option.
+       * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
+       * c-opts.c (set_Wimplicit): Delete.
+       (c_family_lang_mask): New static constant.
+       (c_common_handle_option): Add argument kind. Use handle_option
+       instead of set_Wimplicit.
+       (c_common_post_options): warn_implicit and warn_implicit_int
+       are disabled by default.
+       * c-common.c (warn_implicit): Do not define here.
+       * c-common.h (warn_implicit): Do not declare here.
+       (c_common_handle_option): Update declaration.
+       * lto-opts.c (lto_reissue_options): Update call to set_option.
+
+2010-05-06  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/43571
+       * domwalk.c (walk_dominator_tree): Walk the dominator
+       sons in more optimal order.
+
+2010-05-06  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/43934
+       * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
+       (stmt_cost): Likewise.
+       (extract_true_false_args_from_phi): New helper.
+       (determine_max_movement): For PHI nodes verify we can hoist them
+       and compute their cost.
+       (determine_invariantness_stmt): Handle PHI nodes.
+       (move_computations_stmt): Likewise.  Hoist PHI nodes in
+       if-converted form using COND_EXPRs.
+       (move_computations): Return TODO_cleanup_cfg if we hoisted PHI
+       nodes.
+       (tree_ssa_lim): Likewise.
+       * tree-flow.h (tree_ssa_lim): Adjust prototype.
+       * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
+
+2010-05-06  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/43987
+       * tree-ssa-structalias.c (could_have_pointers): For possibly
+       address-taken variables force pointers to be recorded.
+       (create_variable_info_for_1): Likewise.
+       (push_fields_onto_fieldstack): Pass in wheter all fields
+       must have pointers.
+       (find_func_aliases): Query types instead of vars whether
+       they contain pointers where appropriate.
+
+2010-05-06  Jan Hubicka  <jh@suse.cz>
+
+       * cgraphbuild.c (record_reference_ctx): Add varpool_node.
+       (record_reference, mark_address, mark_load, mark_store): Record
+       references.
+       (record_references_in_initializer): Update call of record_references.
+       (rebuild_cgraph_edges): Remove all references before rebuiding.
+       * cgraph.c (cgraph_create_node): Clear ref list.
+       (cgraph_remove_node): Remove references.
+       (dump_cgraph_node): Dump references.
+       (cgraph_clone_node): Clone references.
+       * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
+       (struct cgraph_node, varpool_node): Add ref_lst.
+       * ipa-ref.c: New file.
+       * ipa-ref.h: New file.
+       * ipa-ref-inline.h: New file.
+       * lto-cgraph.c (output_varpool): Take cgrag node set argument.
+       (referenced_from_other_partition_p): New function.
+       (lto_output_varpool_node): Take set arugment; call
+       referenced_from_other_partition.
+       (lto_output_ref): New.
+       (add_references): New.
+       (output_refs): New.
+       (output_cgraph): Compute boundary based on references;
+       output refs.
+       (output_varpool): Accept cgraph_node_set argument.
+       (input_ref): New.
+       (input_refs): New.
+       (input_cgraph): Call input_refs.
+       * lto-section-in.c (lto_section_name): Add refs.
+       * Makefile.in: (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
+       (ipa-ref.o): New file.
+       * varpool.c (varpool_node): Clear ipa ref list.
+       (varpool_remove_node): Remove references.
+       (dump_varpool_node): Dump references.
+       (varpool_assemble_decl): Only compile finalized ones.
+       (varpool_extra_name_alias): Initialize ref list.
+       * lto-streamer.c (lto-get_section_name): Add .refs section.
+       * lto-streamer.h (lto_section_type): Add LTO_section_refs.
+       (referenced_from_other_partition_p): Declared.
+
+2010-05-06  Ira Rosen  <irar@il.ibm.com>
+
+       PR tree-optimization/43901
+       * tree-vect-stmts.c (vectorizable_call): Assert that vector
+       type is not NULL if it's transformation phase, and return
+       FALSE if it's analysis.
+       (vectorizable_conversion, vectorizable_operation, 
+       vectorizable_type_demotion, vectorizable_type_promotion):
+       Likewise.
+
+2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
+
+       * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
+       Delete.
+       * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
+       New define.
+       * config/mips/mips-protos.h
+       (mips_small_register_classes_for_mode_p): Delete prototype.
+
+2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
+
+       * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
+       * config/arm/arm.c (multiple_operation_profitable_p,
+       compute_offset_order): New static functions.
+       (load_multiple_sequence, store_multiple_sequence): Use them.
+       Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
+       memory offsets, not register numbers.
+       (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
+
 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
 
        * stor-layout.c (pending_sizes): Change the type to