+2007-08-17 H.J. Lu <hongjiu.lu@intel.com>
+
+ * Makefile.in (version.o): Depend on $(REVISION) only if
+ REVISION_s is defined.
+
+2007-08-17 Sa Liu <saliu@de.ibm.com>
+ Ulrich Weigand <uweigand@de.ibm.com>
+
+ PR middle-end/32970
+ * tree.c (reconstruct_complex_type): For a pointer to a vector,
+ use build_qualified_type to retain qualifiers of the base type.
+
+2007-08-17 Chen Liqin <liqin@sunnorth.com.cn>
+
+ * config/score/score.md : Update pattern tablejump.
+ * config/score/score.c : Update score_initialize_trampoline
+ function.
+ * config/score/score.h (TRAMPOLINE_TEMPLATE): Added macro.
+ (TRAMPOLINE_INSNS, TRAMPOLINE_SIZE) Update macro.
+ * doc/contrib.texi: Add my entry.
+
+2007-08-16 H.J. Lu <hongjiu.lu@intel.com>
+
+ * Makefile.in (REVISION): New.
+ (REVISION_c): New.
+ (REVISION_s): New.
+ (version.o): Also depend on $(REVISION). Add
+ -DREVISION=$(REVISION_s).
+
+ * version.c (version_string): Add REVISION.
+
+2007-08-16 Seongbae Park <seongbae.park@gmail.com>
+
+ * tree-eh.c (lower_try_finally_onedest): Reset the locus
+ of GOTO that's relocated to a different block.
+
+2007-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * c-common.c (const_strip_array_types): New.
+ * c-common.h (lang_missing_noreturn_ok_p): Delete.
+ (const_strip_array_types): New.
+ * c-objc-common.c (c_disregard_inline_limits,
+ c_warn_unused_global_decl): Constify.
+ * c-tree.h (c_disregard_inline_limits, c_warn_unused_global_decl,
+ c_vla_type_p, c_incomplete_type_error): Likewise.
+ * c-typeck.c (c_incomplete_type_error, c_vla_type_p): Likewise.
+ * hooks.c (hook_bool_const_tree_false): New.
+ * hooks.h (hook_bool_const_tree_false): Likewise.
+ * langhooks-def.h (lhd_warn_unused_global_decl,
+ lhd_incomplete_type_error, lhd_expr_size,
+ lhd_tree_inlining_disregard_inline_limits,
+ lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
+ LANG_HOOKS_GENERIC_TYPE_P, LANG_HOOKS_TYPE_MAX_SIZE): Constify.
+ * langhooks.c (lhd_warn_unused_global_decl,
+ lhd_incomplete_type_error,
+ lhd_tree_inlining_disregard_inline_limits,
+ lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
+ lhd_expr_size): Likewise.
+ * langhooks.h (lang_hooks_for_tree_inlining,
+ lang_hooks_for_tree_dump, lang_hooks_for_types,
+ lang_hooks_for_decls, lang_hooks): Likewise.
+ * pointer-set.c (pointer_set_t, pointer_set_create,
+ pointer_set_contains, insert_aux, pointer_set_insert,
+ pointer_set_traverse, pointer_map_t, pointer_map_create,
+ pointer_map_contains, pointer_map_insert, pointer_map_traverse):
+ Likewise.
+ * pointer-set.h (pointer_set_contains, pointer_set_insert,
+ pointer_set_traverse, pointer_map_contains, pointer_map_insert,
+ pointer_map_traverse): Likewise.
+ * predict.c (assert_is_empty): Likewise.
+ * tree-affine.c (free_name_expansion): Likewise.
+ * tree-cfg.c (edge_to_cases_cleanup): Likewise.
+ * tree.c (size_in_bytes, max_int_size_in_bytes): Likewise.
+ * tree.h (size_in_bytes, max_int_size_in_bytes): Likewise.
+
+2007-08-16 Victor Kaplansky <victork@il.ibm.com>
+
+ * tree-vectorizer.c (new_loop_vec_info): Initialize new
+ field.
+ (destroy_loop_vec_info): Add call to VEC_free.
+ * tree-vectorizer.h (may_alias_ddrs): Define.
+ (LOOP_VINFO_MAY_ALIAS_DDRS): Define.
+ * tree-vect-analyze.c (vect_analyze_data_ref_dependence):
+ Change reporting to dump.
+ (vect_is_duplicate_ddr): New.
+ (vect_mark_for_runtime_alias_test): New.
+ (vect_analyze_data_ref_dependences) Add call to
+ vect_mark_for_runtime_alias_test.
+ (vect_enhance_data_refs_alignment): Define local variable
+ vect_versioning_for_alias_required, don't perform
+ peeling for alignment if versioning for alias is
+ required.
+ (vect_enhance_data_refs_alignment): Use
+ PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS instead of
+ PARAM_VECT_MAX_VERSION_CHECKS.
+ * tree-vect-transform.c
+ (vect_create_cond_for_alias_checks): New.
+ (vect_transform_loop): Add call to
+ vect_create_cond_for_alias_checks.
+ (vect_vfa_segment_size): New.
+ * params.def (PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS):
+ Rename.
+ (PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS): Define.
+ * gcc/doc/invoke.texi
+ (vect-max-version-for-alignment-checks): Document.
+ (vect-max-version-for-alias-checks): Document.
+ (vect-max-version-checks): Remove.
+
+2007-08-16 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (*rep_movdi_rex64): Emit "rep" prefix on
+ the same line as the instruction for all asm dialects.
+ (*rep_movsi): Ditto.
+ (*rep_movsi_rex64): Ditto.
+ (*rep_movqi): Ditto.
+ (*rep_movqi_rex64): Ditto.
+ (*rep_stosdi_rex64): Ditto.
+ (*rep_stossi): Ditto.
+ (*rep_stossi_rex64): Ditto.
+ (*rep_stosqi): Ditto.
+ (*rep_stosqi_rex64): Ditto.
+ (*cmpstrnqi_nz_1): Ditto.
+ (*cmpstrnqi_nz_rex_1): Ditto.
+ (*cmpstrnqi_1): Ditto.
+ (*cmpstrnqi_rex_1): Ditto.
+ (*strlenqi_1): Ditto.
+ (*strlenqi_rex_1): Ditto.
+ * config/i386/sync.md (*sync_compare_and_swap<mode>): Emit "lock"
+ prefix on the same line as the instruction for all asm dialects.
+ (sync_double_compare_and_swap<mode>): Ditto.
+ (*sync_double_compare_and_swapdi_pic): Ditto.
+ (*sync_compare_and_swap_cc<mode>): Ditto.
+ (sync_double_compare_and_swap_cc<mode>): Ditto.
+ (*sync_double_compare_and_swap_ccdi_pic): Ditto.
+ (sync_old_add<mode>): Ditto.
+ (sync_add<mode>): Ditto.
+ (sync_sub<mode>): Ditto.
+ (sync_ior<mode>): Ditto.
+ (sync_and<mode>): Ditto.
+ (sync_xor<mode>): Ditto.
+
+2007-08-16 Richard Sandiford <richard@codesourcery.com>
+
+ PR middle-end/32897
+ * reload.c (find_reloads): Check that the memory returned by
+ find_reloads_toplev was not the result of forcing a constant
+ to memory.
+ (find_reloads_toplev): Always use simplify_gen_subreg to get
+ the subreg of a constant. If the result is also a constant,
+ but not a legitimate one, force it into the constant pool
+ and reload its address.
+
+2007-08-15 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.c (rs6000_rtx_costs): Add CLZ, CTZ, and
+ POPCOUNT.
+
+2007-08-15 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * config/rs6000/rs6000.c (rs6000_file_start): Output a .gnu_attribute
+ directive for the current vector ABI.
+
+2007-08-15 Steve Ellcey <sje@cup.hp.com>
+
+ PR target/32963
+ * caller-save.c (reg_save_code): Set invalide status on restore code.
+
+2007-08-15 Diego Novillo <dnovillo@google.com>
+
+ * tree-ssa-alias.c (compute_memory_partitions): Use
+ alias_bitmap_obstack to allocate bitmaps.
+ (reset_alias_info): Factor out of init_alias_info.
+ Mark all name tags not associated to an SSA name for renaming.
+ (init_alias_info): Call it.
+ (create_name_tags): Tidy. Add comments.
+ (dump_points_to_info_for): Do not call get_mem_sym_stats_for.
+
+2007-08-15 Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ * config/mips/mips.c (vr4130_swap_insns_p): Use new interface to
+ scheduler dependencies.
+
+2007-08-15 Rask Ingemann Lambertsen <rask@sygehus.dk>
+
+ * config/i386/i386.md (subsi3_carry_zext): Remove "m" constraint for
+ "register_operand".
+ (*iorsi_1_zext): Likewise.
+ (*iorsi_1_zext_imm): Likewise.
+ * config/i386/sse.md: (*sse4_1_extractps): Use "nonimmediate_operand"
+ with "rm"/"xm" constraint.
+ (sse2_vmsqrtv2df2): Likewise.
+
+2007-08-15 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/33074
+ * emit-rtl.c (try_split): Use INSN_LIST instead of EXPR_LIST for
+ REG_LIBCALL note.
+
+2007-08-14 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-pass.h (PROP_pta): Removed.
+ (TODO_rebuild_alias): New.
+ (pass_may_alias): Removed.
+ * tree-ssa-ccp.c (execute_fold_all_builtins): Only rebuild
+ aliasing if we changed something.
+ * tree-ssa-alias.c (compute_may_aliases): Make non-static. Update
+ SSA internally.
+ (pass_may_alias): Removed.
+ (create_structure_vars): Return TODO_rebuild_alias.
+ * tree-ssa-pre.c (do_pre): Return TODO_rebuild_alias.
+ * tree-sra.c (tree_sra): Only rebuild aliasing if something
+ changed.
+ (tree_sra_early): We never affect aliasing right now.
+ * tree-flow.h (compute_may_aliases): New prototype.
+ * passes.c: Remove pass_may_alias from the passes.
+ (execute_function_todo): Support TODO_rebuild_alias.
+
+2007-08-14 Kai Tietz <kai.tietz@onevision.com>
+
+ * i386.c: (legitimize_address): Move dllimported variable check
+ infront of legitimizing pic address of CONST symbols.
+
+2007-08-14 Steve Ellcey <sje@cup.hp.com>
+
+ PR tree-optimization/32941
+ * tree-eh.c (struct leh_tf_state): Add goto_queue_map field.
+ (goto_queue_cmp): Remove.
+ (find_goto_replacement): Change search method.
+ (maybe_record_in_goto_queue): Add assert.
+ (lower_try_finally): Remove qsort call, add pointer_map_destroy call.
+ * Makefile.in (tree-eh.o): Add pointer-set.h dependency.
+
+2007-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * alias.c (component_uses_parent_alias_set): Constify.
+ * alias.h (component_uses_parent_alias_set): Likewise.
+ * cfgrtl.c (print_rtl_with_bb): Likewise.
+ * double-int.c (tree_to_double_int, double_int_fits_to_tree_p,
+ mpz_get_double_int): Likewise.
+ * double-int.h (double_int_fits_to_tree_p, tree_to_double_int,
+ mpz_get_double_int): Likewise.
+ * expr.c (is_aligning_offset, undefined_operand_subword_p,
+ mostly_zeros_p, all_zeros_p, safe_from_p, is_aligning_offset):
+ Likewise.
+ * expr.h (safe_from_p): Likewise.
+ * gimple-low.c (try_catch_may_fallthru, block_may_fallthru):
+ Likewise.
+ * gimplify.c (should_carry_locus_p, zero_sized_field_decl,
+ zero_sized_type, goa_lhs_expr_p): Likewise.
+ * omp-low.c (is_variable_sized, use_pointer_for_field): Likewise.
+ * rtl.h (print_rtl_with_bb): Likewise.
+ * sched-vis.c (print_exp, print_value, print_pattern): Likewise.
+ * tree-cfg.c (const_first_stmt, const_last_stmt): New.
+ * tree-flow-inline.h (bb_stmt_list): Constify.
+ (cbsi_start, cbsi_last, cbsi_end_p, cbsi_next, cbsi_prev,
+ cbsi_stmt): New.
+ * tree-flow.h (const_block_stmt_iterator, cbsi_start, cbsi_last,
+ const_first_stmt, const_last_stmt): New.
+ (block_may_fallthru, empty_block_p): Constify.
+ * tree-iterator.c (EXPR_FIRST_BODY, EXPR_LAST_BODY,
+ EXPR_ONLY_BODY): New.
+ (expr_first, expr_last, expr_only): Use macro for body.
+ (const_expr_first, const_expr_last, const_expr_only): New.
+ * tree-iterator.h (const_tree_stmt_iterator, ctsi_start,
+ ctsi_last, ctsi_end_p, ctsi_one_before_end_p, ctsi_next,
+ ctsi_prev, ctsi_stmt): New.
+ * tree-scalar-evolution.c (get_loop_exit_condition): Constify.
+ * tree-scalar-evolution.h (get_loop_exit_condition): Likewise.
+ * tree-ssa-loop-niter.c (loop_only_exit_p,
+ derive_constant_upper_bound): Likewise.
+ * tree-ssa-phiopt.c (empty_block_p): Likewise.
+ * tree-ssa-threadupdate.c (redirection_block_p): Likewise.
+ * tree-vectorizer.c (slpeel_can_duplicate_loop_p): Likewise.
+ * tree-vectorizer.h (slpeel_can_duplicate_loop_p): Likewise.
+ * tree-vrp.c (vrp_bitmap_equal_p): Likewise.
+ * tree.c (get_type_static_bounds): Likewise.
+ * tree.h (const_expr_first, const_expr_last, const_expr_only): New.
+ (get_type_static_bounds): Constify.
+
+2007-08-14 Rask Ingemann Lambertsen <rask@sygehus.dk>
+
+ PR target/30315
+ * config/i386/i386.h (CANONICALIZE_COMPARISON): New.
+ * config/i386/i386.md (plusminus)(addsub)(SWI): New.
+ (*<addsub><mode>3_cc_overflow): New.
+ (*add<mode>3_cconly_overflow): New.
+ (*sub<mode>3_cconly_overflow): New.
+ (*<addsub>si3_zext_cc_overflow): New.
+ * config/i386/predicates.md (fcmov_comparison_operator): Accept
+ CCCmode for LTU, GTU, LEU and GEU.
+ (ix86_comparison_operator): Likewise.
+ (ix86_carry_flag_operator): Carry flag is set if LTU or GTU in CCCmode.
+ * config/i386/i386.c (put_condition_code): Support CCCmode.
+ (ix86_cc_mode): Use CCCmode when testing for overflow of PLUS
+ or MINUS expressions.
+
+2007-08-14 Andrew Pinski <pinskia@gmail.com>
+
+ PR c/30428
+ * c-typeck.c (build_binary_op): Disallow vector float types with
+ BIT_IOR_EXPR, BIT_AND_EXPR, and BIT_XOR_EXPR.
+
+2007-08-14 Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ * sched-int.h (struct _dep): Rename field 'kind' to 'type'.
+ (DEP_KIND): Rename to DEP_TYPE. Update all uses.
+ (dep_def): New typedef.
+ (init_dep_1, sd_debug_dep): Declare functions.
+ (DEP_LINK_KIND): Rename to DEP_LINK_TYPE.
+ (debug_dep_links): Remove.
+ (struct _deps_list): New field 'n_links'.
+ (DEPS_LIST_N_LINKS): New macro.
+ (FOR_EACH_DEP_LINK): Remove.
+ (create_deps_list, free_deps_list, delete_deps_list): Remove
+ declaration.
+ (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
+ (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
+ (copy_deps_list_change_con, move_dep_link): Ditto.
+ (struct haifa_insn_data): Split field 'back_deps' into 'hard_back_deps'
+ and 'spec_back_deps'. New field 'resolved_forw_deps'. Remove field
+ 'dep_count'.
+ (INSN_BACK_DEPS): Remove.
+ (INSN_HARD_BACK_DEPS, INSN_SPEC_BACK_DEPS, INSN_RESOLVED_FORW_DEPS):
+ New macros.
+ (INSN_DEP_COUNT): Remove.
+ (enum DEPS_ADJUST_RESULT): Add new constant DEP_NODEP. Fix comments.
+ (spec_info, haifa_recovery_block_was_added_during_scheduling_p):
+ Declare global variables.
+ (deps_pools_are_empty_p, sched_free_deps): Declare functions.
+ (add_forw_dep, compute_forward_dependences): Remove declarations.
+ (add_or_update_back_dep, add_or_update_back_forw_dep): Ditto.
+ (add_back_forw_dep, delete_back_forw_dep): Ditto.
+ (debug_ds, sched_insn_is_legitimate_for_speculation_p): Declare
+ functions.
+ (SD_LIST_NONE, SD_LIST_HARD_BACK, SD_LIST_SPEC_BACK, SD_LIST_FORW): New
+ constants.
+ (SD_LIST_RES_BACK, SD_LIST_RES_FORW, SD_LIST_BACK): Ditto.
+ (sd_list_types_def): New typedef.
+ (sd_next_list): Declare function.
+ (struct _sd_iterator): New type.
+ (sd_iterator_def): New typedef.
+ (sd_iterator_start, sd_iterator_cond, sd_iterator_next): New inline
+ functions.
+ (FOR_EACH_DEP): New cycle wrapper.
+ (sd_lists_size, sd_lists_empty_p, sd_init_insn, sd_finish_insn):
+ Declare functions.
+ (sd_find_dep_between, sd_add_dep, sd_add_or_update_dep): Ditto.
+ (sd_resolve_dep, sd_copy_back_deps, sd_delete_dep, sd_debug_lists):
+ Ditto.
+
+ * sched-deps.c (init_dep_1): Make global.
+ (DUMP_DEP_PRO, DUMP_DEP_CON, DUMP_DEP_STATUS, DUMP_DEP_ALL): New
+ constants.
+ (dump_dep): New static function.
+ (dump_dep_flags): New static variable.
+ (sd_debug_dep): New function.
+ (add_to_deps_list, remove_from_deps_list): Update 'n_links' field of
+ the list.
+ (move_dep_link): Use remove_from_deps_list (), instead of
+ detach_dep_link ().
+ (dep_links_consistent_p, dump_dep_links, debug_dep_links): Remove.
+ (dep_link_is_detached_p): New static function.
+ (deps_obstack, dl_obstack, dn_obstack): Remove. Use dn_pool, dl_pool
+ instead.
+ (dn_pool, dl_pool): New alloc_pools.
+ (dn_pool_diff, dl_pool_diff): New static variables.
+ (create_dep_node, delete_dep_node): New static function.
+ (create_deps_list): Make it static. Use alloc_pool 'dl_pool'.
+ (deps_list_empty_p): Make it static. Use 'n_links' field.
+ (deps_pools_are_empty_p): New static function.
+ (alloc_deps_list, delete_deps_list): Remove.
+ (dump_deps_list, debug_deps_list, add_back_dep_to_deps_list): Remove.
+ (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
+ (copy_deps_list_change_con): Remove. Use sd_copy_back_deps () instead.
+ (forward_dependency_cache): Remove.
+ (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Remove
+ 'back' from the names. Change signature to use dep_t instead of
+ equivalent quad.
+ (add_back_dep): Ditto. Make global.
+ (check_dep_status): Rename to check_dep ().
+ (sd_next_list, sd_lists_size, sd_lists_empty_p, sd_init_insn):
+ New functions.
+ (sd_finish_insn): Ditto.
+ (sd_find_dep_between_no_cache): New static function.
+ (sd_find_dep_between): New function.
+ (ask_dependency_caches, set_dependency_caches): New static functions.
+ (update_dependency_caches, change_spec_dep_to_hard, update_dep): Ditto.
+ (add_or_update_dep_1): Separate pieces of functionality into
+ ask_dependency_caches (), update_dependency_caches (),
+ change_spec_dep_to_hard (), update_dep ().
+ (get_back_and_forw_lists): New static function.
+ (sd_add_dep): Separate setting of dependency caches into
+ set_dependency_caches ().
+ (sd_add_or_update_dep, sd_resolve_dep, sd_copy_back_deps):
+ New functions.
+ (sd_delete_dep): Ditto.
+ (DUMP_LISTS_SIZE, DUMP_LISTS_DEPS, DUMP_LISTS_ALL): New constants.
+ (dump_lists): New static function.
+ (sd_debug_lists): New debug function.
+ (delete_all_dependences, fixup_sched_groups): Update to use
+ sd_* infrastructure.
+ (sched_analyze_2): Create data-speculative dependency only if
+ data-speculation is enabled.
+ (sched_analyze_insn): If insn cannot be speculative, make all its
+ dependencies non-speculative.
+ (sched_analyze): Use sd_init_insn ().
+ (add_forw_dep, compute_forward_dependencies): Remove.
+ (delete_dep_nodes_in_back_deps): New static function.
+ (sched_free_deps): New function.
+ (init_dependency_caches): Init alloc_pools.
+ (extend_depedency_caches): Update after removing of
+ forward_dependency_cache.
+ (free_dependency_caches): Ditto. Free alloc_pools.
+ (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Remove.
+ (delete_forw_dep, add_or_update_back_dep, add_or_update_back_forw_dep):
+ Ditto.
+ (add_back_forw_dep, delete_back_forw_dep): Ditto.
+ (add_dependence): Use init_dep ().
+ (get_dep_weak_1): New static function.
+ (get_dep_weak): Move logic to get_dep_weak_1 ().
+ (dump_ds): New static function moved from haifa-sched.c:
+ debug_spec_status ().
+ (debug_ds): New debug function.
+ (check_dep_status): Rename to check_dep (). Update to check whole
+ dependencies.
+
+ * haifa-sched.c (spec_info): Make global.
+ (added_recovery_block_p): Rename to
+ 'haifa_recovery_block_was_added_during_current_schedule_block_p'.
+ (haifa_recovery_block_was_added_during_scheduling_p): New variable.
+ (dep_cost, priority, rank_for_schedule, schedule_insn): Update
+ to use new interfaces.
+ (ok_for_early_queue_removal): Ditto.
+ (schedule_block): Initialize logical uids of insns emitted by the
+ target.
+ (sched_init): Initialize new variable.
+ (fix_inter_tick, try_ready, fix_tick_ready): Update to use new
+ interfaces.
+ (extend_global): Initialize insn data.
+ (init_h_i_d): Remove code that is now handled in sd_init_insn ().
+ (process_insn_forw_deps_be_in_spec): Change signature. Update to use
+ new interfaces.
+ (add_to_speculative_block): Update to use new interfaces.
+ (create_recovery_block): Set new variables.
+ (create_check_block_twin, fix_recovery_deps): Update to use new
+ interfaces.
+ (sched_insn_is_legitimate_for_speculation_p): New function.
+ (speculate_insn): Move checking logic to
+ sched_insn_is_legitimate_for_speculation_p ().
+ (sched_remove_insn): Finalize sched-deps information of instruction.
+ (clear_priorities, add_jump_dependencies): Update to use new
+ interfaces.
+ (debug_spec_status): Rename to dump_ds () and move to sched-deps.c.
+
+ * sched-rgn.c (set_spec_fed, find_conditional_protection): Update
+ to use new interfaces.
+ (is_conditionally_protected, is_pfree, is_prisky) Ditto.
+ (new_ready): Try to use control speculation only if it is available.
+ (add_branch_dependences): Update to use new interfaces.
+ (compute_block_backward_dependences): Rename to
+ compute_block_dependences (). Call
+ targetm.sched.dependencies_evaluation_hook ().
+ (free_block_dependencies): New static function.
+ (debug_dependencies): Update to use new interfaces.
+ (schedule_region): Remove separate computation of forward dependencies.
+ Move call of targetm.sched.dependencies_evaluation_hook () to
+ compute_block_dependences (). Free dependencies at the end of
+ scheduling the region.
+
+ * sched-ebb.c (earliest_block_with_similiar_load): Update to use
+ new interfaces.
+ (add_deps_for_risky_insns): Ditto.
+ (schedule_ebb): Remove separate computation of forward dependencies.
+ Free dependencies at the end of scheduling the ebb.
+
+ * ddg.c (create_ddg_dependence): Update to use new interfaces.
+ (build_intra_loop_deps): Ditto. Remove separate computation of forward
+ dependencies. Free sched-deps dependencies.
+
+ * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Update
+ to use new interfaces.
+ (ia64_dfa_new_cycle, ia64_gen_check): Ditto.
+
+ * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Update to use
+ new interfaces.
+ (is_costly_group): Ditto.
+
+2007-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * alias.c (rtx_equal_for_memref_p): Constify.
+ * basic-block.h (const_edge, const_basic_block): New.
+ (reg_set_to_hard_reg_set, dfs_enumerate_from, single_succ_p,
+ single_pred_p, single_succ_edge, single_pred_edge, single_succ,
+ single_pred, maybe_hot_bb_p, probably_cold_bb_p,
+ probably_never_executed_bb_p, edge_probability_reliable_p,
+ br_prob_note_reliable_p, forwarder_block_p, flow_nodes_print,
+ inside_basic_block_p, control_flow_insn_p, dominated_by_p):
+ Likewise.
+ * bb-reorder.c (better_edge_p, push_to_next_round_p): Likewise.
+ * bt-load.c (basic_block_freq, insn_sets_btr_p, can_move_up):
+ Likewise.
+ * cfganal.c (flow_active_insn_p, forwarder_block_p,
+ flow_nodes_print, dfs_enumerate_from): Likewise.
+ * cfgbuild.c (count_basic_blocks, inside_basic_block_p,
+ control_flow_insn_p, count_basic_blocks): Likewise.
+ * cfgloop.c (flow_bb_inside_loop_p, glb_enum_p,
+ get_loop_body_with_size, loop_exit_edge_p): Likewise.
+ * cfgloop.h (flow_bb_inside_loop_p, num_loop_insns,
+ average_num_loop_insns, loop_exit_edge_p,
+ just_once_each_iteration_p, can_duplicate_loop_p): Likewise.
+ * cfgloopanal.c (just_once_each_iteration_p, num_loop_insns,
+ average_num_loop_insns, seq_cost): Likewise.
+ * cfgloopmanip.c (rpe_enum_p, can_duplicate_loop_p): Likewise.
+ * dominance.c (dominated_by_p): Likewise.
+ * emit-rtl.c (validate_subreg): Likewise.
+ * except.c (can_throw_internal, can_throw_external): Likewise.
+ * except.h (can_throw_internal, can_throw_external): Likewise.
+ * gcse.c (gcse_constant_p, oprs_unchanged_p, oprs_anticipatable_p,
+ oprs_available_p, hash_expr, expr_equiv_p, oprs_not_set_p,
+ compute_transp, load_killed_in_block_p, reg_killed_on_edge,
+ simple_mem, store_ops_ok, load_kills_store, find_loads,
+ store_killed_in_insn, store_killed_after, store_killed_before,
+ gcse_mem_operand, implicit_set_cond_p, store_killed_in_pat):
+ Likewise.
+ * ifcvt.c (count_bb_insns, cheap_bb_rtx_cost_p, noce_operand_ok,
+ noce_mem_write_may_trap_or_fault_p): Likewise.
+ * pointer-set.c (pointer_set_contains, pointer_map_contains):
+ Likewise.
+ * pointer-set.h (pointer_set_contains, pointer_map_contains):
+ Likewise.
+ * predict.c (can_predict_insn_p, maybe_hot_bb_p,
+ probably_cold_bb_p, probably_never_executed_bb_p,
+ edge_probability_reliable_p, br_prob_note_reliable_p,
+ can_predict_insn_p): Likewise.
+ * regclass.c (reg_set_to_hard_reg_set): Likewise.
+ * resource.c (return_insn_p): Likewise.
+ * rtl.h (reg_set_between_p, reg_set_p, validate_subreg):
+ Likewise.
+ * rtlanal.c (reg_set_between_p, reg_set_p): Likewise.
+ * tracer.c (count_insns, ignore_bb_p, better_p): Likewise.
+ * tree-cfg.c (verify_gimple_unary_expr, verify_gimple_binary_expr,
+ verify_gimple_modify_stmt): Likewise.
+ * tree-chrec.c (is_not_constant_evolution,
+ is_multivariate_chrec_rec, is_multivariate_chrec,
+ chrec_contains_symbols, chrec_contains_undetermined,
+ tree_contains_chrecs, evolution_function_is_affine_multivariate_p,
+ evolution_function_is_univariate_p, avoid_arithmetics_in_type_p,
+ eq_evolutions_p, scev_direction): Likewise.
+ * tree-chrec.h (automatically_generated_chrec_p, tree_is_chrec,
+ eq_evolutions_p, is_multivariate_chrec, chrec_contains_symbols,
+ chrec_contains_symbols_defined_in_loop,
+ chrec_contains_undetermined, tree_contains_chrecs,
+ evolution_function_is_affine_multivariate_p,
+ evolution_function_is_univariate_p, chrec_zerop,
+ evolution_function_is_constant_p, evolution_function_is_affine_p,
+ evolution_function_is_affine_or_constant_p,
+ tree_does_not_contain_chrecs, chrec_type): Likewise.
+ * tree-data-ref.c (tree_fold_divides_p,
+ object_address_invariant_in_loop_p, dr_may_alias_p,
+ ziv_subscript_p, siv_subscript_p, gcd_of_steps_may_divide_p,
+ same_access_functions, constant_access_functions,
+ access_functions_are_affine_or_constant_p, find_vertex_for_stmt):
+ Likewise.
+ * tree-flow.h (scev_direction): Likewise.
+ * tree-gimple.c (is_gimple_stmt): Likewise.
+ * tree-outof-ssa.c (identical_copies_p, identical_stmt_lists_p):
+ Likewise.
+ * tree-pretty-print.c (op_prio): Likewise.
+ * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop,
+ analyzable_condition, backedge_phi_arg_p): Likewise.
+ * tree-scalar-evolution.h (get_chrec_loop): Likewise.
+ * tree-ssa-operands.c (get_name_decl, operand_build_cmp): Likewise.
+ * tree-ssa-threadupdate.c (dbds_continue_enumeration_p):
+ Likewise.
+
+2007-08-13 Dan Hipschman <dsh@google.com>
+
+ PR c/32953
+ * c-format.c (check_format_arg): Move check for zero-length
+ format strings below the check for unterminated strings.
+
+2007-08-13 Andrew Pinski <pinskia@gmail.com>
+
+ PR C/30427
+ * c-typeck.c (build_unary_op <case BIT_NOT_EXPR>): Reject vector float
+ types.
+
+2007-08-13 Nick Clifton <nickc@redhat.com>
+
+ * config/arm/arm_neon.h: Revert GPLv3 patch to this file.
+
+2007-08-12 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/32860
+ * c-format.c (gcc_gfc_length_specs): New array.
+ (gcc_gfc_char_table): Add unsigned specifier, and references to
+ the l length modifier.
+ (format_types_orig): Use the new gcc_gfc_length_specs.
+
+2007-08-12 Sa Liu <saliu@de.ibm.com>
+
+ * emit-rtl.c (try_split): Relink the insns with REG_LIBCALL note
+ and with REG_RETVAL note after split.
+
+2007-08-11 David Daney <ddaney@avtrex.com>
+
+ * config/mips/mips.c (mips_sched_reorder): Mark cycle parameter
+ as ATTRIBUTE_UNUSED.
+
2007-08-11 David Edelsohn <edelsohn@gnu.org>
Segher Boessenkool <segher@kernel.crashing.org>
* config/mips/mips.md: Update after above changes.
2007-08-08 Vladimir Yanovsky <yanov@il.ibm.com>
- Revital Eres <eres@il.ibm.com>
+ Revital Eres <eres@il.ibm.com>
* ddg.c (print_ddg): Add dump information.
* modulo-sched.c (print_node_sched_params): Add parameter and
2007-08-08 Samuel Thibault <samuel.thibault@ens-lyon.org>
- * gcc/config/i386/gnu.h (STARTFILE_SPEC): Use gcrt0.o in profile mode, add
+ * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt0.o in profile mode, add
-profile option, add pie support.
(ENDFILE_SPEC): New spec.
- * gcc/config/gnu.h (LIB_SPEC): Add -profile option.
+ * config/gnu.h (LIB_SPEC): Add -profile option.
2007-08-08 Samuel Thibault <samuel.thibault@ens-lyon.org>
- * gcc/config/i386/gnu.h (CPP_SPEC): Add -pthread option.
- * gcc/config/gnu.h (LIB_SPEC): Likewise.
+ * config/i386/gnu.h (CPP_SPEC): Add -pthread option.
+ * config/gnu.h (LIB_SPEC): Likewise.
2007-08-07 Yaz Saito <saito@google.com>
Ian Lance Taylor <iant@google.com>
2007-07-29 Mark Mitchell <mark@codesourcery.com>
- gcc/
* config/m68k/lb1sf68.asm (FUNC): New macro.
(__mulsi3): Use it.
(__udivsi3): Likewise.
2007-07-04 Rask Ingemann Lambertsen <rask@sygehus.dk>
- * config/gcc/v850/v850.c (expand_prologue): Make sure
+ * config/v850/v850.c (expand_prologue): Make sure
GEN_INT() argument is sign extended rather than zero extended.
(expand_epilogue): Likewise.
(output_move_double): Delete.
- * config/gcc/v850/v850-protos.h (output_move_double): Delete.
- * config/gcc/v850/v850.md (movdi): Delete.
+ * config/v850/v850-protos.h (output_move_double): Delete.
+ * config/v850/v850.md (movdi): Delete.
(*movdi_internal): Delete.
(movdf): Delete.
(*movdf_internal): Delete.
(scan_function): Likewise.
(analyze_function): Likewise.
(static_execute): Likewise.
- * gcc/ipa-reference.c (scan_for_static_refs): Likewise.
+ * ipa-reference.c (scan_for_static_refs): Likewise.
(merge_callee_local_info): Likewise.
(analyze_function): Use type safe memory macros.
(static_execute): Likewise. Cast according to the coding conventions.
2007-06-11 Rafael Avila de Espindola <espindola@google.com>
- * gcc/tree.c (signed_or_unsigned_type_for): New.
+ * tree.c (signed_or_unsigned_type_for): New.
(unsigned_type_for): Use signed_or_unsigned_type_for.
(signed_type_for): Use signed_or_unsigned_type_for.
- * gcc/tree.h (signed_or_unsigned_type_for): New.
+ * tree.h (signed_or_unsigned_type_for): New.
(get_signed_or_unsigned_type): Remove.
- * gcc/fold-const.c (fold_negate_expr): Use signed_type_for instead of
+ * fold-const.c (fold_negate_expr): Use signed_type_for instead of
lang_hooks.types.signed_type
(size_diffop): Likewise.
(all_ones_mask_p): Likewise.
(fold_ternary): Likewise.
(operand_equal_for_comparison_p): Use signed_or_unsigned_type_for
instead of get_signed_or_unsigned_type.
- * gcc/c-objc-common.h (LANG_HOOKS_SIGNED_TYPE): Remove.
+ * c-objc-common.h (LANG_HOOKS_SIGNED_TYPE): Remove.
(LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
- * gcc/expr.c (signed_or_unsigned_type_for): Use
+ * expr.c (signed_or_unsigned_type_for): Use
signed_or_unsigned_type_for instead of get_signed_or_unsigned_type.
- * gcc/langhooks.c (get_signed_or_unsigned_type): Remove.
+ * langhooks.c (get_signed_or_unsigned_type): Remove.
(lhd_signed_or_unsigned_type): Remove.
- * gcc/langhooks.h (lang_hooks_for_types): Remove signed_type and
+ * langhooks.h (lang_hooks_for_types): Remove signed_type and
signed_or_unsigned_type.
(lhd_signed_or_unsigned_type): Remove.
- * gcc/expmed.c (make_tree): Use signed_type_for instead of
+ * expmed.c (make_tree): Use signed_type_for instead of
lang_hooks.types.signed_type.
- * gcc/c-common.c (same_scalar_type_ignoring_signedness): Use
+ * c-common.c (same_scalar_type_ignoring_signedness): Use
c_common_signed_type instead of lang_hooks.types.signed_type.
(c_common_unsigned_type): New.
(c_common_signed_type): Just call c_common_signed_or_unsigned_type.
c_common_signed_or_unsigned_type.
(c_common_nodes_and_builtins): Use c_common_unsigned_type instead of
unsigned_type_for.
- * gcc/convert.c (convert_to_integer): Use signed_type_for instead of
+ * convert.c (convert_to_integer): Use signed_type_for instead of
lang_hooks.types.signed_type.
- * gcc/langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
+ * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
(LANG_HOOK_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_SIGNED_TYPE and
LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE.
- * gcc/c-format.c (check_format_types): Use c_common_unsigned_type
+ * c-format.c (check_format_types): Use c_common_unsigned_type
instead of unsigned_type_for.
- * gcc/c-decl.c (groakdeclarator): Likewise.
- * gcc/c-typeck.c (convert_for_assignment): Likewise.
- * gcc/c-common.h (c_common_unsigned_type): New.
+ * c-decl.c (groakdeclarator): Likewise.
+ * c-typeck.c (convert_for_assignment): Likewise.
+ * c-common.h (c_common_unsigned_type): New.
2007-06-11 Uros Bizjak <ubizjak@gmail.com>
2007-06-04 Uros Bizjak <ubizjak@gmail.com>
PR c/32191
- * gcc/c-common.c (c_define_builtins): Call targetm.init_builtins ()
+ * c-common.c (c_define_builtins): Call targetm.init_builtins ()
before build_common_builtin_nodes ().
2007-06-04 Steve Ellcey <sje@cup.hp.com>