+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/rs6000/rs6000.h (CC1_CPU_SPEC): Define as empty string if
+ HAVE_LOCAL_CPU_DETECT not defined.
+
+2007-08-11 Jan Hubicka <jh@suse.cz>
+
+ * cgraphunit.c (record_cdtor_fn): Declare all cdtors always inlined.
+ (cgraph_process_new_functions): Honor previous value of
+ disregard_inline_limits.
+ * ipa-inline.c (compute_inline_parameters): Likewise.
+
+2007-08-11 Ian Lance Taylor <iant@google.com>
+
+ * alias.h (alias_set_type): Define new type.
+ (ALIAS_SET_MEMORY_BARRIER): Use it.
+ * rtl.h: Include alias.h.
+ (struct mem_attrs): Use alias_set_type.
+ * tree.h: Include alias.h
+ (struct tree_type): Use alias_set_type.
+ (struct tree_struct_field_tag): Likewise.
+ (struct tree_decl_common): Likewise.
+ * alias.c (struct alias_set_entry): Use alias_set_type.
+ (get_alias_set_entry, alias_set_subset_of): Likewise.
+ (alias_sets_conflict_p): Likewise.
+ (alias_sets_must_conflict_p): Likewise.
+ (objects_must_conflict_p): Likewise.
+ (get_alias_set, new_alias_set): Likewise.
+ (record_alias_subset, record_component_aliases): Likewise.
+ (varargs_set, frame_set): Change to alias_set_type.
+ (get_varargs_alias_set): Use alias_set_type.
+ (get_frame_alias_set): Likewise.
+ * builtins.c (setjmp_alias_set): Change to alias_set_type.
+ * dse.c (struct store_info): Use alias_set_type.
+ (struct read_info, struct clear_alias_mode_holder): Likewise.
+ (clear_alias_set_lookup, canon_address): Likewise.
+ (record_store, check_mem_read_rtx): Likewise.
+ (dse_record_singleton_alias_set): Likewise.
+ (dse_invalidate_singleton_alias_set): Likewise.
+ * emit-rtl.c (get_mem_attrs): Likewise.
+ (set_mem_attributes_minus_bitpos): Likewise.
+ (set_mem_alias_set): Likewise.
+ * expr.c (store_constructor_field, store_field): Likewise.
+ * gimplify.c (struct gimplify_init_ctor_preeval_data): Likewise.
+ * langhooks.c (lhd_get_alias_set): Likewise.
+ * langhooks-def.h (lhd_get_alias_set): Likewise.
+ * reload1.c (alter_reg): Likewise.
+ * tree-flow.h (struct fieldoff): Likewise.
+ * tree-ssa-alias.c (struct alias_map_d): Likewise.
+ (may_alias_p, get_smt_for, create_sft): Likewise.
+ * tree-ssa-alias-warnings.c (nonstandard_alias_types_p): Likewise.
+ * tree-ssa-structalias.c (set_uids_in_ptset): Likewise.
+ (merge_smts_into): Likewise.
+ * varasm.c (const_alias_set): Likewise.
+ * c-common.c (strict_aliasing_warning): Likewise.
+ (c_common_get_alias_set): Likewise.
+ * dse.h (dse_record_singleton_alias_set): Update declaration.
+ (dse_invalidate_singleton_alias_set): Likewise.
+ * emit-rtl.h (set_mem_alias_set): Likewise.
+ * c-common.h (c_common_get_alias_set): Likewise.
+ * print-rtl.c (print_rtx): Cast MEM_ALIAS_SET when printing it.
+ * print-tree.c (print_node): Likewise.
+ * config/alpha/alpha.c (alpha_sr_alias_set): Change to
+ alias_set_type.
+ (alpha_setup_incoming_varargs): Use alias_set_type.
+ * config/i386/i386.c (setup_incoming_varargs_64): Use
+ alias_set_type.
+ (setup_incoming_varargs_ms_64): Likewise.
+ (ix86_GOT_alias_set): Likewise.
+ * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
+ * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
+ (set): Change to alias_set_type.
+ (get_TOC_alias_set): Use alias_set_type.
+ * config/rs6000/rs6000-protos.h (get_TOC_alias_set): Update
+ declaration.
+ * config/sh/sh.c (sh_builtin_saveregs): Use alias_set_type.
+ * config/sparc/sparc.c (sparc_sr_alias_set): Change to
+ alias_set_type.
+ (struct_value_alias_set): Likewise.
+ * Makefile.in (GTFILES): Add $(srcdir)/alias.h.
+
+2007-08-11 Richard Sandiford <richard@codesourcery.com>
+
+ * config/vxworks-dummy.h (TARGET_VXWORKS): Define.
+ * config/vxworks.h (TARGET_VXWORKS): Override.
+ * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Don't define
+ "mips" if TARGET_VXWORKS.
+
+2007-08-11 Richard Sandiford <richard@codesourcery.com>
+
+ * calls.c (avoid_likely_spilled_reg): New function.
+ (expand_call): Use it.
+
+2007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * c-typeck.c (build_c_cast): Add OPT_Wcast_qual to warnings.
+
+2007-08-10 Adam Nemet <anemet@caviumnetworks.com>
+
+ * config/mips/predicates.md (const_call_insn_operand): Invoke
+ SYMBOL_REF_LONG_CALL_P only on SYMBOL_REFs.
+
+2007-08-10 David Edelsohn <edelsohn@gnu.org>
+
+ PR target/33042
+ * config/rs6000/driver-rs6000.c: Include link.h.
+ Use ElfW instead of wordsize-specif typedef.
+
+2007-08-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * system.h (CONST_CAST): New.
+ * c-decl.c (c_make_fname_decl): Use it.
+ * c-lex.c (cb_ident, lex_string): Likewise.
+ * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
+ * gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1,
+ give_switch, set_multilib_dir): Likewise.
+ * gengtype-parse.c (string_seq, typedef_name): Likewise.
+ * passes.c (execute_one_pass): Likewise.
+ * prefix.c (update_path): Likewise.
+ * pretty-print.c (pp_base_destroy_prefix): Likewise.
+ * tree.c (build_string): Likewise.
+
+2007-08-10 Aldy Hernandez <aldyh@redhat.com>
+
+ * tree-flow-inline.h (is_exec_stmt): Remove.
+ (is_label_stmt): Remove.
+ * tree-flow.h: Remove prototypes for is_exec_stmt, get_filename, and
+ is_label_stmt.
+
+2007-08-10 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * lower-subreg.c (resolve_shift_zext): Don't adjust
+ src_reg_num for wordmode operands.
+
+2007-08-10 Sandra Loosemore <sandra@codesourcery.com>
+ David Ung <davidu@mips.com>
+
+ * config/mips/mips.c (TARGET_SCHED_INIT): Define.
+ (TARGET_SCHED_REORDER2): Define.
+ (mips_maybe_swap_ready): New.
+ (mips_last_74k_agen_insn): New.
+ (mips_74k_agen_init): New.
+ (mips_74k_agen_reorder): New function to group loads and stores
+ in the ready queue.
+ (mips_sched_init): New.
+ (mips_sched_reorder): Don't do initialization here. Call
+ mips_74k_agen_reorder.
+ (mips_variable_issue): Call mips_74k_agen_init.
+
+2007-08-10 Aldy Hernandez <aldyh@redhat.com>
+
+ * tree-flow-inline.h (get_filename): Remove.
+
+2007-08-10 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips-protos.h (mips_address_insns): Add a boolean
+ argument.
+ (mips_fetch_insns): Delete in favor of...
+ (mips_load_store_insns): ...this new function.
+ * config/mips/mips.c (mips_address_insns): Add a boolean argument
+ to say whether multiword moves _might_ be split.
+ (mips_fetch_insns): Delete in favor of...
+ (mips_load_store_insns): ...this new function.
+ (mips_rtx_costs): Update the call to mips_address_insns.
+ (mips_address_cost): Likewise.
+ * config/mips/mips.md (length): Use mips_load_store_insns instead
+ of mips_fetch_insns.
+ * config/mips/constraints.md (R): Use mips_address_insns rather
+ than mips_fetch_insns. Assume that the move never needs to be split.
+
+2007-08-09 Sandra Loosemore <sandra@codesourcery.com>
+
+ * config/mips/mips.opt (mhard-float, msoft-float): Make these
+ control TARGET_HARD_FLOAT_ABI and TARGET_SOFT_FLOAT_ABI, rather
+ than TARGET_HARD_FLOAT and TARGET_SOFT_FLOAT.
+ * config/mips/mips.h (mips16_hard_float): Delete.
+ (TARGET_HARD_FLOAT_ABI, TARGET_SOFT_FLOAT_ABI): Delete these
+ definitions, and replace with....
+ (TARGET_HARD_FLOAT, TARGET_SOFT_FLOAT): Define.
+ * config/mips/mips.c (mips16_hard_float): Delete. Replace
+ all references with (TARGET_MIPS16 && TARGET_HARD_FLOAT_ABI).
+ (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Update comments.
+ (override_options): Replace MASK_SOFT_FLOAT references with
+ MASK_SOFT_FLOAT_ABI. Delete twiddling with MASK_SOFT_FLOAT
+ and mips16_hard_float when TARGET_MIPS16.
+
+2007-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR c/32796
+ * c-typeck.c (build_binary_op): Check for non pointer types before
+ calling int_fits_type_p.
+
+2007-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR middle-end/32813
+ * fold-const.c (omit_one_operand): Return only the ommitted expression
+ if the result is an empty statement.
+ (pedantic_omit_one_operand): Likewise.
+
+2007-08-09 Daniel Berlin <dberlin@dberlin.org>
+
+ * c-typeck.c (readonly_error): Improve error for assignment.
+
+ * c-pretty-print.c (pp_c_additive_expression): Handle pointer-plus
+ expression.
+ (pp_c_expression): Ditto.
+
+2007-08-09 Simon Baldwin <simonb@google.com>
+
+ * simplify-rtx.c (simplify_binary_operation_1): Removed erroneous
+ break that was preventing simplify_associative_operation() for xor.
+
+2007-08-09 Sandra Loosemore <sandra@codesourcery.com>
+ Nigel Stephens <nigel@mips.com>
+
+ * doc/tm.texi (CLZ_DEFINED_VALUE_AT_ZERO, CTZ_DEFINED_VALUE_AT_ZERO):
+ Document change in interpretation of value from boolean to
+ tri-state integer.
+ * optabs.c (expand_ffs, expand_ctz): New functions to compute
+ ffs and ctz using clz.
+ (expand_unop): Call them.
+ * config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix its
+ result value.
+ (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
+ * config/mips/mips.h (CLZ_DEFINED_VALUE_AT_ZERO): Likewise, to
+ enable the new ffs expansion on this target.
+
+2007-08-09 Jan Hubicka <jh@suse.cz>
+
+ * optabs.c (expand_widen_pattern_expr): Use optabs accestors.
+ (expand_ternary_op): Likewise.
+ (expand_vec_shift_expr): Likewise.
+ (expand_binop_directly): Likewise.
+ (expand_binop): Likewise.
+ (sign_expand_binop): Likewise.
+ (expand_twoval_unop): Likewise.
+ (expand_twoval_binop): Likewise.
+ (expand_twoval_binop_libfunc): Likewise.
+ (widen_clz): Likewise.
+ (widen_bswap): Likewise.
+ (expand_parity): Likewise.
+ (expand_unop): Likewise.
+ (expand_abs_nojump): Likewise.
+ (expand_copysign): Likewise.
+ (emit_no_conflict_block): Likewise.
+ (emit_libcall_block): Likewise.
+ (can_compare_p): Likewise.
+ (prepare_cmp_insn): Likewise.
+ (emit_cmp_and_jump_insn_1): Likewise.
+ (prepare_float_lib_cmp): Likewise.
+ (emit_conditional_add): Likewise.
+ (gen_add2_insn): Likewise.
+ (have_add2_insn): Likewise.
+ (gen_sub2_insn): Likewise.
+ (have_sub2_insn): Likewise.
+ (can_extend_p): Likewise.
+ (can_fix_p): Likewise.
+ (can_float_p): Likewise.
+ (expand_float): Likewise.
+ (expand_fix): Likewise.
+ (expand_sfix_optab): Likewise.
+ (new_optab): Likewise.
+ (new_convert_optab): Likewise.
+ (init_libfuncs): Likewise.
+ (init_interclass_conv_libfuncs): Likewise.
+ (init_intraclass_conv_libfuncs): Likewise.
+ (set_conv_libfunc): Likewise.
+ (init_optabs): Likewise.
+ (debug_optab_libfuncs): Likewise.
+ (gen_cond_trap): Likewise.
+ * optabs.h (optab_handler, convert_optab_hanlder): New.
+ * genopinit.c: Update optabs generation table.
+ * reload.c (find_reloads_address_1): Use optabs accestors.
+ * builtins.c (expand_builtin_mathfn): Likewise.
+ (expand_builtin_mathfn_2): Likewise.
+ (expand_builtin_mathfn_3): Likewise.
+ (expand_builtin_interclass_mathfn): Likewise.
+ (expand_builtin_sincos): Likewise.
+ (expand_builtin_cexpi): Likewise.
+ (expand_builtin_powi): Likewise.
+ (expand_builtin_strlen): Likewise.
+ * dojump.c (do_jump): Likewise.
+ * expr.c (convert_move): Likewise.
+ (move_by_pieces): Likewise.
+ (move_by_pieces_ninsns): Likewise.
+ (can_store_by_pieces): Likewise.
+ (store_by_pieces_1): Likewise.
+ (emit_move_via_integer): Likewise.
+ (emit_move_complex): Likewise.
+ (emit_move_ccmode): Likewise.
+ (emit_move_insn_1): Likewise.
+ (emit_single_push_insn): Likewise.
+ (store_constructor): Likewise.
+ (expand_expr_real_1): Likewise.
+ (do_store_flag): Likewise.
+ * ada/misc.c (gnat_compute_largest_alignment): Likewise.
+ (enumerate_modes): Likewise.
+ * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
+ (supportable_widening_operation): Likewise.
+ (supportable_narrowing_operation): Likewise.
+ * expmed.c (store_bit_field_1): Likewise.
+ (extract_bit_field_1): Likewise.
+ (expand_mult_highpart_optab): Likewise.
+ (expand_smod_pow2): Likewise.
+ (expand_divmod): Likewise.
+ (emit_store_flag): Likewise.
+ * tree-vect-patterns.c
+ (vect_pattern_recog_1): Likewise.
+ * tree-ssa-loop-prefetch.c
+ (nontemporal_store_p): Likewise.
+ * tree-vect-transform.c (vect_model_reduction_cost): Likewise.
+ (vect_create_epilog_for_reduction): Likewise.
+ (vectorizable_reduction): Likewise.
+ (vectorizable_operation): Likewise.
+ (vect_strided_store_supported): Likewise.
+ (vectorizable_store): Likewise.
+ (vect_strided_load_supported): Likewise.
+ (vectorizable_load): Likewise.
+ * combine.c (simplify_comparison): Likewise.
+ * tree-vect-generic.c
+ (type_for_widest_vector_mode): Likewise.
+ (expand_vector_operations_1): Likewise.
+ * config/spu/spu.c (spu_expand_mov): Likewise.
+ (spu_emit_vector_compare): Likewise.
+ * config/rs6000/rs6000.c
+ (rs6000_emit_vector_compare): Likewise.
+ * stmt.c (add_case_node): Likewise.
+ * reload1.c (gen_reload):
+
+2007-08-09 Michael Matz <matz@suse.de>
+
+ * tree.h (fixed_zerop): Declare as taking a const_tree.
+ * tree.c (fixed_zerop): Take a const_tree.
+
+2007-08-09 Ira Rosen <irar@il.ibm.com>
+
+ * tree-vect-transform.c (vectorizable_store): Remove call to
+ copy_virtual_operands() and call mark_symbols_for_renaming() for
+ the created vector store.
+ (vect_setup_realignment): Don't call copy_virtual_operands() and
+ update_vuses_to_preheader().
+ (vectorizable_load): Don't call copy_virtual_operands().
+ (update_vuses_to_preheader): Remove.
+
+2007-08-08 Chao-ying Fu <fu@mips.com>
+
+ * tree.def (FIXED_POINT_TYPE): New type.
+ (FIXED_CST): New constant.
+ (FIXED_CONVERT_EXPR): New expr.
+ * doc/c-tree.texi (Types): Document FIXED_POINT_TYPE.
+ (Expressions): Document FIXED_CST and FIXED_CONVERT_EXPR.
+ * tree.h (struct tree_base): Add saturating_flag.
+ Remove one bit of spare for saturating_flag.
+ (NUMERICAL_TYPE_CHECK): Support FIXED_POINT_TYPE.
+ (NON_SAT_FIXED_POINT_TYPE_P, SAT_FIXED_POINT_TYPE_P,
+ FIXED_POINT_TYPE_P): Define.
+ (TYPE_SATURATING): Define.
+ (TREE_FIXED_CST_PTR, TREE_FIXED_CST): Define.
+ (struct tree_fixed_cst): New.
+ (TYPE_IBIT, TYPE_FBIT): Define.
+ (tree_node): Add fixed_cst.
+ (enum tree_index): Add new enumeration values of
+ TI_SAT_SFRACT_TYPE, TI_SAT_FRACT_TYPE, TI_SAT_LFRACT_TYPE,
+ TI_SAT_LLFRACT_TYPE, TI_SAT_USFRACT_TYPE, TI_SAT_UFRACT_TYPE,
+ TI_SAT_ULFRACT_TYPE, TI_SAT_ULLFRACT_TYPE, TI_SFRACT_TYPE,
+ TI_FRACT_TYPE, TI_LFRACT_TYPE, TI_LLFRACT_TYPE, TI_USFRACT_TYPE,
+ TI_UFRACT_TYPE, TI_ULFRACT_TYPE, TI_ULLFRACT_TYPE,
+ TI_SAT_SACCUM_TYPE, TI_SAT_ACCUM_TYPE, TI_SAT_LACCUM_TYPE,
+ TI_SAT_LLACCUM_TYPE, TI_SAT_USACCUM_TYPE, TI_SAT_UACCUM_TYPE,
+ TI_SAT_ULACCUM_TYPE, TI_SAT_ULLACCUM_TYPE, TI_SACCUM_TYPE,
+ TI_ACCUM_TYPE, TI_LACCUM_TYPE, TI_LLACCUM_TYPE, TI_USACCUM_TYPE,
+ TI_UACCUM_TYPE, TI_ULACCUM_TYPE, TI_ULLACCUM_TYPE,
+ TI_QQ_TYPE, TI_HQ_TYPE,_TYPE, TI_SQ_TYPE, TI_DQ_TYPE, TI_TQ_TYPE,
+ TI_UQQ_TYPE, TI_UHQ_TYPE, TI_USQ_TYPE, TI_UDQ_TYPE, TI_UTQ_TYPE,
+ TI_SAT_QQ_TYPE, TI_SAT_HQ_TYPE, TI_SAT_SQ_TYPE, TI_SAT_DQ_TYPE,
+ TI_SAT_TQ_TYPE, TI_SAT_UQQ_TYPE, TI_SAT_UHQ_TYPE, TI_SAT_USQ_TYPE,
+ TI_SAT_UDQ_TYPE, TI_SAT_UTQ_TYPE, TI_HA_TYPE, TI_SA_TYPE, TI_DA_TYPE,
+ TI_TA_TYPE, TI_UHA_TYPE, TI_USA_TYPE, TI_UDA_TYPE, TI_UTA_TYPE,
+ TI_SAT_HA_TYPE, TI_SAT_SA_TYPE, TI_SAT_DA_TYPE, TI_SAT_TA_TYPE,
+ TI_SAT_UHA_TYPE, TI_SAT_USA_TYPE, TI_SAT_UDA_TYPE, TI_SAT_UTA_TYPE.
+ (sat_short_fract_type_node, sat_fract_type_node,
+ sat_long_fract_type_node, sat_long_long_fract_type_node,
+ sat_unsigned_short_fract_type_node, sat_unsigned_fract_type_node,
+ sat_unsigned_long_fract_type_node,
+ sat_unsigned_long_long_fract_type_node, short_fract_type_node,
+ fract_type_node, long_fract_type_node, long_long_fract_type_node,
+ unsigned_short_fract_type_node, unsigned_fract_type_node,
+ unsigned_long_fract_type_node, unsigned_long_long_fract_type_node,
+ sat_short_accum_type_node, sat_accum_type_node,
+ sat_long_accum_type_node, sat_long_long_accum_type_node,
+ sat_unsigned_short_accum_type_node, sat_unsigned_accum_type_node,
+ sat_unsigned_long_accum_type_node,
+ sat_unsigned_long_long_accum_type_node, short_accum_type_node,
+ accum_type_node, long_accum_type_node, long_long_accum_type_node,
+ unsigned_short_accum_type_node, unsigned_accum_type_node,
+ unsigned_long_accum_type_node, unsigned_long_long_accum_type_node,
+ qq_type_node, hq_type_node, sq_type_node, dq_type_node, tq_type_node,
+ uqq_type_node, uhq_type_node, usq_type_node, udq_type_node,
+ utq_type_node, sat_qq_type_node, sat_hq_type_node, sat_sq_type_node,
+ sat_dq_type_node, sat_tq_type_node, sat_uqq_type_node,
+ sat_uhq_type_node, sat_usq_type_node, sat_udq_type_node,
+ sat_utq_type_node, ha_type_node, sa_type_node, da_type_node,
+ ta_type_node, uha_type_node, usa_type_node, uda_type_node,
+ uta_type_node, sat_ha_type_node, sat_sa_type_node, sat_da_type_node,
+ sat_ta_type_node, sat_uha_type_node, sat_usa_type_node,
+ sat_uda_type_node, sat_uta_type_node): New macro.
+ (make_fract_type, make_accum_type): Declare.
+ (make_signed_fract_type, make_unsigned_fract_type,
+ make_sat_signed_fract_type, make_sat_unsigned_fract_type,
+ make_signed_accum_type, make_unsigned_accum_type,
+ make_sat_signed_accum_type, make_sat_unsigned_accum_type,
+ make_or_reuse_signed_fract_type, make_or_reuse_unsigned_fract_type,
+ make_or_reuse_sat_signed_fract_type,
+ make_or_reuse_sat_unsigned_fract_type, make_or_reuse_signed_accum_type,
+ make_or_reuse_unsigned_accum_type, make_or_reuse_sat_signed_accum_type,
+ make_or_reuse_sat_unsigned_accum_type): New macro.
+ (fixed_zerop): Declare.
+ * defaults.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE,
+ LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
+ SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
+ LONG_LONG_ACCUM_TYPE_SIZE): Define.
+ * treestruct.def: Add TS_FIXED_CST.
+ * Makefile.in (c-pretty-print.o): Add dependence on fixed-value.h.
+ (tree.o): Likewise.
+ (tree-dump.o): Likewise.
+ (print-tree.o): Likewise.
+ (tree-pretty-print.o): Likewise.
+ (fold-const.o): Likewise.
+ * tree-complex.c (some_nonzerop): Handle FIXED_CST.
+ * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle FIXED_CST.
+ (is_gimple_min_invariant): Handle FIXED_CST.
+ * stor-layout.c (int_mode_for_mode): Handle MODE_FRACT, MODE_UFRACT,
+ MODE_ACCUM, MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
+ MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
+ (layout_type): Handle FIXED_POINT_TYPE.
+ (make_fract_type, make_accum_type): New functions.
+ * tree-browser.c (browse_tree): Handle FIXED_POINT_TYPE.
+ * tree-dump.c (fixed-value.h): New include.
+ (dump_fixed): New function.
+ (dequeue_and_dump): Handle FIXED_POINT_TYPE and FIXED_CST.
+ * tree-inline.c (remap_type_1): Handle FIXED_POINT_TYPE.
+ (estimate_num_insns_1): Handle FIXED_CST and FIXED_CONVERT_EXPR.
+ * tree-pretty-print.c (fixed-value.h): New include.
+ (dump_generic_node): Handle FIXED_POINT_TYPE, FIXED_CST, and
+ FIXED_CONVERT_EXPR.
+ * tree-scalar-evolution.c (get_scalar_evolution): Handle FIXED_CST.
+ * tree-ssa-loop-im.c (for_each_index): Handle FIXED_CST.
+ * tree-ssa-pre.c (poolify_tree): Handle FIXED_CST.
+ * tree-ssa-reassoc.c (break_up_subtract_bb): We can do reassociation
+ for non-saturating fixed-point types.
+ (reassociate_bb): Likewise.
+ * emit-rtl.c (fixed-value.h): New include.
+ (fconst0, fconst1): New array.
+ (init_emit_once): Initialize fconst0 and fconst1 for fixed-point modes.
+ * tree-vect-generic.c expand_vector_operation): Support
+ MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, and
+ MODE_VECTOR_UACCUM.
+ (type_for_widest_vector_mode): Add one parameter for the
+ saturating flag.
+ Check scalar FRACT, UFRACT, ACCUM, and UACCUM mode to select their
+ vector mode.
+ Pass the satp parameter to type_for_mode for fixed-point types.
+ (expand_vector_operations_1): Pass the saturating flag to
+ type_for_widest_vector_mode.
+ Support MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
+ and MODE_VECTOR_UACCUM.
+ * tree-vect-transform.c (vect_is_simple_cond): Support FIXED_CST.
+ (vectorizable_condition): Likewise.
+ * tree.c (fixed-value.h): New include.
+ (tree_code_size): Support FIXED_CST.
+ (build_fixed): New function.
+ (build_one_cst): Support FIXED_POINT_TYPE for accum types.
+ (fixed_zerop): New function.
+ (tree_node_structure): Support FIXED_CST.
+ (type_contains_placeholder_1): Support FIXED_POINT_TYPE.
+ (build_type_attribute_qual_variant): Handle FIXED_POINT_TYPE.
+ (type_hash_eq): Handle FIXED_POINT_TYPE.
+ (simple_cst_equal): Support FIXED_CST.
+ (iterative_hash_expr): Handle FIXED_CST.
+ (get_unwidened): Make sure type is not FIXED_POINT_TYPE.
+ (get_narrower): Likewise.
+ (variably_modified_type_p): Handle FIXED_POINT_TYPE.
+ (make_or_reuse_fract_type, make_or_reuse_accum_type): New functions.
+ (build_common_tree_nodes_2): Use MAKE_FIXED_TYPE_NODE_FAMILY and
+ MAKE_FIXED_MODE_NODE macros to initialize fixed-point type
+ nodes.
+ (build_vector_type_for_mode): Handle MODE_VECTOR_FRACT,
+ MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
+ (initializer_zerop): Support FIXED_CST.
+ (walk_tree): Handle FIXED_CST and FIXED_POINT_TYPE.
+ * dwarf2out.c (base_type_die): Use DW_ATE_signed_fixed or
+ DW_ATE_unsigned_fixed to describe FIXED_POINT_TYPE.
+ (is_base_type): Handle FIXED_POINT_TYPE.
+ (add_type_attribute): Handle FIXED_POINT_TYPE.
+ (gen_type_die_with_usage): Handle FIXED_POINT_TYPE.
+ * print-tree.c (fixed-value.h): New include.
+ (print_node_brief): Support FIXED_CST.
+ (print_node): Support FIXED_POINT_TYPE and FIXED_CST.
+ * c-pretty-print.c (fixed-value.h): New include.
+ (pp_c_type_specifier): Handle FIXED_POINT_TYPE. Need to pass
+ TYPE_SATURATING to c_common_type_for_mode for fixed-point modes.
+ (pp_c_direct_abstract_declarator): Handle FIXED_POINT_TYPE.
+ Support fixed-point types for inner items in VECTOR_TYPE.
+ (pp_c_direct_declarator): Likewise.
+ (pp_c_declarator): Likewise.
+ (pp_c_fixed_constant): New function.
+ (pp_c_constant): Handle FIXED_CST.
+ (pp_c_primary_expression): Likewise.
+ (pp_c_expression): Likewise.
+ * fold-const.c (fixed-value.h): New include.
+ (negate_expr_p): Return true for FIXED_CST.
+ (fold_negate_expr): Support FIXED_CST.
+ (split_tree): Support FIXED_CST.
+ (const_binop): Support FIXED_CST.
+ (fold_convert_const_int_from_fixed): New function to convert from
+ fixed to int.
+ (fold_convert_const_real_from_fixed): New function to convert from
+ fixed to real.
+ (fold_convert_const_fixed_from_fixed): New function to convert from
+ fixed to another fixed.
+ (fold_convert_const_fixed_from_int): New function to convert from
+ int to fixed.
+ (fold_convert_const_fixed_from_real): New function to convert from
+ real to fixed.
+ (fold_convert_const): Support conversions from fixed to int, from
+ fixed to real, from fixed to fixed, from int to fixed, and from real
+ to fixed.
+ (fold_convert): Support FIXED_CST and FIXED_POINT_TYPE.
+ (operand_equal_p): Support FIXED_CST.
+ (make_range): For fixed-point modes, we need to pass the
+ saturating flag as the 2nd parameter.
+ (tree_swap_operands_p): Handle FIXED_CST.
+ (fold_plusminus_mult_expr): For fract modes, we cannot generate
+ constant 1.
+ (fold_unary): Support FIXED_CONVERT_EXPR.
+ (fold_binary): Handle FIXED_CST.
+ Make sure the type is not saturating, before associating operations.
+ Ex: A + B + C, A * B * C, (A1 * C1) +/- (A2 * C2).
+ (tree_expr_nonnegative_warnv_p): Handle FIXED_CST.
+ (fold_negate_const): Support FIXED_CST.
+ (fold_relational_const): Support FIXED_CST.
+ * gimplify.c (omp_firstprivatize_type_sizes): Handle FIXED_POINT_TYPE.
+ (gimplify_expr): Handle FIXED_CST.
+ (gimplify_type_sizes): Handle FIXED_POINT_TYPE.
+ * ipa-prop.c (ipa_callsite_compute_param): Support FIXED_CST.
+ * ipa-type-escape.c (type_to_consider): Handle FIXED_POINT_TYPE.
+ * doc/tm.texi (Type Layout): Document SHORT_FRACT_TYPE_SIZE,
+ FRACT_TYPE_SIZE, LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
+ SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
+ LONG_LONG_ACCUM_TYPE_SIZE.
+ * dbxout.c (dbxout_type): Handle FIXED_POINT_TYPE.
+ * c-aux-info.c (gen_type): Handle FIXED_POINT_TYPE.
+ * tree-sra.c (is_sra_scalar_type): Support FIXED_POINT_TYPE.
+ * expmed.c (extract_bit_field): Support MODE_FRACT, MODE_UFRACT,
+ MODE_ACCUM, and MODE_UACCUM.
+ * tree-vectorizer.c (vect_is_simple_reduction): Check for saturating
+ fixed-point types to disable reduction.
+ * explow.c (promote_mode): Support FIXED_POINT_TYPE.
+
+2007-08-08 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/x-rs6000: New file.
+ * config/rs6000/darwin.h (CC1_SPEC): Add cc1_cpu.
+ * config/rs6000/rs6000.h (EXTRA_SPECS): Add cc1_cpu.
+ (EXTRA_SPEC_FUNCTIONS): Define.
+ (HAVE_LOCAL_CPU_DETECT): Define.
+ (CC1_CPU_SPEC): Define.
+ * config/rs6000/driver-rs6000.c: New file.
+ * config/rs6000/aix.h (CC1_SPEC): Define.
+ * config/rs6000/sysv4.h (CC1_SPEC): Add cc1_cpu.
+ * config.host: Add x-rs6000 to host_xmake_file if host and target
+ are rs6000 or powerpc.
+
+2007-08-08 Paolo Bonzini <paolo.bonzini@lu.unisi.ch>
+
+ * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Use +=.
+
+2007-08-08 Richard Sandiford <richard@codesourcery.com>
+ Sandra Loosemore <sandra@codesourcery.com>
+ Chao-ying Fu <fu@mips.com>
+ Nigel Stephens <nigel@mips.com>
+ David Ung <davidu@mips.com>
+
+ * doc/invoke.texi (-mcode-readable): Document.
+ * config/mips/mips.opt (mcode-readable): New option.
+ * config/mips/mips-protos.h (SYMBOL_32_HIGH): New symbol type.
+ * config/mips/mips.h (mips_code_readable_setting): New enum.
+ (mips_code_readable): Declare.
+ (TARGET_MIPS16_TEXT_LOADS, TARGET_MIPS16_PCREL_LOADS): New macros.
+ (TARGET_MIPS16_SHORT_JUMP_TABLES): New macro.
+ (JUMP_TABLES_IN_TEXT_SECTION): Use it.
+ (CASE_VECTOR_MODE, CASE_VECTOR_PC_RELATIVE): Likewise. Remove
+ boiler-plate comments.
+ (ASM_OUTPUT_ADDR_DIFF_ELT): Use TARGET_MIPS16_SHORT_JUMP_TABLES.
+ * config/mips/mips.c (mips_code_readable): New variable.
+ (mips_classify_symbol): Only return SYMBOL_PC_RELATIVE for
+ MIPS16 labels if TARGET_MIPS16_SHORT_JUMP_TABLES. Use both the
+ context and -mcode-readable setting to restrict the use of
+ SYMBOL_PC_RELATIVE for MIPS16 constant pool references.
+ Only return TARGET_FORCE_TO_MEM if PC-relative loads are allowed.
+ (mips_symbolic_constant_p): Handle SYMBOL_32_HIGH.
+ (mips_blocks_for_constant_p): Only return false for
+ TARGET_MIPS16_PCREL_LOADS.
+ (mips_symbol_insns_1): Treat HIGHs as 2 extended instructions
+ for MIPS16. Handle SYMBOL_32_HIGH.
+ (mips_const_insns): Allow HIGHs for MIPS16 too.
+ (mips_unspec_address_offset): New function, split out from...
+ (mips_unspec_address): ...here.
+ (mips_output_move): Handle MIPS16 HIGH moves. Use "li" to load
+ 16-bit symbolic constants. Assert approropiate conditions for
+ using the "la" and "dla" macros.
+ (mips_handle_option): Handle -mcode-readable=.
+ (override_options): Use %hi/%lo relocations for TARGET_MIPS16 too.
+ Set up mips_lo_relocs[SYMBOL_32_HIGH].
+ (mips_strip_unspec_address): New function, split out from...
+ (print_operand_reloc): ...here.
+ (print_operand): Pass constants through mips_strip_unspec_address.
+ (print_operand_address): Likewise.
+ (mips_output_mi_thunk): Remove guard of mips16_lay_out_constants.
+ (mips_select_rtx_section): Remove MIPS16 handling.
+ (mips16_gp_pseudo_reg): Check currently_expanding_to_rtl.
+ (mips16_rewrite_pool_refs): Wrap the labels in an address UNSPEC.
+ (mips16_lay_out_constants): Do nothing unless
+ TARGET_MIPS16_PCREL_LOADS.
+ (mips_avoid_hazards): Remove guard of mips16_lay_out_constants.
+ * config/mips/mips.md: Split HIGHs for MIPS16.
+ (tablejump): Use TARGET_MIPS16_SHORT_JUMP_TABLES.
+
+2007-08-08 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips-protos.h (mips_emit_move): Declare.
+ * config/mips/mips.c (mips_emit_move): New function.
+ (mips_force_temporary): Use mips_emit_move instead of emit_move_insn.
+ (mips_legitimize_const_move): Likewise.
+ (mips_legitimize_move): Likewise.
+ (mips_split_64bit_move): Likewise.
+ (mips_restore_gp): Likewise.
+ (mips_load_call_address): Likewise.
+ (mips_emit_fcc_reload): Likewise.
+ (mips_set_return_address): Likewise.
+ (mips_block_move_straight): Likewise.
+ (mips_block_move_loop): Likewise.
+ (mips_setup_incoming_varargs): Likewise.
+ (mips_save_reg): Likewise.
+ (mips_expand_prologue): Likewise.
+ (mips_restore_reg): Likewise.
+ (mips_expand_epilogue): Likewise.
+ (mips_output_mi_thunk): Likewise.
+ (build_mips16_call_stub): Likewise.
+ (mips_builtin_branch_and_move): Likewise.
+ * config/mips/mips.h (INITIALIZE_TRAMPOLINE): Likewise.
+ * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
+ (fixuns_truncdfdi2): Likewise.
+ (fixuns_truncsfsi2): Likewise.
+ (fixuns_truncsfdi2): Likewise.
+ (loadgp_absolute): Likewise.
+ (builtin_setjmp_setup): Likewise.
+ (builtin_longjmp): Likewise.
+ (untyped_call): Likewise.
+
+2007-08-08 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips-protos.h (mips_split_symbol): Add a mode and
+ an "rtx *" argument. Return a bool.
+ * config/mips/mips.c (mips_split_symbol): Accept arbitrary source
+ values and return true if they can be split. Take the same kind of
+ mode argument as mips_symbol_insns. Add a "lo_sum_out" parameter
+ and store the lo_sum there if nonnull. Use the symbol type to
+ determine whether a $gp or HIGH is needed.
+ (mips_legitimize_address): Update call to mips_split_symbol and
+ simplify accordingly.
+ (mips_legitimize_const_move): Likewise.
+ * config/mips/mips.md: In the combine define_split,
+ check mips_split_symbol instead of splittable_symbolic_operand.
+ Update use of mips_split_symbol in the generator code.
+ * config/mips/predicates.md (splittable_symbolic_operand): Delete.
+
+2007-08-08 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips.c (mips_symbolic_address_p): Delete.
+ (mips_symbol_insns_1): New function, split out from...
+ (mips_symbol_insns): ...here. Take a mode argument. Treat loads
+ and stores separately from load addresses.
+ (mips_classify_address): Replace uses of mips_symbolic_address_p
+ with uses of mips_symbol_insns.
+ (mips_address_insns): Update calls to mips_symbol_insns.
+ (mips_const_insns): Likewise.
+ (mips_legitimize_address): Likewise.
+
+2007-08-08 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): New symbol type.
+ * config/mips/mips.c (mips_classify_symbol): Skip TARGET_ABICALLS
+ block for locally-binding symbols if TARGET_ABSOLUTE_ABICALLS.
+ Return SYMBOL_FORCE_TO_MEM instead of SYMBOL_ABSOLUTE for
+ non-call contexts if TARGET_MIPS16.
+ (mips_symbolic_constant_p): Handle SYMBOL_FORCE_TO_MEM.
+ (mips_symbolic_address_p): Likewise. Remove special TARGET_MIPS16
+ code for SYMBOL_ABSOLUTE.
+ (mips_symbol_insns): Likewise.
+
+2007-08-08 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips-protos.h (mips_symbol_context): New enumeration.
+ * config/mips/mips.c (mips_classify_symbol): Take a context argument.
+ (mips_symbolic_constant_p): Likewise. Update the call to
+ mips_classify_symbol.
+ (mips_classify_address): Update the calls to mips_symbolic_constant_p.
+ (mips_const_insns): Likewise. Update the call to mips_classify_symbol.
+ (mips_legitimize_address): Update the call to mips_symbolic_constant_p.
+ (print_operand_reloc): Add a context argument. Update the call to
+ mips_symbolic_constant_p.
+ (print_operand): Update the calls to print_operand_reloc.
+ (print_operand_address): Use print_operand_reloc rather than
+ print_operand.
+ (mips_rewrite_small_data_p): Add a context argument. Update the call
+ to mips_symbolic_constant_p.
+ (mips_small_data_pattern_1): Make DATA the containing mem.
+ Update the call to mips_rewrite_small_data_p.
+ (mips_rewrite_small_data_1): Likewise.
+ (mips_use_anchors_for_symbol_p): Update the call to
+ mips_symbolic_constant_p.
+ * config/mips/predicates.md (const_call_insn_operand): Likewise.
+ (splittable_symbolic_operand): Likewise.
+ (move_operand): Likewise.
+ (absolute_symbolic_operand): Likewise.
+ (got_disp_operand): Likewise.
+ (got_page_ofst_operand): Likewise.
+
+2007-08-08 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips-protos.h (SYMBOL_GENERAL): Rename to...
+ (SYMBOL_ABSOLUTE): ...this.
+ (SYMBOL_SMALL_DATA): Rename to...
+ (SYMBOL_GP_RELATIVE): ...this.
+ (SYMBOL_CONSTANT_POOL): Rename to...
+ (SYMBOL_PC_RELATIVE): ...this.
+ * config/mips/mips.c (mips_classify_symbol, mips_symbolic_constant_p)
+ (mips_symbolic_address_p, mips_symbol_insns, override_options)
+ (mips_rewrite_small_data_p, mips_use_anchors_for_symbol_p): Update
+ after above changes.
+ * config/mips/predicates.md (const_call_insn_operand): Likewise.
+ (general_symbolic_operand): Rename to...
+ (absolute_symbolic_operand): ...this.
+ * config/mips/mips.md: Update after above changes.
+
+2007-08-08 Vladimir Yanovsky <yanov@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
+ verbosity.
+ (calculate_maxii): Remove function.
+ (undo_generate_reg_moves): Likewise.
+ (undo_permute_partial_schedule): Likewise.
+ (kernel_number_of_cycles): Likewise.
+ (MAXII_FACTOR): New definition to calculate the upper bound of II.
+ (sms_schedule): Use it. Remove profitability checks.
+ (sms_schedule_by_order): Fix order of nodes within the cycle.
+
+2007-08-08 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt0.o in profile mode, add
+ -profile option, add pie support.
+ (ENDFILE_SPEC): New spec.
+ * config/gnu.h (LIB_SPEC): Add -profile option.
+
+2007-08-08 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * 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>
+
+ * common.opt (finstrument-functions-exclude-function-list): New
+ option.
+ (finstrument-functions-exclude-file-list): New option.
+ * opts.c (char_p): Define and DEF_VEC.
+ (flag_instrument_functions_exclude_functions): New static
+ variable.
+ (flag_instrument_functions_exclude_files): New static variable.
+ (add_instrument_functions_exclude_list): New static function.
+ (flag_instrument_functions_exclude_p): New function.
+ (common_handle_option): Handle new options.
+ * flags.h (flag_instrument_functions_exclude_p): Declare.
+ * gimplify.c (gimplify_function_tree): Call
+ flag_instrument_functions_exclude_p.
+ * doc/invoke.texi (Option Summary): Mention new options.
+ (Code Gen Options): Document new options.
+
+2007-08-07 Ian Lance Taylor <iant@google.com>
+
+ PR rtl-optimization/32776
+ * lower-subreg.c (resolve_clobber): Call resolve_reg_notes.
+ (resolve_use): Likewise.
+ (decompose_multiword_subregs): Remove "changed" local variable.
+
+2007-08-07 Carlos O'Donell <carlos@codesourcery.com>
+
+ * configure.ac: Define HAVE_GNU_AS if $gas_flag is yes.
+ * configure: Regenerate.
+ * config.in: Regenerate.
+ * gcc.c [HAVE_GNU_AS]: Add "%{v} %{w:-W} %{I*} " to asm_options
+ spec string.
+
+2007-08-07 Ian Lance Taylor <iant@google.com>
+
+ * lower-subreg.c (resolve_clobber): If the clobber has a LIBCALL
+ note, just delete the insn.
+
+2007-08-07 Andreas Schwab <schwab@suse.de>
+
+ PR bootstrap/32973
+ * gengtype-lex.l: Ignore backslash/newline pair while scanning a
+ struct definition.
+
+2007-08-07 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * lower-subreg.c (resolve_subreg_use): Remove assertion.
+ (find_decomposable_shift_zext, resolve_shift_zext): New functions.
+ (decompose_multiword_subregs): Use the functions above to decompose
+ multiword shifts and zero-extends.
+
+2007-08-07 Rask Ingemann Lambertsen <rask@sygehus.dk>
+
+ * doc/sourcebuild.texi (Test Directives): Fix "compile" and
+ "assemble" descriptions which were swapped.
+
+2007-08-06 Chao-ying Fu <fu@mips.com>
+
+ * fixed-value.h: New file.
+ * fixed-value.c: New file.
+ * Makefile.in (OBJS-common): Add fixed-value.o.
+ (fixed-value.o): New rule.
+ (GTFILES): Add fixed-value.h.
+ * double-int.c (double_int_scmp): We should use unsigned HOST_WIDE_INT
+ to compare a.low and b.low.
+ * gengtype.c (main): Handle FIXED_VALUE_TYPE type as scalar typedef.
+
+2007-08-06 H.J. Lu <hongjiu.lu@intel.com>
+ Daniel Jacobowitz <dan@codesourcery.com>
+
+ PR target/31868
+ * config.gcc (x86_64-*-freebsd*): Add i386/t-crtstuff to
+ tmake_file.
+ (x86_64-*-netbsd*): Likewise.
+ (x86_64-*-linux*): Likewise.
+ (x86_64-*-kfreebsd*-gnu): Likewise.
+ (x86_64-*-knetbsd*-gnu): Likewise.
+ (i[34567]86-*-solaris2.1[0-9]*): Likewise.
+
+ * config/i386/t-linux64 (CRTSTUFF_T_CFLAGS): Removed.
+
+ * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Update comments.
+ Add -fno-asynchronous-unwind-tables.
+
+ * config/t-freebsd (CRTSTUFF_T_CFLAGS_S): Add $(CRTSTUFF_T_CFLAGS).
+ * config/t-libc-ok (CRTSTUFF_T_CFLAGS_S): Likewise.
+ * config/t-lynx (CRTSTUFF_T_CFLAGS_S): Likewise.
+ * config/t-netbsd (CRTSTUFF_T_CFLAGS_S): Likewise.
+ * config/t-svr4 (CRTSTUFF_T_CFLAGS_S): Likewise.
+
+2007-08-06 Steve Ellcey <sje@cup.hp.com>
+
+ * config/ia64/ia64.c (ia64_c_mode_for_suffix): New.
+ (TARGET_C_MODE_FOR_SUFFIX): New.
+
+2007-08-06 Steve Ellcey <sje@cup.hp.com>
+
+ * config/ia64/div.md (m2subrf4_cond): Change 'g' to 'G'.
+
+2007-08-06 Steve Ellcey <sje@cup.hp.com>
+
+ * config/ia64/ia64.h (MODES_TIEABLE_P): Fix typo.
+
+2007-08-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.md: Check TARGET_ macros and optimize_size
+ before checking function returns in conditional expressions.
+
+2007-08-06 Alfred Minarik <a.minarik@aon.at>
+
+ PR pch/13676
+ * doc/invoke.texi: Add .hp, .hxx, .hpp, .h, .HPP, .tcc as c++ header.
+
+2008-08-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR middle-end/32988
+ * tree.c (build2_stat): Instead of checking for INTEGER_TYPE, check
+ for INTEGRAL_TYPE_P.
+
2008-08-05 Paolo Bonzini <bonzini@gnu.org>
- * configure.ac: Remove --enable-checking=df from default settings.
- * tree-pass.h (TODO_df_verify): New. Shift TODO_mark_first_instance.
- * df-core.c (df_finish_pass) [ENABLE_CHECKING]: Schedule verification
- if the parameter is true.
- (df_analyze) [!ENABLE_DF_CHECKING]: Also do verification if the
- DF_VERIFY_SCHEDULED flag is true.
- * df.h (enum df_changeable_flags): Add DF_VERIFY_SCHEDULED.
- (df_finish_pass): Adjust prototype.
- * passes.c (execute_todo): Schedule verification if TODO_df_verify is
- true.
-
- * see.c (pass_see): Add TODO_df_verify.
- * loop-init.c (pass_rtl_move_loop_invariants): Add TODO_df_verify.
- * global.c (rest_of_handle_global_alloc): Schedule verification
- after the pass.
- * local-alloc.c (rest_of_handle_local_alloc): Schedule verification
- before the pass.
- * function.c (pass_thread_prologue_and_epilogue): Add TODO_df_verify.
- * gcse.c (rest_of_handle_gcse): Adjust call to df_finish_pass.
- * loop-iv.c (iv_analysis_done): Schedule verification after the pass.
-
- * config/sh/sh.c (sh_output_mi_thunk): Remove dead code.
- * config/ia64/ia64.c (ia64_reorg): Adjust call to df_finish_pass.
- * config/bfin/bfin.c (bfin_reorg): Adjust call to df_finish_pass.
+ * configure.ac: Remove --enable-checking=df from default settings.
+ * tree-pass.h (TODO_df_verify): New. Shift TODO_mark_first_instance.
+ * df-core.c (df_finish_pass) [ENABLE_CHECKING]: Schedule verification
+ if the parameter is true.
+ (df_analyze) [!ENABLE_DF_CHECKING]: Also do verification if the
+ DF_VERIFY_SCHEDULED flag is true.
+ * df.h (enum df_changeable_flags): Add DF_VERIFY_SCHEDULED.
+ (df_finish_pass): Adjust prototype.
+ * passes.c (execute_todo): Schedule verification if TODO_df_verify is
+ true.
+
+ * see.c (pass_see): Add TODO_df_verify.
+ * loop-init.c (pass_rtl_move_loop_invariants): Add TODO_df_verify.
+ * global.c (rest_of_handle_global_alloc): Schedule verification
+ after the pass.
+ * local-alloc.c (rest_of_handle_local_alloc): Schedule verification
+ before the pass.
+ * function.c (pass_thread_prologue_and_epilogue): Add TODO_df_verify.
+ * gcse.c (rest_of_handle_gcse): Adjust call to df_finish_pass.
+ * loop-iv.c (iv_analysis_done): Schedule verification after the pass.
+
+ * config/sh/sh.c (sh_output_mi_thunk): Remove dead code.
+ * config/ia64/ia64.c (ia64_reorg): Adjust call to df_finish_pass.
+ * config/bfin/bfin.c (bfin_reorg): Adjust call to df_finish_pass.
2007-08-05 Vladimir Yanovsky <yanov@il.ibm.com>
- Revital Eres <eres@il.ibm.com>
+ Revital Eres <eres@il.ibm.com>
* doc/invoke.texi (-fmodulo-sched-allow-regmoves): Document new
flag.
2007-07-29 Mark Mitchell <mark@codesourcery.com>
- gcc/
* config/m68k/lb1sf68.asm (FUNC): New macro.
(__mulsi3): Use it.
(__udivsi3): Likewise.
* doc/invoke.texi: Follow spelling conventions.
2007-07-29 Vladimir Yanovsky <yanov@il.ibm.com>
- Revital Eres <eres@il.ibm.com>
+ Revital Eres <eres@il.ibm.com>
* modulo-sched.c (sms_schedule): Avoid loops which includes
auto-increment instructions.
2007-07-16 Sandra Loosemore <sandra@codesourcery.com>
David Ung <davidu@mips.com>
- * config/mips/mips.h (TUNE_24K): Define.
+ * config/mips/mips.h (TUNE_24K): Define.
(TUNE_MACC_CHAINS): Add TUNE_24K.
- * config/mips/mips.md: (*mul_acc_si, *mul_sub_si): Change type to
- imadd.
- * config/mips/74k.md (r74k_int_mult): Split madd/msub to ..
- (r74k_int_madd): .. this new reservation.
- (define_bypass): Fixed bypasses for r74k_int_madd to use
+ * config/mips/mips.md: (*mul_acc_si, *mul_sub_si): Change type to
+ imadd.
+ * config/mips/74k.md (r74k_int_mult): Split madd/msub to ..
+ (r74k_int_madd): .. this new reservation.
+ (define_bypass): Fixed bypasses for r74k_int_madd to use
mips_linked_madd_p.
- * config/mips/24k.md (define_bypass): Define new
- r24k_int_mul3->r24k_int_madd bypass using mips_linked_madd_p.
+ * config/mips/24k.md (define_bypass): Define new
+ r24k_int_mul3->r24k_int_madd bypass using mips_linked_madd_p.
2007-07-16 Sandra Loosemore <sandra@codesourcery.com>
Nigel Stephens <nigel@mips.com>
* doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
2007-07-06 Ian Lance Taylor <iant@google.com>
- Zack Weinberg <zackw@panix.com>
+ Zack Weinberg <zackw@panix.com>
PR middle-end/32441
* builtins.c (std_expand_builtin_va_start): Don't use make_tree.
after \.
2007-07-04 David Ung <davidu@mips.com>
- Joseph Myers <joseph@codesourcery.com>
+ Joseph Myers <joseph@codesourcery.com>
* config/mips/mips.md (type): Add logical, signext and move.
(one_cmpl<mode>2, *and<mode>3, *and<mode>3_mips16, *ior<mode>3,
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-26 Kenneth Zadeck <zadeck@naturalbridge.com>
- * tree.def (VEC_WIDEN_MULT_LO_EXPR): Corrected string name.
+ * tree.def (VEC_WIDEN_MULT_LO_EXPR): Corrected string name.
2007-06-26 Steve Ellcey <sje@cup.hp.com>
2007-06-21 Kenneth Zadeck <zadeck@naturalbridge.com>
- * df-problems.c (df_note_bb_compute): Made computation of live
+ * df-problems.c (df_note_bb_compute): Made computation of live
info consistent with df_lr.
2007-06-21 Richard Guenther <rguenther@suse.de>
(epilogue_reit): Rename to epilogue_reit_24.
2007-06-20 Seongbae Park <seongbae.park@gmail.com>
- Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
+ Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
* dbgcnt.def (global_alloc_at_func, global_alloc_at_reg):
New counters.
(Intel 386 and AMD x86_64 Options): Document -mrecip.
2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
- Zdenek Dvorak <dvorakz@suse.cz>
- Richard Guenther <rguenther@suse.de>
- Kaz Kojima <kkojima@gcc.gnu.org>
+ Zdenek Dvorak <dvorakz@suse.cz>
+ Richard Guenther <rguenther@suse.de>
+ Kaz Kojima <kkojima@gcc.gnu.org>
* tree-vrp.c (compare_values_warnv): Convert val2 to
the type of val1.
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>
(vect_estimate_min_profitable_iterations): New function to estimate
mimimimum iterartions required for vector version of loop to be
profitable over scalar version.
- (vect_model_reduction_cost): New function.
+ (vect_model_reduction_cost): New function.
(vect_model_induction_cost): New function.
(vect_model_simple_cost): New function.
(vect_cost_strided_group_size): New function.
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>