X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FChangeLog;h=6033a605f426687336bb1f5f0b9cdf16b8ffd8f3;hb=d7bb133fa9523c6f4603e9cd1ecfb25ee32da246;hp=637315c203b3f829f6c413b90f15887a4902062f;hpb=a7c1ab491b27ffe369254e6ba0cb7bbcbc5e0b0d;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 637315c203b..6033a605f42 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,6 +1,996 @@ +2007-05-18 H.J. Lu + + PR target/31989 + PR target/31681 + PR target/31666 + * config/i386/i386.c (init_cumulative_args): Set maybe_vaarg to + true if function has no argument. + +2007-05-18 DJ Delorie + + * config/mips/mips.c (mips_offset_within_alignment_p): New. + (mips_symbolic_constant_p): Call it for TPREL and DTPREL symbols. + +2007-05-18 Uros Bizjak + + * longlong.h (__x86_64__): Add definitions for add_ssaaaa, + sub_ddmmss, umul_ppmm, udiv_qrnnd, count_leading_zeros and + count_trailing_zeros. + (__i386__): Implement count_leading_zeros using __builtin_clz(). + Implement count_trailing_zeros usign __builtin_ctz(). + +2007-05-18 Richard Sandiford + + * config/i386/vxworks.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine. + +2007-05-18 Uros Bizjak + + PR middle-end/31344 + * expr.c (emit_move_change_mode): Change mode of push operands here. + +2007-05-17 Ian Lance Taylor + + PR tree-optimization/31953 + * tree-vrp.c (set_value_range_to_value): Add equiv parameter. + Change all callers. + (set_value_range_to_null): Call set_value_range_to_value. + (extract_range_from_comparison): Likewise. + +2007-05-17 Kaveh R. Ghazi + + * toplev.c (print_version): Output GMP/MPFR version info. + + * builtins.c (CASE_MATHFN_REENT): New macro. + (mathfn_built_in): Use it. + * builtins.def (BUILT_IN_GAMMA_R, BUILT_IN_GAMMAF_R, + BUILT_IN_GAMMAL_R, BUILT_IN_LGAMMA_R, BUILT_IN_LGAMMAF_R, + BUILT_IN_LGAMMAL_R): New. + * doc/extend.texi: Document new builtins. + + PR middle-end/31796 + * builtins.c (do_mpfr_remquo): New. + (fold_builtin_2): Handle BUILT_IN_DREM/BUILT_IN_REMAINDER. + (fold_builtin_3): Handle BUILT_IN_REMQUO. + + PR middle-end/30251 + * builtins.c (fold_builtin_1): Handle y0, y1. + (fold_builtin_2): Handle yn. + + PR middle-end/30251 + * builtins.c (do_mpfr_bessel_n): New. + (fold_builtin_1): Handle BUILT_IN_J0 and BUILT_IN_J1. + (fold_builtin_2): Handle BUILT_IN_JN. + +2007-05-17 Danny Smith + + PR target/31965 + * config/i386/mingw32.h (_INTEGRAL_MAX_BITS): Define builtin as + TYPE_PRECISION (intmax_type_node). + +2007-05-17 Steve Ellcey + + PR target/31850 + * reload.c (subst_reloads): Remove checking. + +2007-05-17 Eric Botcazou + + PR rtl-optimization/31691 + * combine.c (simplify_set): Build a new src pattern instead of + substituting its operands in the COMPARE case. + +2007-05-17 Zdenek Dvorak + + * tree-vrp.c (finalize_jump_threads): Do not care about dominance info. + (execute_vrp): Preserve loops through jump threading. + * tree-ssa-threadupdate.c (thread_single_edge, + dbds_continue_enumeration_p, determine_bb_domination_status, + thread_through_loop_header): New functions. + (create_edge_and_update_destination_phis, + create_edge_and_update_destination_phis): Set loops for the new blocks. + (prune_undesirable_thread_requests): Removed. + (redirect_edges): Do not pretend that redirect_edge_and_branch can + create new blocks. + (thread_block): Do not call prune_undesirable_thread_requests. + Update loops. + (mark_threaded_blocks): Select edges to thread here. + (thread_through_all_blocks): Take may_peel_loop_headers argument. + Thread edges through loop headers independently. + * cfgloopmanip.c (create_preheader, mfb_keep_just): Export. + * tree-pass.h (TODO_mark_first_instance): New. + (first_pass_instance): Declare. + * cfghooks.c (duplicate_block): Put the block to the original loop + if copy is not specified. + * tree-ssa-dom.c (tree_ssa_dominator_optimize): Preserve loops through + jump threading. Pass may_peel_loop_headers to + thread_through_all_blocks according to first_pass_instance. + * cfgloop.h (create_preheader): Declare. + * tree-flow.h (thread_through_all_blocks): Declaration changed. + * basic-block.h (mfb_keep_just, mfb_kj_edge): Declare. + * passes.c (first_pass_instance): New variable. + (next_pass_1): Set TODO_mark_first_instance. + (execute_todo): Set first_pass_instance. + +2007-05-17 Uros Bizjak + + PR tree-optimization/24659 + * optabs.h (enum optab_index): Add OTI_vec_unpacks_float_hi, + OTI_vec_unpacks_float_lo, OTI_vec_unpacku_float_hi, + OTI_vec_unpacku_float_lo, OTI_vec_pack_sfix_trunc and + OTI_vec_pack_ufix_trunc. + (vec_unpacks_float_hi_optab): Define new macro. + (vec_unpacks_float_lo_optab): Ditto. + (vec_unpacku_float_hi_optab): Ditto. + (vec_unpacku_float_lo_optab): Ditto. + (vec_pack_sfix_trunc_optab): Ditto. + (vec_pack_ufix_trunc_optab): Ditto. + * genopinit.c (optabs): Implement vec_unpack[s|u]_[hi|lo]_optab + and vec_pack_[s|u]fix_trunc_optab using + vec_unpack[s|u]_[hi\lo]_* and vec_pack_[u|s]fix_trunc_* patterns + * tree-vectorizer.c (supportable_widening_operation): Handle + FLOAT_EXPR and CONVERT_EXPR. Update comment. + (supportable_narrowing_operation): New function. + * tree-vectorizer.h (supportable_narrowing_operation): Prototype. + * tree-vect-transform.c (vectorizable_conversion): Handle + (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases. + (vect_gen_widened_results_half): Move before vectorizable_conversion. + (vectorizable_type_demotion): Call supportable_narrowing_operation() + to check for target support. + * optabs.c (optab_for_tree_code) Return vec_unpack[s|u]_float_hi_optab + for VEC_UNPACK_FLOAT_HI_EXPR, vec_unpack[s|u]_float_lo_optab + for VEC_UNPACK_FLOAT_LO_EXPR and vec_pack_[u|s]fix_trunc_optab + for VEC_PACK_FIX_TRUNC_EXPR. + (expand_binop): Special case mode of the result for + vec_pack_[u|s]fix_trunc_optab. + (init_optabs): Initialize vec_unpack[s|u]_[hi|lo]_optab and + vec_pack_[u|s]fix_trunc_optab. + + * tree.def (VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR, + VEC_PACK_FIX_TRUNC_EXPR): New tree codes. + * tree-pretty-print.c (dump_generic_node): Handle + VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and + VEC_PACK_FIX_TRUNC_EXPR. + (op_prio): Ditto. + * expr.c (expand_expr_real_1): Ditto. + * tree-inline.c (estimate_num_insns_1): Ditto. + * tree-vect-generic.c (expand_vector_operations_1): Ditto. + + * config/i386/sse.md (vec_unpacks_float_hi_v8hi): New expander. + (vec_unpacks_float_lo_v8hi): Ditto. + (vec_unpacku_float_hi_v8hi): Ditto. + (vec_unpacku_float_lo_v8hi): Ditto. + (vec_unpacks_float_hi_v4si): Ditto. + (vec_unpacks_float_lo_v4si): Ditto. + (vec_pack_sfix_trunc_v2df): Ditto. + + * doc/c-tree.texi (Expression trees) [VEC_UNPACK_FLOAT_HI_EXPR]: + Document. + [VEC_UNPACK_FLOAT_LO_EXPR]: Ditto. + [VEC_PACK_FIX_TRUNC_EXPR]: Ditto. + * doc/md.texi (Standard Names) [vec_pack_sfix_trunc]: Document. + [vec_pack_ufix_trunc]: Ditto. + [vec_unpacks_float_hi]: Ditto. + [vec_unpacks_float_lo]: Ditto. + [vec_unpacku_float_hi]: Ditto. + [vec_unpacku_float_lo]: Ditto. + +2007-05-16 Uros Bizjak + + * soft-fp/README: Update for new files. + * soft-fp/floattisf.c: New file. + * soft-fp/floattidf.c: New file. + * soft-fp/floattitf.c: New file. + * soft-fp/floatuntisf.c: New file. + * soft-fp/floatuntidf.c: New file. + * soft-fp/floatuntitf.c: New file. + * soft-fp/fixsfti.c: New file. + * soft-fp/fixdfti.c: New file. + * soft-fp/fixtfti.c: New file. + * soft-fp/fixunssfti.c: New file. + * soft-fp/fixunsdfti.c: New file. + * soft-fp/fixunstfti.c: New file. + * soft-fp/extendxftf.c: New file. + * soft-fp/trunctfxf.c: New file. + + * libgcc-std.ver (__extendxftf2): Added to GCC_4.3.0 section. + (__trunctfxf2): Ditto. + + * config/i386/libgcc-x86_64-glibc.ver (__addtf3, __divtf3, __eqtf2, + __extenddftf2, __extendsftf2, __fixtfdi, __fixtfsi, __fixtfti, + __fixunstfdi, __fixunstfsi, __fixunstfti, __floatditf, __floatsitf, + __floattitf, __floatunditf, __floatunsitf, __floatuntitf, __getf2, + __letf2, __multf3, __negtf2, __subtf3, __trunctfdf2, __trunctfsf2, + __unordtf2): Exclude and add to GCC_4.3.0 section for x86_64 targets. + + * config/i386/t-fprules-softfp64: New file. + * config/i386/sfp-machine.h: New file. + * config.gcc (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, + x86_64-*-knetbsd*-gnu): Add i386/t-fprules-softfp64 + and soft-fp/t-softfp to tmake_file. + (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu, + i[34567]86-*-knetbsd*-gnu): Ditto for --enable-targets=all. + + * config/i386/t-linux64 (softfp_wrap_start): New. + (softfp_wrap_end): New. + * config/i386/i386.c (ix86_scalar_mode_supported): TFmode is + supported for TARGET_64BIT. + +2007-05-16 Rafael Avila de Espindola + + * c-common.c (c_common_signed_or_unsigned_type): Emulate + c_common_unsigned_type behavior. + +2007-05-16 Paolo Bonzini + + * config/i386/i386.c (legitimize_tls_address): Mark __tls_get_addr + calls as pure. + +2007-05-16 Eric Christopher + + * config/rs6000/rs6000.c (rs6000_emit_prologue): Move altivec register + saving after stack push. Set sp_offset whenever we push. + (rs6000_emit_epilogue): Move altivec register restore before + stack push. + +2007-05-16 Richard Sandiford + + * configure.ac: Allow sysroots to be relocated under $prefix as + well as $exec_prefix. + * configure: Regenerate. + +2007-05-16 Richard Sandiford + + Revert: + + 2007-05-12 Richard Sandiford + + * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix). + (gcc_tooldir): Likewise. + * configure: Regenerate. + * Makefile.in (libsubdir_to_prefix): New variable, based on the + old configure.ac gcc_tooldir setting. + (prefix_to_exec_prefix): New variable. + (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix) + rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX. + +2007-05-14 Janis Johnson + + * c-typeck.c (build_binary_op): Return early for error. + +2007-05-15 Zdenek Dvorak + + * tree-ssa-loop-niter.c (record_estimate): Use GGC_NEW to allocate + struct nb_iter_bound. + (free_numbers_of_iterations_estimates_loop): Use ggc_free. + * gengtype.c (open_base_files): Add cfhloop.h to the list of includes. + * cfgloopmanip.c (place_new_loop): Vector larray is gc-allocated. + * tree-scalar-evolution.c: Include gt-tree-scalar-evolution.h. + (struct scev_info_str, scalar_evolution_info): Add GTY markers. + (new_scev_info_str): Use GGC_NEW to allocate struct scev_info_str. + (del_scev_info): Use ggc_free. + (scev_initialize): Allocate scalar_evolution_info in gc memory. + * loop-init.c: Include ggc.h. + (loop_optimizer_init): Use GGC_CNEW to allocate struct loops. + (loop_optimizer_finalize): Use ggc_free. + * tree-ssa-loop.c (pass_tree_unswitch, pass_vectorize, + pass_linear_transfom, pass_empty_loop, pass_complete_unroll, + pass_iv_optimize): Add TODO_ggc_collect. + * function.h (struct function): Remove skip marker from x_current_loops. + * cfgloop.c: Include ggc.h. + (flow_loops_free, flow_loop_free): Free the loop descriptions in gc + memory. + (establish_preds): Vector superloops is gc allocated. + (alloc_loop): Allocate loop using GGC_CNEW. Allocate head of + loop->exits list. + (flow_loops_find): Vector larray is gc allocated. + (loop_exit_free): Use ggc_free. + (rescan_loop_exit): Use GGC_NEW to allocate struct loop_exit. Reflect + that head of exits list is now not a part of struct loop. + (record_loop_exits): Allocate exits table in gc memory. + (get_loop_exit_edges, verify_loop_structure, single_exit): Reflect that + head of exits list is now not a part of struct loop. + * cfgloop.h (struct lpt_decision, struct nb_iter_bound, + struct loop_exit): Add GTY marker. + (struct loop): Add GTY marker. Make superloops vector gc allocated. + Add skip marker to aux field. Make head of exits list a separate + object. + (struct loops): Add GTY marker. Make larray vector gc allocated. + Add param marker to exits table. + (get_loops): Type changed. + * Makefile.in (tree-scalar-evolution.o): Add gt-tree-scalar-evolution.h + dependency. + (cfgloop.o, loop-init.o): Add ggc.h dependency. + (GTFILES): Add cfgloop.h and tree-scalar-evolution.c. + * basic-block.h (struct basic_block_def): Remove skip marker from + loop_father field. + +2007-05-14 Uros Bizjak + + * builtins.c (expand_builtin_mathfn): Use EXPAND_NORMAL instead + of 0 in the call to expand_expr(). + (expand_builtin_mathfn_3): Ditto. + (expand_builtin_interclass_mathfn): Ditto. + (expand_builtin_cexpi): Ditto. + (expand_builtin_int_roundingfn): Ditto. + (expand_builtin_int_roundingfn_2): Ditto. + (expand_builtin_pow): Ditto. + (expand_builtin_powi): Ditto. + (expand_builtin_bswap): Ditto. + (expand_builtin_unop): Ditto. + (expand_builtin_fabs): Ditto. + (get_builtin_sync_mem): Use NULL_RTX instead of NULL in + the call to expand_expr(). + (expand_builtin_sync_operation): Ditto. + (expand_builtin_compare_and_swap): Ditto. + (expand_builtin_lock_test_and_set): Ditto. + * except.c (expand_builtin_eh_return_data_regno): Use EXPAND_NORMAL + instead of 0 in the call to expand_expr(). + (expand_builtin_extract_return_addr): Ditto. + (expand_builtin_eh_return): Ditto. + (expand_eh_return): Ditto. + * explow.c (expr_size): Ditto. + * expr.c (optimize_bitfield_assignment_op): Ditto. + (expand_assignement): Ditto. + (store_expr): Ditto. + (store_field): Ditto. + (expand_expr_addr_expr_1): Use NULL_RTX instead of NULL in + the call to expand_expr(). + (expand_expr_real_1) [COMPLEX_CST]: Use EXPAND_NORMAL instead of 0 + in the call to expand_expr(). + [CONSTRUCTOR, PLUS_EXPR, MINUS_EXPR, NEGATE_EXPR, ABS_EXPR, + BIT_NOT_EXPR, LSHIFT_EXPR, LT_EXPR, TRUTH_NOT_EXPR]: Ditto. + [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO]: Use expand_normal() instead + of expand_expr(). + * optabs.c (expand_vec_shift_expr): Ditto. + (expand_vec_cond_expr): Ditto. + (vector_compare_rtx): Use EXPAND_STACK_PARM instead of 1 in the + call to expand_expr(). + * stmt.c (expand_return): Use EXPAND_NORMAL instead of 0 + in the call to expand_expr(). + +2007-05-14 Dave Korn + + * genautomata.c (gen_regexp_el): Allocate correct size for regexp. + +2007-05-14 Rafael Avila de Espindola + + * c-common.c (warnings_for_convert_and_check): Use unsigned_type_for + instead of c_common_unsigned_type. + (c_common_unsigned_type): Remove. + (shorten_compare): Use c_common_signed_or_unsigned_type instead of + c_common_unsigned_type. + (c_common_nodes_and_builtins): Use unsigned_type_for instead of + c_common_unsigned_type. + * c-common.h (c_common_unsigned_type): Remove. + * c-decl.c (grokdeclarator): Use unsigned_type_for instead of + c_common_unsigned_type. + * c-format.c (check_format_types): Use unsigned_type_for instead of + c_common_unsigned_type. + * c-objc-common.h (LANG_HOOKS_UNSIGNED_TYPE): Remove. + * c-typeck.c (convert_for_assignment): Use unsigned_type_for instead of + c_common_unsigned_type. + * convert.c (convert_to_integer): Use unsigned_type_for instead of + lang_hooks.types.unsigned_type. + * expmed.c (make_tree): Use unsigned_type_for instead of + lang_hooks.types.unsigned_type. + * fold-const.c (fold_negate_expr): Use unsigned_type_for instead of + lang_hooks.types.unsigned_type. + (build_range_check): Likewise. + (fold_unary): Likewise. + (fold_binary): Likewise. + (fold_ternary): Likewise. + * langhooks-def.h (LANG_HOOKS_UNSIGNED_TYPE): Remove. + * langhooks.h (lang_hooks_for_types): Remove unsigned_type. + * tree.c (get_unsigned_type): New. + (unsigned_type_for): Use get_unsigned_type instead of + lang_hooks.types.unsigned_type. + +2007-05-14 Kazu Hirata + + * config/m68k/m68k-protos.h: Rename m68k_interrupt_function_p + to m68k_get_function_kind. Update its prototype. + * config/m68k/m68k.c (m68k_attribute_table): Add an entry for + interrupt_thread. + (m68k_interrupt_function_p): Return enum m68k_function_type + instead of bool. Rename to m68k_get_function_kind. + (m68k_handle_fndecl_attribute): Reject interrupt_thread if the + target is not fido. + (m68k_compute_frame_layout): Don't mark any register for save + if an interrupt_thread attribute is specified. + (m68k_hard_regno_rename_ok): Update a use of + m68k_interrupt_function_p. + * config/m68k/m68k.h (EPILOGUE_USES): Update a use of + m68k_interrupt_function_p. + (m68k_function_type): New. + * config/m68k/m68k.md (*return): Output a 'sleep' instruction + for a function with an interrupt_thread attribute. + * doc/extend.texi: Document the interrupt_thread attribute. + +2007-05-13 Daniel Berlin + + Fix PR tree-optimization/31911 + * tree-ssa-pre.c (phi_translate): Make sure to cache results even + if they didn't change the expression. + +2007-05-13 Zdenek Dvorak + + * tree-scalar-evolution.c (resolve_mixers): Exported. + * tree-scalar-evolution.h (resolve_mixers): Declare. + * tree-data-ref.c (object_analysis, ptr_decl_may_alias_p, + ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p, + record_record_differ_p, record_array_differ_p, array_ptr_differ_p, + base_object_differ_p, base_addr_differ_p, analyze_array_indexes, + init_array_ref, init_pointer_ref, analyze_indirect_ref, + strip_conversion, analyze_offset_expr, address_analysis, + object_analysis, analyze_offset): Removed. + (dr_analyze_innermost, dr_analyze_indices, dr_analyze_alias, + split_constant_offset, canonicalize_base_object_address, + object_address_invariant_in_loop_p, disjoint_objects_p, + dr_may_alias_p, dr_address_invariant_p): New functions. + (create_data_ref): Use dr_analyze_innermost, dr_analyze_indices + and dr_analyze_alias. + (initialize_data_dependence_relation): Use dr_may_alias_p + and object_address_invariant_in_loop_p. + (compute_self_dependence): Handle the case when DDR_ARE_DEPENDENT (ddr) + is chrec_dont_know. + (find_data_references_in_stmt): Restrict the analysis of data references + to the given loop nest. + (find_data_references_in_loop): Made static. Pass loop nest to + find_data_references_in_stmt. + (compute_data_dependences_for_loop): Use DR_VOPS. + (free_data_ref): Free DR_VOPS. + * tree-data-ref.h (struct first_location_in_loop): Replaced by ... + (struct innermost_loop_behavior): ... new. + (struct base_object_info): Replaced by ... + (struct indices): ... new. + (struct dr_alias): New. + (enum data_ref_type): Removed. + (struct data_reference): Consist of struct innermost_loop_behavior, + struct indices and struct dr_alias. + (DR_SET_ACCESS_FNS, DR_FREE_ACCESS_FNS): Removed. + (DR_MEMTAG): Renamed to ... + (DR_SYMBOL_TAG): ... this. + (find_data_references_in_loop): Declaration removed. + * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use DR_INIT + instead of DR_OFFSET_MISALIGNMENT. DR_ALIGNED_TO is never NULL. + (vect_analyze_data_refs): Use DR_SYMBOL_TAG instead of DR_MEMTAG. + * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto. + +2007-05-13 Revital Eres + + * tree-ssa-dse.c (get_use_of_stmt_lhs): New function + which walks virtual def-use chains to find redundant stores. + (dse_optimize_stmt): Call it. + +2007-05-12 Steven Bosscher + + * gcse.c (gcse_main): Do jump bypassing in CPROP2. + * passes.c (init_optimization_passes): Move pass_jump_bypass + after loop2. + + * basic-block.h (bb_has_eh_pred): Fix style issue. + +2007-05-12 Steven Bosscher + + PR rtl-optimization/31848 + * loop-invariant.c (move_invariant_reg): If we move an insn + with a REG_EQUAL note, and that insn is not always executed, + remove the REG_EQUAL note. + +2007-05-12 Richard Guenther + + PR tree-optimization/31797 + * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not + propagate into a stmt that has volatile ops. + +2007-05-12 Richard Sandiford + + * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix). + (gcc_tooldir): Likewise. + * configure: Regenerate. + * Makefile.in (libsubdir_to_prefix): New variable, based on the + old configure.ac gcc_tooldir setting. + (prefix_to_exec_prefix): New variable. + (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix) + rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX. + +2007-05-11 Silvius Rus + + * Makefile.in (OBJS-common): Add tree-ssa-alias-warnings.o. + * c-common.c (strict_aliasing_warning): Modify -Wstrict-aliasing logic. + * c-common.h (strict_aliasing_warning): Change return type. + * c-opts.c (c_common_handle_option): Add call to set_Wstrict_aliasing. + * c-typeck.c (build_indirect_ref): Add call to strict_aliasing_warning. + (build_c_cast): Condition call to strict_aliasing_warning. + * doc/invoke.texi: Update description of -Wstrict-aliasing[=n]. + * flags.h (set_Wstrict_aliasing): Declare. + * opts.c (set_Wstrict_alising): Define, add call to. + * tree-flow.h (strict_aliasing_warning_backend): Declare. + * tree-ssa-alias-warnings.c: New file. + * tree-ssa-alias.c (compute_may_aliases): Add call to + strict_aliasing_warning_backend. + +2007-05-11 Zdenek Dvorak + + * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops): + Use loop_depth and loop_outer accessor functions. + * tree-ssa-loop-im.c (outermost_invariant_loop, set_level, + determine_invariantness_stmt, move_computations_stmt): Ditto. + * cfgloopmanip.c (fix_bb_placement, fix_loop_placement, remove_path, + add_loop, loopify, unloop, fix_loop_structure): Ditto. + * tree-ssa-loop-manip.c (find_uses_to_rename_use): Ditto. + * tree-scalar-evolution.c (interpret_loop_phi, + compute_scalar_evolution_in_loop, analyze_scalar_evolution_in_loop, + instantiate_parameters_1, scev_const_prop): Ditto. + * cfghooks.c (make_forwarder_block): Ditto. + * cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto. + * modulo-sched.c (loop_canon_p): Ditto. + * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg, + slpeel_can_duplicate_loop_p): Ditto. + * lambda-code.c (invariant_in_loop_and_outer_loops): Ditto. + * tree-cfg.c (tree_duplicate_sese_region): Ditto. + * cfgloop.c (flow_loop_dump, flow_loop_nodes_find, rescan_loop_exit, + cancel_loop, verify_loop_structure): Ditto. + (flow_loop_nested_p, superloop_at_depth, flow_loop_free, + add_bb_to_loop, remove_bb_from_loops, find_common_loop): Use the + superloops vector instead of "pred" array. + (establish_preds): Take father loop as an argument. Initialize the + superloops vector. + (flow_loop_tree_node_add): Pass father loop to establish_preds. Do not + initialize loop->outer. + (flow_loop_tree_node_remove): Truncate the superloops vector. + * cfgloop.h (struct loop): Removed field "outer", fields "depth" and + "pred" merged to "superloops" vector. + (loop_depth, loop_outer): New. + (fel_init): Use loop_outer. + +2007-05-11 Jan Hubicka + + * cgraphunit.c: Include gt-cgraphunit.h + (static_ctors, static_dtors): New static vars. + (record_cdtor_fn, build_cdtor, cgraph_build_cdtor_fns): New functions, + based on implementation in c-common.c + (cgraph_finalize_function): Call record_cdtor_fn. + (cgraph_optimize): Call cgraph_build_cdtor_fns. + * decl.c (finish_function): Do not call c_record_cdtor_fn. + (c_write_global_declarations): Do not call c_build_cdtor_fns. + * c-common.c (static_ctors, static_dtors, c_record_cdtor_fn, + build_cdtor, c_build_cdtor_fns): Remove. + * c-common.h (static_ctors, static_dtors, c_record_cdtor_fn, + c_build_cdtor_fns): Remove prototype. + +2007-05-11 Paolo Carlini + + PR other/31852 + * builtin-types.def: Add BT_FN_PTR_CONST_PTR_INT_SIZE. + * builtins.def: Add BUILT_IN_MEMCHR, use the latter. + * builtins.c (fold_builtin_memchr): New. + (expand_builtin_memchr): Call the latter. + (expand_builtin, fold_builtin_3): Deal with BUILT_IN_MEMCHR. + * doc/extend.texi ([Other built-in functions provided by GCC]): + Document memchr. + +2007-05-11 Andreas Krebbel + + * config/s390/s390.md (GPR0_REGNUM, FPR0_REGNUM, FPR2_REGNUM, + PFPO_CONVERT, PFPO_OP_TYPE_SF, PFPO_OP_TYPE_DF, PFPO_OP_TYPE_TF, + PFPO_OP_TYPE_SD, PFPO_OP_TYPE_DD, PFPO_OP_TYPE_TD, PFPO_OP0_TYPE_SHIFT, + PFPO_OP1_TYPE_SHIFT): Constants added. + (DFP_ALL): Mode macro defined. + ("*trunc2", "*trunc2", + "*extend2", "*extend2"): + Insn definitions added. + ("trunc2", "trunc2", + "extend2", "extend2"): + Expanders added. + +2007-05-10 Zdenek Dvorak + + PR tree-optimization/31885 + * tree-chrec.c (chrec_contains_undetermined): Do not consider NULL_TREE + to be undetermined. + (automatically_generated_chrec_p): Return false for NULL. + +2007-05-08 Bernd Schmidt + + * config/bfin/bfin.h (MOVE_RATIO): Define. + +2007-05-10 Richard Sandiford + + * config.gcc (sparc-wrs-vxworks): New target. + * config/sparc/vxworks.h, config/sparc/t-vxworks: New files. + * config/sparc/sparc-protos.h (sparc_emit_call_insn): Declare. + * config/sparc/sparc.h: Include vxworks-dummy.h. + (PRINT_OPERAND_ADDRESS): Extend SYMBOL_REF handling to + include LABEL_REFs too. + * config/sparc/sparc.c (sparc_expand_move): Don't assume that + _GLOBAL_OFFSET_TABLE_ - label_ref is a link-time constant on + VxWorks. + (legitimize_pic_address): Handle LABEL_REFs like SYMBOL_REFs + on VxWorks. + (load_pic_register): Use gen_vxworks_load_got for VxWorks. + (sparc_emit_call_insn): New function. + (sparc_function_ok_for_sibcall): Restrict sibcalls to locally-binding + functions when generating VxWorks PIC. + * config/sparc/sparc.md (vxworks_load_got): New pattern. + (call, call_value): Use sparc_emit_call_insn instead of + emit_call_insn. + +2007-05-09 Bob Wilson + + * config/xtensa/xtensa.c (xtensa_output_literal): Don't use #if. + +2007-05-09 Bob Wilson + + * config/xtensa/xtensa.c (xtensa_output_literal): Mask out high bits + for floating-point values if HOST_BITS_PER_LONG > 32. Use split_double + instead of operand_subword. + +2007-05-08 Bernd Schmidt + + * config/bfin/bfin.h (LOCAL_ALIGNMENT): Define. + * config/bfin/bfin.c (bfin_local_alignment): New function. + * config/bfin/bfin-protos.h (bfin_local_alignment): Declare it. + +2007-05-08 Chao-ying Fu + + * doc/md.texi (msub@var{m}@var{n}4, usub@var{m}@var{n}4): Document. + * optabs.h (OTI_smsub_widen, OTI_umsub_widen): New optab_indexes. + (smsub_widen_optab, umsub_widen_optab): Define. + * optabs.c (init_optabs): Initialize smsub_widen_optab and + umsub_widen_optab. + * genopinit.c (optabs): Fill in smsub_widen_optab and + umsub_widen_optab. + * expr.c (expand_expr_real_1): Try to use smsub_widen_optab + and umsub_widen_optab to implement multiply-subtract sequences. + * config/mips/mips.md (*msac_di): Rename to... + (msubsidi4): ...this. Extend condition to include + GENERATE_MADD_MSUB and TARGET_DSPR2. Change the constraint + of operand 0 to "ka" and use the three-operand form of msub + for TARGET_DSPR2. + * config/mips/mips-dspr2.md (mips_msub, mips_msubu): Convert + to define_expands. + +2007-05-08 Kaz Kojima + + PR rtl-optimization/28011 + * reload.c (push_reload): Set dont_share if IN appears in OUT + also when IN is a PLUS rtx. + (reg_overlap_mentioned_for_reload_p): Return true if X and IN + are same PLUS rtx. + +2007-05-08 Kazu Hirata + + * emit-rtl.c (unshare_all_rtl_1): Don't copy DECL_RTL. Don't + call unshare_all_decls. + (unshare_all_rtl): Adjust the call to unshare_all_rtl_1. + (unshare_all_decls): Remove. + +2007-05-08 Simon Martin + + PR 31847 + * tree-dump.c (dump_options): Don't use TDF_DIAGNOSTIC in "*-all" tree + dumps. + +2007-05-08 Sandra Loosemore + Nigel Stephens + + * config/mips/mips.h (MAX_FPRS_PER_FMT): Renamed from FP_INC. + Update comments and all uses. + (MIN_FPRS_PER_FMT): Define. + * config/mips/mips.c (function_arg): Fix to correctly handle + the -mips32r2 -mfp64 -mabi=32 case. + (override_options): Enable use of odd-numbered registers for + SFmode values on MIPS32. + (mips_save_reg_p): Save whole floating-point register pair if + either half is used. + (compute_frame_size): Fix comment. + +2007-05-08 Jie Zhang + + * config/bfin/bfin-protos.h (bfin_expand_epilogue): Add a third + argument of type bool. + * config/bfin/bfin.c (add_to_reg): Add epilogue_p as a fourth + argument. Safely select temporary P register according to it. + (do_link): Change call site of add_to_reg accordingly. + (do_unlink): Add epilogue_p as a fourth argument and pass it + to add_to_reg. + (expand_interrupt_handler_epilogue): Change call of do_unlink + accordingly. + (bfin_expand_prologue): Add a third argument sibcall_p. + * config/bfin/bfin.md (epilogue): Change call of + bfin_expand_epilogue accordingly. + (sibcall_epilogue): Likewise. + (eh_return_internal): Likewise. + + * config/bfin/bfin-protos.h (enum bfin_cpu): Add + BFIN_CPU_BF534, BFIN_CPU_BF536 and BFIN_CPU_BF561. + * config/bfin/bfin.c (bfin_handle_option): Handle + -mcpu=bf534, -mcpu=bf536 and -mcpu=bf561. + * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): + Support bf534, bf536 and bf561. + * doc/invoke.texi (Blackfin Options): Document -mcpu and -msim. + +2007-05-08 Uros Bizjak + + PR target/31854 + * config/i386/i386.c (ix86_function_regparm): Process local + functions only when TREE_CODE (decl) equals FUNCTION_DECL. + +2007-05-07 Mike Stump + + * doc/invoke.texi (Warning Options): Document that -Wempty-body + also checks for and while statements in C++. + +2007-05-07 Nathan Froyd + + * gcc.c (at_file_supplied): New variable. + (main): Set it if we expanded argv. + (do_spec_1): Pass an @-file to the linker if we were called with + an @-file argument and HAVE_GNU_LD. + * collect2.c (at_file_supplied): New variable. + (response_file): New variable. + (collect_exit): Unlink response_file if necessary. + (handler): Likewise. + (do_wait): Likewise. + (main): Set at_file_supplied if we expanded argv. + (collect_execute): Pass an @-file to subprocesses if we were called + with an @-file argument. + * configure.ac: Add define for HAVE_GNU_LD. + * configure: Regenerate. + * config.in: Regenerate. + +2007-05-07 Naveen.H.S + + * config/m32c/muldiv.md (mulhisi3_c): Limit the mode of the 2nd + operand to HI mode. + (mulsi3): New. + (divsi3): New. + (udivsi3): New. + +2007-05-07 Jayant Sonar + + * config/m32c/m32c.c (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define. + (TARGET_ENCODE_SECTION_INFO): Re-define. + (m32c_encode_section_info): New + (function_vector_handler): New + (current_function_special_page_vector): New + (m32c_special_page_vector_p): New. + * config/m32c/m32c-protos.h (m32c_special_page_vector_p): + Prototype. + * config/m32c/jump.md: Added instruction JSRS for functions + with attribute "function_vector". + * doc/extend.texi (function_vector): Added description + for M16C, M32C targets. + +2007-05-07 DJ Delorie + + PR 31794 + * config/m32c/shift.md (ashlpsi3_i, ashrpsi3_i, ashlpsi3, + ashrpsi3, lshrpsi3): Update shift count constraint. + +2007-05-07 Danny Smith + Nathan Froyd + + PR 22133 + * c-incpath.c (add_path): Strip trailing path separators. + +2007-05-07 Eric Botcazou + + * tree-ssa-dom.c (tree_ssa_dominator_optimize): Reset cfg_altered. + Free dominance info before purging EH edges. + (eliminate_degenerate_phis): Likewise. + (propagate_rhs_into_lhs): Set cfg_altered to true instead of 1. + +2007-05-07 Jan Hubicka + + * gimplify.c (gimplify_expr): Do not crash when folding + (void *)(int)&a + 4. + +2007-05-07 Francois-Xavier Coudert + + PR driver/31694 + * c-opts.c (lang_fortran): Make it non static. + * c-common.h (lang_fortran): New prototype. + * c-cppbuiltin.c (c_cpp_builtins): Create a __GFORTRAN__ if the + -lang-fortran option was passed by the driver. + +2007-05-06 Eric Botcazou + + * timevar.c (timevar_print): Test ENABLE_ASSERT_CHECKING instead + of ASSERT_CHECKING. Tweak message. + +2007-05-06 Revital Eres + + PR 30957 + * loop-unroll.c (insert_var_expansion_initialization): + Initialize the expansions with -zero instead of +zero. + +2007-05-05 Aurelien Jarno + + * config/pa/pa.md: Split tgd_load, tld_load and tie_load + into pic and non-pic versions. Mark r19 as used for + tgd_load_pic, tld_load_pic and tie_load_pic. Mark r27 as used + for tgd_load, tld_load and tie_load . + * config/pa/pa.c (legitimize_tls_address): Emit pic or non-pic + version of tgd_load, tld_load and tie_load depending on the + value of flag_pic. + +2007-05-04 Ulrich Drepper + Jakub Jelinek + + * crtstuff.c (HIDDEN_DTOR_LIST_END): New macro. + (__do_global_dtors_aux): Use more paranoid loop to run + destructors if HIDDEN_DTOR_LIST_END. + (__DTOR_END__): Export as a hidden symbol when HIDDEN_DTOR_LIST_END. + +2007-05-04 Jakub Jelinek + + * varasm.c (align_variable): Don't increase alignment for + DECL_THREAD_LOCAL_P variables above BITS_PER_WORD through + DATA_ALIGNMENT or CONSTANT_ALIGNMENT. + +2007-05-04 Josh Conner + + * basic-block.h (cdi_direction): Assign values to all enumeration + constants. + (dom_computed): Remove. + (dom_info_state): New. + (set_dom_info_availability): New. + * tree-ssa-loop-im.c (determine_invariantness): Initialize + walk_data.dom_direction. + * cfghooks.c (delete_basic_block): Use dom_info_available_p() + instead of dom_computed[]. + (split_edge): Likewise. + (create_basic_block): Likewise. + (merge_blocks): Likewise. + * ifcvt.c (find_if_header): Likewise. + * tree-cfgcleanup.c (cleanup_tree_cfg): Likewise. + * tree-ssa-dce.c (remove_dead_stmt): Likewise. + * tree-ssa.c (verify_ssa): Likewise. + * tree-cfg.c (tree_verify_flow_info): Likewise. + (remove_edge_and_dominated_blocks): Likewise. + * dominance.c (dom_computed): Make static. + (calc_dfs_tree_nonrec): Change third param to a bool. + (calc_dfs_tree): Change second param to a bool. + (calc_idioms): Change second param to a bool. Use + dom_convert_dir_to_idx. + (init_dom_info): Validate dir before using. + (dom_convert_dir_to_idx): New. + (calculate_dominance_info): Use dom_convert_dir_to_idx. New + variable 'reverse' used for calling calc_dfs_tree and calc_idoms. + (free_dominance_info): Use dom_convert_dir_to_idx. + (get_immediate_dominator): Likewise. + (set_immediate_dominator): Likewise. + (get_dominated_by): Likewise. + (redirect_immediate_dominators): Likewise. + (nearest_common_denominator): Likewise. + (dominated_by_p): Likewise. + (bb_dom_dfs_in): Likewise. + (bb_dom_dfs_out): Likewise. + (recount_dominator): Likewise. + (iterate_fix_dominators): Likewise. + (add_to_dominance_info): Likewise. + (delete_from_dominance_info): Likewise. + (first_dom_son): Likewise. + (next_dom_son): Likewise. + (dom_info_available_p): Likewise. + (dom_info_state): New. + (set_dom_info_availability): New. + +2007-05-04 Andreas Krebbel + + * config/s390/s390.md ("fix_truncdi2", "fix_truncsi2"): + Expander removed. + ("fix_trunc2"): Expander added. + +2007-05-04 Bob Wilson + + * config/xtensa/xtensa.md (adddi3, adddi_carry): Delete. + (subdi3, subdi_carry): Delete. + +2007-05-04 Jan Hubicka + Richard Guenther + + * opts.c (decode_options): Do not fiddle with inlining + parameters in case of optimizing for size. + * ipa-inline.c (cgraph_decide_recursive_inlining): When optimizing + for size do nothing. + (cgraph_decide_inlining_of_small_function): When optimizing for + size never inline functions increasing caller size. + (cgraph_early_inlining): Inline for size when optimizing for size. + +2007-04-18 Bernd Schmidt + + * config/bfin/bfin.md (di3): Now a define_expand which expands + logical operations piecewise. + (di_zesidi_di, di_sesidi_di, negdi2, one_cmpldi2, + zero_extendsidi2, subdi_di_zesidi, subdi_zesidi_di, subdi_di_sesidi, + subdi_sesidi_di): Delete. + (add_with_carry): Produce carry in CC instead of a DREG to shorten + the generated sequence. Allow three-reg add in constraints. Rewrite + the rtl expression for carry to avoid zero_extend of a constant. + (sub_with_carry): New pattern. + (adddi3, subdi3): Change into define_expand. For subtract, generate a + different sequence not involving jumps. + (notbi): Now a named pattern. + +2007-05-04 Bradley Lucier + + * doc/invoke.texi (i386 and x86-64 Options) [-mpc32, -mpc64, -mpc80]: + Add the note about a significant loss of accuracy of some + mathematical routines when these options are used. + +2007-05-04 Maxim Kuvyrkov + + * haifa-sched.c (rtx_vec_t): New typedef. + (contributes_to_priority_p): Extract piece of priority () into new + static function. + (priority): Use the function. Add assertion. + (rank_for_schedule, set_priorities): Add assertion to check that + insn's priority is initialized. + (clear_priorities, calc_priorities): Change signature. Make it update + all relevant insns. Update all callers ('add_to_speculative_block ()' + and 'create_block_check_twin ()'). + * sched-int.h (struct haifa_insn_data): Remove field 'priority_known'. + Add new field 'priority_status'. + (INSN_PRIORITY_STATUS): New macro. + (INSN_PRIORITY_KNOWN): Change to use INSN_PRIORITY_STATUS. + +2007-05-04 Maxim Kuvyrkov + + * sched-ebb.c (debug_ebb_dependencies): New static function. + (init_ready_list): Use it. + + * sched-rgn.c (debug_dependencies): Split into 'debug_dependencies ()' + with changed signature and 'debug_rgn_dependencies ()'. + (debug_rgn_dependencies): New static function. + (init_ready_list): Use it. + + * sched-int.h (debug_dependencies): Declare. + +2007-05-04 Andreas Krebbel + + * libgcc-std.ver (__ffssi2): Added to GCC_4.3.0 section. + +2007-05-04 Dirk Mueller + + * c.opt(Wmain,ffreestanding): Enable for C++,ObjC++. + +2007-05-03 Jan Hubicka + + * fold-const.c (fold_unary): Convert (T1)(X op Y) into ((T1)X op (T1)Y), + for pointer type in more cases than before. + + * gimplify.c (gimplify_expr): Fold (void *)&a + 4. + + * tree-object-size.c (plus_expr_object_size): When operand size is + unknown, return unknown. + +2007-05-03 Dirk Mueller + + * doc/invoke.texi (-m386,-m486,-mpentium,-mpentiumpro): Remove. + + * config/i386/i386.h (CC1_CPU_SPEC): Remove handling for deprecated + options. + + * config/i386/i386.opt (m386,m486,mpentium,mpentiumpro): Remove. + +2007-05-03 Janis Johnson + + * doc/sourcebuild.texi (Test Directives) Clarify dg-excess-errors. + +2007-05-03 Joseph Myers + + * config/soft-fp/double.h, config/soft-fp/extended.h, + config/soft-fp/floatundidf.c, config/soft-fp/floatundisf.c, + config/soft-fp/floatunsidf.c, config/soft-fp/floatunsisf.c, + config/soft-fp/op-2.h, config/soft-fp/op-4.h, + config/soft-fp/op-common.h, config/soft-fp/quad.h: Update from + glibc CVS. + 2007-05-03 Ian Lance Taylor - * config/rs6000/rs6000.c (rs6000_override_options): Don't se + * config/rs6000/rs6000.c (rs6000_override_options): Don't set MASK_PPC_GFXOPT for 8540 or 8548. 2007-05-03 Uros Bizjak @@ -31,8 +1021,8 @@ PR tree-optimization/31699 * tree-vect-analyze.c (vect_update_misalignment_for_peel): Remove wrong code. - (vect_enhance_data_refs_alignment): Compute peel amount using - TYPE_VECTOR_SUBPARTS instead of vf. + (vect_enhance_data_refs_alignment): Compute peel amount using + TYPE_VECTOR_SUBPARTS instead of vf. * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Likewise. 2007-05-02 Brooks Moses @@ -248,7 +1238,7 @@ PR middle-end/22156 Temporarily revert: 2007-04-06 Andreas Tobler - * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift. + * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift. 2007-04-05 Alexandre Oliva * tree-sra.c (try_instantiate_multiple_fields): Needlessly initialize align to silence bogus warning. @@ -460,17 +1450,17 @@ PR tree-optimization/30965 PR tree-optimization/30978 * Makefile.in (tree-ssa-forwprop.o): Depend on $(FLAGS_H). - * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove. - (find_equivalent_equality_comparison): Likewise. - (simplify_cond): Likewise. - (get_prop_source_stmt): New helper. - (get_prop_dest_stmt): Likewise. + * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove. + (find_equivalent_equality_comparison): Likewise. + (simplify_cond): Likewise. + (get_prop_source_stmt): New helper. + (get_prop_dest_stmt): Likewise. (can_propagate_from): Likewise. (remove_prop_source_from_use): Likewise. - (combine_cond_expr_cond): Likewise. - (forward_propagate_comparison): New function. - (forward_propagate_into_cond): Rewrite to use fold for - tree combining. + (combine_cond_expr_cond): Likewise. + (forward_propagate_comparison): New function. + (forward_propagate_into_cond): Rewrite to use fold for + tree combining. (tree_ssa_forward_propagate_single_use_vars): Call forward_propagate_comparison to propagate comparisons.