+007-01-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * c-decl.c (pop_scope): Replace warnings with call to
+ warn_for_unused_label.
+ * c-common.h (warn_for_unused_label): Declare.
+ * c-common.c (warn_for_unused_label): Define.
+
+2007-01-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * tree-optimize.c (update_inlined_to_pointers): Delete unused
+ function.
+
+2007-01-29 Janis Johnson <janis187@us.ibm.com>
+
+ * Makefile.in (USER_H): Remove decfloat.h.
+ * ginclude/decfloat.h: Delete, moving contents to ...
+ * ginclude/float.h: Add support for decimal floating point,
+ guarded by __STDC_WANT_DEC_FP__.
+
+2007-01-29 Mike Stump <mrs@apple.com>
+
+ * doc/gccint.texi (Top): Rename Loop Representation to Loop
+ Analysis and Representation to resolve case insensitive conflict.
+ * doc/loop.texi (Loop Analysis and Representation): Likewise.
+
+2007-01-28 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree.h (struct tree_memory_tag): Add aliases member.
+ (MTAG_ALIASES): New macro.
+ * tree-ssa-alias.c (alias_bitmap_obstack): New variable.
+ (add_may_alias): Remove pointer-set. Update for may_aliases being
+ a bitmap.
+ (mark_aliases_call_clobbered): Update for may_aliases being a
+ bitmap.
+ (compute_tag_properties): Ditto.
+ (create_partition_for): Ditto.
+ (compute_memory_partitions): Ditto.
+ (dump_may_aliases_for): Ditto.
+ (is_aliased_with): Ditto.
+ (add_may_alias_for_new_tag): Ditto.
+ (rewrite_alias_set_for): Rewrite for may_aliases being a bitmap.
+ (compute_is_aliased): New function.
+ (compute_may_aliases): Call compute_is_aliased).
+ (init_alias_info): Initialize alias_bitmap_obstack.
+ (union_alias_set_into): New function.
+ (compute_flow_sensitive_aliasing): Use union_aliases_into.
+ (have_common_aliases_p): Rewrite to take two bitmaps and use
+ intersection.
+ (compute_flow_insensitive_aliasing): Stop using pointer-sets.
+ Update for bitmaps.
+ (finalize_ref_all_pointers): Update for add_may_alias changes.
+ (new_type_alias): Ditto.
+ * tree-flow-inline.h (may_aliases): Return a bitmap.
+ * tree-dfa.c (dump_variable): Check for MTAG_P'ness.
+ * tree-ssa.c (verify_flow_insensitive_alias_info): Update for
+ may_aliases being a bitmap.
+ * tree-flow.h (struct var_ann_d): Remove may_aliases member.
+ may_aliases now returns a bitmap.
+ * tree-ssa-structalias.c (merge_smts_into): Update for may_aliases
+ being a bitmap.
+ * tree-ssa-operands.c (add_virtual_operand): Update for
+ may_aliases being a bitmap.
+
+2007-01-29 Daniel Berlin <dberlin@dberlin.org>
+
+ PR tree-optimization/30630
+ * tree-ssa-structalias.c (do_complex_constraint): Mark correct
+ variable as changed.
+
+2007-01-29 Simon Martin <simartin@users.sourceforge.net>
+
+ PR c++/28266
+ * gimplify.c (gimplify_target_expr): Make sure that the TARGET_EXPR is
+ expanded only once even if an error occurs.
+
+2007-01-29 Ben Elliston <bje@au.ibm.com>
+
+ * gcov-io.h (__gcov_indirect_call_profiler): Declare.
+ (__gcov_average_profiler): Likewise.
+ (__gcov_ior_profiler): Likewise.
+ (__gcov_merge_ior): Likewise.
+
+2007-01-28 Jan Hubicka <jh@suse.cz>
+
+ * builtins.c (expand_builtin_memset): Fix typo in my last patch.
+ * value-prof.c (stringop_block_profile): Likewise.
+
+2007-01-28 Jan Hubicka <jh@suse.cz>
+
+ * expr.c (emit_block_move_via_movmem, emit_block_move_via_libcall): Add
+ variant handling histograms; add wrapper.
+ (clear_storage_via_libcall): Export.
+ (emit_block_move_hints): Break out from ...; add histograms.
+ (emit_block_move): ... this one.
+ (clear_storage_hints): Break out from ...; add histograms.
+ (clear_storage): ... this one.
+ (set_storage_via_memset): Handle histogram.
+ * expr.h (emit_block_move_via_libcall, emit_block_move_hints): Declare.
+ (clear_storage_hints, clear_storage_via_libcall): Declare.
+ (set_storage_via_setmem): Update prototype.
+ * doc/md.texi (movmem, setmem): Document new arguments.
+
+ * value-prof.c (dump_histogram_value, tree_find_values_to_profile): Add
+ new histograms.
+ (stringop_block_profile): New global function.
+ (tree_stringops_values_to_profile): Profile block size and alignment.
+ * value-prof.h (enum hist_type): add HIST_TYPE_AVERAGE and
+ HIST_TYPE_IOR.
+ (struct profile_hooks): Add gen_average_profiler and gen_ior_profiler.
+ (stringop_block_profile): Declare.
+ * builtins.c: Include value-prof.h.
+ (expand_builtin_memcpy, expand_builtin_memset): Pass block profile.
+ * gcov-ui.h (GCOV_COUNTER_NAMES): Add new counter.
+ (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): New constants.
+ (GCOV_COUNTERS, GCOV_LAST_VALUE_COUNTER): Update.
+ * profile.c (instrument_values): Add new counters.
+ * cfgexpand.c (expand_gimple_basic_block): Propagate histograms to
+ calls.
+ * tree-profile.c (tree_average_profiler_fn, tree_ior_profiler_fn): New.
+ (tree_init_edge_profiler): Build new profilers.
+ (tree_gen_average_profiler, tree_gen_ior_profiler): New.
+ (pass_tree_profile): Add dump.
+ (tree_profile_hooks): Update.
+ * Makefile.in (LIBGCOV): Add new constants.
+ * libgcov.c (__gcov_merge_ior, __gcov_average_profiler,
+ __gcov_ior_profiler): New.
+ * i386.md (movmem/setmem expanders): Add new optional arguments.
+
+2007-01-28 David Edelsohn <edelsohn@gnu.org>
+
+ * doc/md.texi (Standard Pattern Names): Document blockage pattern.
+
+2007-01-28 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-ssa-loop-unswitch.c: Include tree-inline.h.
+ (tree_unswitch_single_loop): Pass eni_size_weights to
+ tree_num_loop_insns.
+ * tree-ssa-loop-manip.c: Include tree-inline.h.
+ (can_unroll_loop_p): Pass eni_size_weights to
+ tree_num_loop_insns.
+ * tree-ssa-loop-ch.c (should_duplicate_loop_header_p):
+ Pass eni_size_weights to estimate_num_insns.
+ * tree.h (init_inline_once): Export.
+ * toplev.c (backend_init): Call init_inline_once.
+ * cgraphunit.c (cgraph_process_new_functions,
+ cgraph_analyze_function): Pass eni_inlining_weights to
+ estimate_num_insns.
+ * ipa-inline.c (compute_inline_parameters): Ditto.
+ * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Pass weights
+ to estimate_num_insns.
+ (try_unroll_loop_completely): Pass eni_size_weights to
+ tree_num_loop_insns.
+ * tree-eh.c (decide_copy_try_finally): Pass eni_size_weights
+ ot estimate_num_insns.
+ * tree-ssa-loop-prefetch.c: Include tree-inline.h.
+ (loop_prefetch_arrays): Pass eni_time_weights to tree_num_loop_insns.
+ * tree-inline.c (eni_inlining_weights, eni_size_weights,
+ eni_time_weights): New variables.
+ (init_inline_once): Initialize them.
+ (struct eni_data): Mew.
+ (estimate_num_insns_1, estimate_num_insns): Use weights.
+ * tree-inline.h (struct eni_weights_d): New.
+ (eni_inlining_weights, eni_size_weights, eni_time_weights): Declare.
+ (estimate_num_insns): Declaration changed.
+ * cfgloop.h (tree_num_loop_insns): Declaration changed.
+ * Makefile.in (tree-ssa-loop-unswitch.o, tree-ssa-loop-prefetch.o,
+ tree-ssa-loop-manip.o): Add TREE_INLINE_H dependency.
+
+2007-01-28 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-data-ref.c (conflict_fn): Assert that the number of affine
+ relations in the conflict function is valid.
+
+2007-01-27 Ian Lance Taylor <iant@google.com>
+
+ * common.opt: Add fstrict-overflow.
+ * opts.c (decode_options): Set flag_strict_overflow if -O2.
+ * flags.h (TYPE_OVERFLOW_WRAPS): Define.
+ (TYPE_OVERFLOW_UNDEFINED): Define.
+ (TYPE_OVERFLOW_TRAPS): Define. This replaces TYPE_TRAP_SIGNED.
+ Replace all uses.
+ * tree.h (TYPE_TRAP_SIGNED): Don't define.
+ * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_UNDEFINED.
+ (fold_negate_expr): Likewise.
+ (make_range): Likewise.
+ (extract_muldiv_1): Likewise.
+ (maybe_canonicalize_comparison): Likewise.
+ (fold_comparison): Likewise.
+ (fold_binary): Likewise.
+ (tree_expr_nonnegative_p): Likewise.
+ (tree_expr_nonzero_p): Likewise.
+ * tree-vrp.c (compare_values): Likewise.
+ (extract_range_from_binary_expr): Likewise.
+ (extract_range_from_unary_expr): Likewise.
+ * tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness):
+ Likewise.
+ (nowrap_type_p): Likewise.
+ * tree-scalar-evolution.c (simple_iv): Likewise.
+ * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_WRAPS.
+ (build_range_check): Likewise.
+ (extract_muldiv_1): Likewise.
+ (fold_comparison): Likewise.
+ * tree-vrp.c (vrp_int_const_binop): Likewise.
+ (extract_range_from_unary_expr): Likewise.
+ * convert.c (convert_to_integer): Likewise.
+ * fold-const.c (fold_negate_expr): Use TYPE_OVERFLOW_TRAPS.
+ (fold_comparison): Likewise.
+ (fold_binary): Likewise.
+ * optabs.c (optab_for_tree_code): Likewise.
+ * tree-vectorizer.c (vect_is_simple_reduction): Likewise.
+ * simplify-rtx.c (simplify_const_relational_operation): Check
+ flag_strict_overflow and flag_trapv.
+ (simplify_const_relational_operation): Likewise.
+ * doc/invoke.texi (Option Summary): Mention -fstrict-overflow.
+ (Optimize Options): Add -fstrict-overflow to -O2 list. Document
+ -fstrict-overflow.
+
+2007-01-27 Roger Sayle <roger@eyesopen.com>
+
+ * tree.c (tree_fold_gcd): Delete.
+ * tree.h (tree_fold_gcd): Remove prototype.
+ * tree-data-ref.c (tree_fold_divides_p): Don't use tree_fold_gcd to
+ test whether one constant integer is a multiple of another. Instead
+ call int_const_binop with TRUNC_MOD_EXPR and test for a zero result.
+ * fold-const.c (multiple_of_p): We've determined both TOP and
+ BOTTOM are integer constants so we can call int_const_binop directly
+ instead of the more generic const_binop.
+
+2007-01-27 Roger Sayle <roger@eyesopen.com>
+
+ * fold-const.c (size_binop): In the fast-paths for X+0, 0+X, X-0 and
+ 1*X check that the constant hasn't overflowed, to preserve the
+ TREE_OVERFLOW bit.
+ (round_up): Provide an efficient implementation when rouding-up an
+ INTEGER_CST to a power-of-two.
+
+2007-01-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/sourcebuild.texi: Add comma for clarity.
+ * doc/extend.texi: Fix some typos.
+ * doc/passes.texi: Likewise.
+ * doc/cppinternals.texi: Likewise.
+ * doc/c-tree.texi: Likewise.
+ * doc/tree-ssa.texi: Likewise.
+ * doc/install.texi: Likewise.
+
+2007-01-27 Jan Hubicka <jh@suse.cz>
+
+ * tree-sra.c (sra_walk_function): Don't rely on aliases being build.
+ (pass_sra): Do not require alias information.
+ * passes.c (init_optimization_passes): Add SRA
+
+2007-01-27 Steven Bosscher <steven@gcc.gnu.org>
+
+ * tracer.c (rest_of_handle_tracer): We already cleaned
+ up the CFG in tracer() so don't do it here again.
+ * cfgcleanup.c (rest_of_handle_jump2): Don't repeat
+ cleanup_cfg here, either. And don't call renumber_insns.
+
+ * cfgrtl.c (rtl_verify_flow_info_1): Don't verify that BB_END
+ and BB_HEAD are in the insn stream here. Instead make sure
+ that BB_INSN is valid on all insns. Also, do check here that
+ there are no pending branch predictions...
+ (rtl_verify_flow_info): ...instead of doing it here. Checks
+ for BB_END and BB_HEAD moved from rtl_verify_flow_info_1 to
+ here.
+
+2007-01-26 Roger Sayle <roger@eyesopen.com>
+
+ * config/i386/i386.c (ix86_swap_binary_operands_p): New helper
+ function to simplify/factorize operand order canonicalization.
+ (ix86_fixup_binary_operands): Reorganize using the above function.
+ (ix86_binary_operator_ok): Likewise.
+
+2007-01-27 Jakub Jelinek <jakub@redhat.com>
+
+ * genattrtab.c (struct attr_value_list, insn_code_values): Move to
+ file scope from optimize_attrs.
+ (simplify_test_exp): If insn_code_values is not NULL, use it to speed
+ up search.
+ (optimize_attrs): Clear insn_code_values after freeing it.
+
+2007-01-26 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-ssa-address.c (create_mem_ref): Remove ", bsi" from
+ a parts.base assignment.
+
+2007-01-26 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-data-ref.c (dump_subscript): Use dump_conflict_function.
+ (compute_subscript_distance, initialize_data_dependence_relation,
+ finalize_ddr_dependent, analyze_ziv_subscript,
+ analyze_siv_subscript_cst_affine,
+ compute_overlap_steps_for_affine_univar,
+ compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
+ analyze_siv_subscript, analyze_miv_subscript,
+ analyze_overlapping_iterations, subscript_dependence_tester_1,
+ compute_self_dependence, free_dependence_relation): Work
+ with affine_fn instead of chrecs.
+ (dump_affine_function, dump_conflict_function, affine_function_equal_p,
+ common_affine_function, affine_function_base,
+ affine_function_constant_p, affine_fn_op, affine_fn_plus,
+ affine_fn_minus, affine_fn_free, conflict_fn_not_known,
+ conflict_fn_no_dependence, free_conflict_function, free_subscripts,
+ conflict_fn, affine_fn_cst, affine_fn_univar): New functions.
+ (all_chrecs_equal_p): Removed.
+ * tree-data-ref.h (affine_fn, conflict_function): New types.
+ (struct subscript): Change type of conflicting_iterations_in_a
+ and conflicting_iterations_in_b.
+
+2007-01-26 Steve Ellcey <sje@cup.hp.com>
+
+ PR other/30182
+ * config/pa/pa.h (TARGET_HPUX_11): New.
+ * config/pa/pa-hpux11.h (TARGET_HPUX_11): New.
+ * config/pa/pa.c (pa_init_builtins): Use TARGET_HPUX_11.
+
+2007-01-26 Daniel Berlin <dberlin@dberlin.org>
+ Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-structalias.c (solve_graph): Handle case
+ we merged the variable to another.
+
+2007-01-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * builtins.c (fold_builtin_1): Treat ccos and ccosh as 'even'
+ functions.
+
+ * fold-const.c (negate_mathfn_p): Treat casin, casinh, catan,
+ catanh, cproj, csin, csinh, ctan and ctanh as 'odd' functions.
+
+2007-01-25 DJ Delorie <dj@redhat.com>
+
+ * config/m32c/m32c.c (m32c_cannot_change_mode_class): We don't
+ allow changes to modes which don't fit in those registers.
+
+ * reload1.c (choose_reload_regs): Check for invalid subregs before
+ computing their locations, not after.
+
+2007-01-25 Geoffrey Keating <geoffk@apple.com>
+
+ PR 25127
+ * config/rs6000/rs6000.c (first_altivec_reg_to_save): On Darwin,
+ save Altivec registers in an eh_return function.
+ (compute_vrsave_mask): Likewise.
+ (rs6000_stack_info): Correct AIX/Darwin stack alignment computation
+ for saving Altivec registers.
+ (rs6000_emit_prologue): Don't allocate stack twice in
+ eh_return function. Correct expected value of altivec_save_offset
+ when using save_world. Describe save of R0 to stack when using
+ save_world. Describe stack pointer adjustment when using
+ save_world. Remove duplicated eh_return parameter register saving.
+ Update sp_offset variable after save_world.
+ * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA): Remove
+ darwin-world.asm.
+ (LIB2FUNCS_EXTRA): Add darwin-world.asm.
+ * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): -m64
+ implies Altivec.
+
+2007-01-25 Steve Ellcey <sje@cup.hp.com>
+
+ * config.gcc (ia64*-*-hpux*): Make posix threads the default.
+
+2007-01-25 Steve Ellcey <sje@cup.hp.com>
+
+ PR other/30182
+ * config/pa/pa.c (pa_init_builtins): Set asm names for finite routines.
+ * config/ia64/ia64.c (ia64_init_builtins): Ditto.
+
+2007-01-25 Richard Guenther <rguenther@suse.de>
+
+ * doc/invoke.texi (-Wcoverage-mismatch): Document.
+ * common.opt (-Wcoverage-mismatch): New warning option.
+ * coverage.c (get_coverage_counts): Ignore coverage mismatch
+ if -Wcoverage-mismatch is given.
+
+2007-01-25 Razya Ladelsky <razya@il.ibm.com>
+
+ * ipa-cp.c (ipcp_insert_stage, ipcp_driver): Support for SSA.
+ (ipcp_driver): Change to static definition.
+ Add dumping of the ifunctions.
+ (constant_val_insert): Remove unused parameter. Support for SSA.
+ (ipcp_propagate_const): Support for SSA.
+ (ipcp_profile_bb_print): Print only analyzed nodes.
+ (ipcp_replace_map_create): Remove support for Fortran constant
+ for now.
+ * ipa-prop.c (ipa_method_modify_stmt,
+ ipa_callsite_compute_param): Support for SSA.
+ * ipa-prop.h (ipcp_driver): Remove declaration.
+ (IS_VALID_TREE_MAP_INDEX): Add define.
+
+2007-01-24 Geoffrey Keating <geoffk@apple.com>
+
+ * unwind-dw2.c (execute_stack_op): Handle DW_OP_swap.
+
+2007-01-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ PR middle-end/30447
+ * builtins.c (fold_builtin_cabs): Use MPFR to evaluate a
+ constant argument to cabs and do it without checking for
+ -funsafe-math-optimizations.
+
+2007-01-24 Douglas Gregor <dgregor@osl.iu.edu>
+
+ * c-common.h (RID_FIRST_CXX0X): New.
+ (RID_LAST_CXX0X): New.
+ * c-opts.c (c_common_handle_option): -Wc++0x-compat is triggered
+ by -Wall.
+ * c.opt (Wc++0x-compat): New.
+ * doc/invoke.texi (-Wc++0x-compat): Document.
+
+2007-01-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * builtins.c (fold_builtin_carg): New.
+ (fold_builtin_1): Use it.
+
+2007-01-24 Jan Hubicka <jh@suse.cz>
+
+ * ipa-inline.c (cgraph_decide_inlining): Initialize initial_insns.
+
+ * ipa-inline.c (initial_insns, max_insns): Delete.
+ (compute_max_insns): New function.
+ (cgraph_decide_inlining_of_small_function): Use it; take minimal amount
+ of insns as base for code growth.
+ (cgraph_decide_inlining): Make initial_insns local; do not compute
+ max_insns.
+ * params.def (PARAM_INLINE_UNIT_GROWTH): Set to 60.
+ * doc/invoke.texi (inline-unit-growth): Update docs.
+
+2007-01-24 Jakub Jelinek <jakub@redhat.com>
+
+ * config/i386/i386.h (x86_cmpxchg16b): Remove const.
+ (TARGET_CMPXCHG16B): Define to x86_cmpxchg16b.
+ * config/i386/i386.c (x86_cmpxchg16b): Remove const.
+ (override_options): Add PTA_CX16 flag. Set x86_cmpxchg16b
+ for CPUs that have PTA_CX16 set.
+
+ PR middle-end/27416
+ * gimplify.c (omp_check_private): New function.
+ (gimplify_scan_omp_clauses): Use it for
+ firstprivate/lastprivate/reduction.
+
+ PR middle-end/30494
+ * gimplify.c (omp_add_variable): Don't call omp_notice_variable
+ on TYPE_SIZE_UNIT for GOVD_LOCAL VLAs.
+
+ PR middle-end/30421
+ * omp-low.c (lower_omp_for_lastprivate): Add dlist argument.
+ If lower_lastprivate_clauses emits some statements, append them
+ to dlist rather than body_p and to body_p append an initializer.
+ (lower_omp_for): Adjust caller.
+
+2007-01-24 Steve Ellcey <sje@cup.hp.com>
+
+ * target.h (globalize_decl_name): New.
+ * target-def.h (TARGET_ASM_GLOBALIZE_DECL_NAME): New.
+ * output.h (default_globalize_decl_name): New.
+ * varasm.c (asm_output_bss): Use globalize_decl_name instead of
+ globalize_label.
+ (globalize_decl): Ditto.
+ (default_globalize_decl_name): New.
+ * config/ia64/ia64.c (ia64_globalize_decl_name): New.
+ (ia64_handle_version_id_attribute): New.
+ (TARGET_ASM_GLOBALIZE_DECL_NAME): New.
+ (ia64_asm_output_external): Use globalize_decl_name instead
+ of globalize_label.
+ * doc/extend.texi (version_id): New pragma.
+ * doc/tm.texi (ARGET_ASM_GLOBALIZE_DECL_NAME): New target hook.
+
+2007-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * unwind-dw2-fde.c (get_cie_encoding): Replaced _Unwind_Word with
+ _uleb128_t and _Unwind_SWord with _sleb128_t.
+ * unwind-dw2.c (extract_cie_info, execute_stack_op, execute_cfa_program,
+ uw_frame_state_for, uw_update_context_1): Likewise.
+ * unwind-c.c (parse_lsda_header, PERSONALITY_FUNCTION): Likewise.
+ * unwind-pe.h (read_uleb128, read_sleb128,
+ read_encoded_value_with_base): Likewise.
+ * unwind-generic.h: Define _sleb128_t and _uleb128_t types.
+
+2007-01-24 Richard Guenther <rguenther@suse.de>
+
+ * builtins.c (expand_builtin_cexpi): Get the fndecl
+ for cexp in the correct way.
+
+2007-01-24 Jan Hubicka <jh@suse.cz>
+
+ * tree-ssa-dce.c (eliminate_unnecesary_stmts): Remove dead LHS of calls.
+
+2007-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * c-cppbuiltin.c (builtin_define_type_sizeof): New function.
+ (c_cpp_builtins): New builtin macros: __SIZEOF_INT__, __SIZEOF_LONG__,
+ __SIZEOF_LONG_LONG__, __SIZEOF_SHORT__, __SIZEOF_POINTER__,
+ __SIZEOF_FLOAT__, __SIZEOF_DOUBLE__, __SIZEOF_LONG_DOUBLE__,
+ __SIZEOF_SIZE_T__, __SIZEOF_WCHAR_T__, __SIZEOF_WINT_T__ and
+ __SIZEOF_PTRDIFF_T__.
+ * doc/cpp.texi: Documentation for the new builtin macros added.
+
+2007-01-24 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (tanxf2, tan<mode>2, atan<mode>2, log<mode>2,
+ log10<mode>2, log2<mode>2, expxf2, exp10xf2, exp2xf2): Use op2
+ instead of operands[2] to avoid access past the end of array.
+
+2007-01-24 Richard Sandiford <richard@codesourcery.com>
+
+ * reload1.c (emit_reload_insns): Pass the reload register
+ for a non-spill output reload through forget_old_reloads_1.
+
+2007-01-23 Joseph Myers <joseph@codesourcery.com>
+
+ * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
+ _SOFT_DOUBLE if doubles use software floating-point.
+ * config/rs6000/libgcc-ppc-glibc.ver: Export additional long
+ double functions if _SOFT_DOUBLE, not _SOFT_FLOAT.
+ * config/rs6000/darwin-ldouble.c: Also compile functions for
+ hard-float without FPRs. Use fmsub function for all __NO_FPRS__
+ cases. Compile extra functions if _SOFT_DOUBLE, not _SOFT_FLOAT.
+ * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Remove
+ commented-out long double override.
+ (CPP_LONGDOUBLE_DEFAULT_SPEC): Likewise.
+ * config/rs6000/eabispe.h: Likewise.
+ * config/rs6000/rs6000.c (rs6000_override_options): Don't override
+ long double for non-SPE.
+ (rs6000_handle_option): Likewise.
+ (invalid_e500_subreg): Disallow more subregs involding DImode,
+ DFmode, TImode or TFmode.
+ (rs6000_legitimate_offset_address_p): Check TFmode offsets for
+ E500 double.
+ (legitimate_lo_sum_address_p): Also check for TFmode for E500
+ double.
+ (rs6000_legitimize_address): Also handle TFmode for E500 double.
+ (rs6000_legitimize_reload_address): Also handle TFmode for E500
+ double.
+ (rs6000_legitimate_address): Also check for TFmode for E500
+ double.
+ (rs6000_emit_move): Use DFmode subregs of TFmode for E500 double.
+ (spe_build_register_parallel): Handle TFmode and TCmode.
+ (rs6000_spe_function_arg): Handle TFmode and TCmode for E500
+ double.
+ (function_arg): Handle TFmode and TCmode for E500 double.
+ (rs6000_init_libfuncs): Initialize extra libfuncs for soft double
+ in general.
+ (print_operand): Handle TFmode and TImode for %y.
+ (rs6000_generate_compare): Handle TFmode comparisons for E500
+ double.
+ (spe_func_has_64bit_regs_p): Check for TFmode for E500 double.
+ (rs6000_function_value): Handle TFmode and TCmode for E500 double.
+ (rs6000_libcall_value): Handle TFmode and TCmode for E500 double.
+ * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Check for
+ TFmode for E500 double.
+ * config/rs6000/rs6000.md (FP): Allow TF for E500 double.
+ (floatsidf2): Enable for E500 double.
+ (movtf_softfloat): Use rs6000_nonimmediate_operand.
+ (extenddftf2): Change to extenddftf2_fprs.
+ (extenddftf2): Call gen_spe_extenddftf2 or gen_extenddftf2_fprs
+ depending on TARGET_E500_DOUBLE.
+ (extendsftf2): Enable for E500 double.
+ (trunctfdf2): Enable for E500 double.
+ (trunctfsf2): Change to trunctfsf2_fprs.
+ (trunctfsf2): Call gen_spe_trunctfsf2 or gen_trunctfsf2_fprs
+ depending on TARGET_E500_DOUBLE.
+ (floatsitf2): Enable for E500 double.
+ (fix_trunctfsi2): Change to fix_trunctfsi2_fprs.
+ (fix_trunctfsi2): Call gen_spe_fix_trunctfsi2 or
+ gen_fix_trunctfsi2_fprs depending on TARGET_E500_DOUBLE.
+ (negtf2): Change to negtf2_internal.
+ (negtf2): New expander.
+ (abstf2): Enable for E500 double. Call gen_spe_abstf2_tst,
+ gen_spe_abstf2_cmp or gen_abstf2_internal depending on
+ TARGET_E500_DOUBLE and flag_unsafe_math_optimizations.
+ (movdi_internal32): Use rs6000_nonimmediate_operand.
+ (unnamed splitter): Likewise.
+ * config/rs6000/spe.md (CMPTFEQ_GPR, TSTTFEQ_GPR, CMPTFGT_GPR,
+ TSTTFGT_GPR, CMPTFLT_GPR, TSTTFLT_GPR): New unspecs.
+ (SPE64TF, DITI): New mode macros.
+ (frob_df_di): Change to frob_<SPE64:mode>_<DITI:mode>; allow more
+ modes.
+ (frob_tf_ti): New.
+ (frob_<mode>_di_2): New.
+ (frob_tf_di_8_2): New.
+ (frob_di_df): Change to frob_di_<mode>; allow more modes.
+ (frob_ti_tf): New.
+ (frob_di_df_2): Change to frob_<DITI:mode>_<SPE64:mode>_2; allow
+ more modes.
+ (frob_ti_<mode>_8_2): New.
+ (frob_ti_tf_2): New.
+ (mov_si<mode>_e500_subreg0, mov_si<mode>_e500_subreg0_2,
+ mov_si<mode>_e500_subreg4, mov_si<mode>_e500_subreg4_2): Allow
+ TFmode.
+ (mov_sitf_e500_subreg8, mov_sitf_e500_subreg8_2,
+ mov_sitf_e500_subreg12, mov_sitf_e500_subreg12_2): New.
+ (spe_trunctfdf2_internal1, spe_trunctfsf2, spe_extenddftf2,
+ spe_fix_trunctfsi2, spe_fix_trunctfsi2_internal,
+ spe_negtf2_internal, spe_abstf2_cmp, spe_abstf2_tst): New.
+ (cmptfeq_gpr, tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr,
+ tsttflt_gp): New.
+
+2007-01-23 Ian Lance Taylor <iant@google.com>
+
+ * Makefile.in (OBJS-common): Reformat, alphabetize, but put
+ insn-*.o first.
+ (OBJS-archive): Reformat, alphabetize.
+ (OBJS): Change out_object_file to OBJS-md.
+
+2007-01-23 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
+ JUMP_P and CALL_P predicates where applicable.
+ * config/i386/i386.c: Ditto.
+ * config/i386/i386.md: Ditto.
+ * config/i386/mmx.md: Ditto.
+ * config/i386/predicates.md: Ditto.
+
+2007-01-22 Andreas Schwab <schwab@suse.de>
+
+ * config/m68k/m68k.h: Fix comment.
+
+2007-01-22 Jan Hubicka <jh@suse.cz>
+
+ * passes.c (init_optimization_passes): Do not rerun
+ pass_early_warn_uninitialized.
+
+2007-01-22 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/30038
+ * tree-ssa-math-opts.c (maybe_record_sincos): New static helper
+ function.
+ (execute_cse_sincos_1): Likewise.
+ (execute_cse_sincos): Likewise.
+ (gate_cse_sincos): Likewise.
+ (pass_cse_sincos): New pass CSEing sin() and cos() calls using
+ the cexpi() canonicalization of sincos().
+ * tree-pass.h (pass_cse_sincos): Declare.
+ * passes.c (init_optimization_passes): New pass pas_cse_sincos.
+
+2007-01-21 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR rtl-optimization/29329
+ * combine.c (replaced_rhs_insn): Rename to i2mod.
+ (replaced_rhs_value): Rename to i2mod_new_rhs.
+ (i2mod_old_rhs): New global variable.
+ (combine_instructions): Adjust for above change. Save a copy of
+ the old RHS into i2mod_old_rhs when the contents of a REG_EQUAL
+ note are substituted in the second instruction.
+ (distribute_notes) <REG_DEAD>: Adjust for above change. Do not
+ ditch the note if it pertains to the second eliminated register
+ and this register is mentioned in i2mod_old_rhs.
+
+ Revert:
+ 2006-09-12 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
+ the insn to which the note was originally attached.
+
+2007-01-21 Jan Hubicka <jh@suse.cz>
+
+ * ipa-inline.c (inlining_mode): Comment, move up.
+ (cgraph_decide_inlining_incrementally): Do not perform inlining
+ itself; fix handling of flattening of self recursive functions.
+ (cgraph_find_cycles): Remove.
+ (cgraph_flatten_node): Remove.
+ (cgraph_decide_inlining): Use incremental inliner to handle flattening.
+ (try_inline): New function.
+ (cgraph_early_inlining): Update call of
+ cgraph_decide_inlining_incrementally. Apply inlining here.
+ (apply_inline): Update call of cgraph_decide_inlining_incrementally.
+
+2007-01-21 Dirk Mueller <dmueller@suse.de>
+
+ PR bootstrap/30511
+ * tree-vrp.c (check_array_bounds): do not warn
+ about ADDR_EXPR's of ARRAY_REF's which are immediately
+ used in binary expressions.
+
+2007-01-21 Ira Rosen <irar@il.ibm.com>
+
+ * tree-vectorizer.h (struct _stmt_vec_info): Add new field
+ read_write_dep and macros for its access.
+ * tree-vectorizer.c (new_stmt_vec_info): Initialize the new field.
+ * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Remove
+ argument, call vect_check_interleaving for every independent pair of
+ data-refs. Mark loads that access the same memory location as a store
+ in the loop.
+ (vect_check_dependences): Remove.
+ (vect_analyze_data_ref_dependences): Remove vect_check_dependences
+ call, fix the call to vect_analyze_data_ref_dependence.
+ (vect_analyze_data_ref_access): For statements that access the same
+ data-ref, check that they are not stores; for loads, check that there
+ is no store that access the same location.
+
+2007-01-20 Roger Sayle <roger@eyesopen.com>
+ Joseph Myers <joseph@codesourcery.com>
+
+ * doc/invoke.texi (-fdump-rtl-combine): Fix under/overfull hbox.
+ (-fdump-rtl-stack): Likewise.
+ (-fno-signed-zeros): Use @minus{} for a minus sign. Correct typo.
+ (-mcheck-zero-division, -mcpu): Fix under/overfull hbox.
+ (-mpt-fixed): Use @minus{} for minus sign.
+ (Using Precompiled Headers): Fix under/overfull hbox.
+
+2007-01-20 Jan Hubicka <jh@suse.cz>
+
+ * tree-flow.h (struct stmt_ann_d): Move references_memory to proper
+ place within annotation.
+
+2007-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa.c (output_move_double): Change array size of xoperands to 4.
+
+2007-01-20 Jan Hubicka <jh@suse.cz>
+
+ * tree-tailcall.c (adjust_return_value): Do not use RESULT_DECL
+ as temporary.
+
+2007-01-19 Ian Lance Taylor <iant@google.com>
+
+ * expmed.c (expand_divmod) [TRUNC_MOD_EXPR, TRUNC_DIV_EXPR]: Cast
+ constant to unsigned HOST_WIDE_INT before negating.
+
+2007-01-19 Ian Lance Taylor <iant@google.com>
+
+ * tree-ssa-operands.h (struct vuse_vec_d): Change num_vuse field
+ to unsigned.
+ (VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Use unsigned comparison.
+ (VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
+ (SET_VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Likewise.
+ (SET_VUSE_ELEMENT_VAR) [ENABLE_CHECKING]: Likewise.
+ (SET_VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
+ (realloc_vdef, realloc_vuse): Change second parameter to
+ unsigned.
+ (ssa_operand_iterator_d): Change vuse_index and mayuse_index
+ fields to unsigned.
+ * tree-ssa-operands.c (realloc_vop): Change num_elem parameter to
+ unsigned. Change x and lim locals to unsigned.
+ (realloc_vdef, realloc_vuse): Change num_elem parameter to
+ unsigned.
+ (finalize_ssa_vuse_ops): Change old_i local to unsigned.
+ (copy_virtual_operands): Change i and n locals to unsigned.
+
+2007-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ PR middle-end/29335
+ * builtins.c (fold_builtin_1): Handle builtin fdim.
+
+2007-01-20 Jan Hubicka <jh@suse.cz>
+
+ * tree-ssa.c (init_tree_ssa): Do not call init_alias_heapvars.
+ * tree-ssa-structalias.c (compute_points_to_sets): Do call
+ init_alias_heapvars.
+ (init_alias_heapvars): Initialize only when not already initialized.
+ (delete_alias_heapvars): Set heapvar_for_stmt to NULL.
+
+2007-01-19 Roger Sayle <roger@eyesopen.com>
+
+ * common.opt (fsigned-zeros): New command line option.
+ * flags.h (HONOR_SIGNED_ZEROS): Control via flag_signed_zeros instead
+ of flag_unsafe_math_optimizations.
+ * opts.c (set_fast_math_flags): The -ffast-math command line option
+ implies -fno-signed-zeros.
+ (fast_math_flags_set_p): Likewise.
+
+ * doc/invoke.texi: Document new -fno-signed-zeros option, and update
+ the documentation of -ffast-math appropriately. Wrap long lines.
+
+2007-01-19 Steve Ellcey <sje@cup.hp.com>
+
+ * system.h (ASM_MAKE_LABEL_LINKONCE): Poison.
+ * varasm.c (globalize_decl): Remove ASM_MAKE_LABEL_LINKONCE ifdef.
+
+2007-01-19 Tomas Bily <tbily@suse.cz>
+
+ * cgraphunit.c (cgraph_finalize_function): Updating of pid
+ * tree-profile.c:
+ (tree_init_ic_make_global_vars): New function
+ (tree_init_edge_profiler): call of tree_init_ic_make_global_vars
+ (tree_gen_ic_profiler): New function
+ (tree_gen_ic_func_profiler): New function
+ (tree_profiling): Added calling of tree_gen_ic_func_profiler
+ (tree_profile_hooks): Added hook for indirec/virtual calls
+ * value-prof.c (tree_find_values_to_profile): New case for
+ indirect calls
+ (tree_values_to_profile): Call for determining indirect/virtual
+ counters
+ (tree_indirect_call_to_profile): New function
+ (tree_ic_transform): New function
+ (tree_ic): New function
+ (find_func_by_pid): New function
+ (init_pid_map): New function
+ (tree_value_profile_transformations): Added check for
+ indirect/virtual call transformation
+ * value-prof.h (enum hist_type): New counter type for
+ indirect/virtual calls
+ (profile_hooks): Added new hook for profiling indirect/virtual
+ calls
+ * profile.c (instrument_values): New case for indirect/virtual
+ call added
+ * gcov-io.h (GCOV_LAST_VALUE_COUNTER): Changed to 6
+ (GCOV_COUNTER_V_INDIR): New counter type
+ (GCOV_COUNTER_NAMES): New name of counter "indirect" added
+ (GCOV_MERGE_FUNCTIONS): New merge function for indirect/virtual
+ call added
+ * cgraph.c: Definition of cgraph_max_pid
+ (cgraph_create_node): Default init of pid attribute
+ * cgraph.h: Declaration of cgraph_max_pid
+ (struct cgraph_node): Added pid attribute
+ * libgcov.c (__gcov_indirect_call_profiler): New function
+ (__gcov_one_value_profiler_body): New function
+ (__gcov_one_value_profiler): Body was moved to
+ __gcov_one_value_profiler_body and calls it
+
+2007-01-19 Basile Starynkevitch <basile@starynkevitch.net>
+
+ * doc/gty.texi (Options): Document the mark_hook option to GTY.
+ * gengtype.c (write_types_data, write_func_for_structure,
+ write_types, ggc_wtd, pch_wtd): Add skip_hooks to
+ write_types_data, ggc_wtd, pch_wtd for processing mark_hook.
+ (walk_type, write_func_for_structure): Generate the mark_hook if
+ needed.
+
+2007-01-19 Jan Hubicka <jh@suse.cz>
+
+ * ipa-inline.c (cgraph_decide_inlining_incrementally): Instead of
+ 'early' argument take inlining mode argument specifying whether to
+ inline for size/speeed or all functions; add support for flattening;
+ improve dumpting.
+ (cgraph_early_inlining): Update call of decide_inlining_incrementally.
+
+2007-01-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c++/17947
+ * toplev.c (warn_deprecated_use): Use %qD instead of %qs to print
+ the name of the declared identifier.
+
+2007-01-19 Dirk Mueller <dmueller@suse.de>
+
+ * config/i386.h (CONDITIONAL_REGISTER_USAGE): Store
+ result of PIC_OFFSET_TABLE_REGNUM in temporary variable to avoid
+ duplicate evaluation.
+
+2007-01-19 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (acos<mode>2): Rename from acossf2 and acosdf2.
+ Macroize expander using X87MODEF12 mode macro. Extend operand 1
+ to XFMode, use acosxf2 and truncate result to requested mode.
+ Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
+ (asin<mode>2): Similarly, with asin expanders.
+ (*fscalexf4_i387): Rename from *fscalexf4.
+ (expNcorexf3): New expander.
+ (expxf2, exp10xf2, exp2xf2): Use expNcorexf3 expander.
+ (exp<mode>2): Rename from expsf2 and expdf2. Macroize expander using
+ X87MODEF12 mode macro. Extend operand 1 to XFMode, use expxf2 and
+ truncate result to requested mode. Use SSE_FLOAT_MODE_P to disable
+ patterns for SSE math.
+ (exp10<mode>2): Similarly, with exp10 expanders.
+ (exp2<mode>2): Similarly, with exp2 expanders.
+ (expm1<mode>2): Similarly, with expm1 expanders.
+ (ldexp<mode>3): Similarly, with ldexp expanders.
+ (log<mode>2, log10<mode>2, log2<mode>2, log1p<mode>2, logb<mode>2):
+ Use gen_truncxf<mode>2_i387_noop to truncate result.
+
+2007-01-19 Richard Sandiford <richard@codesourcery.com>
+
+ * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Define to 32
+ for ColdFire targets.
+
+2007-01-19 Nathan Sidwell <nathan@codesourcery.com>
+ Richard Sandiford <richard@codesourcery.com>
+
+ * config/m68k/m68k.h (M68K_STATIC_CHAIN_REG_NAME): New macro.
+ (INITIALIZE_TRAMPOLINE): Use STATIC_CHAIN_REGNUM.
+ (__transfer_from_trampoline): Use M68K_STATIC_CHAIN_REG_NAME.
+ * config/m68k/m68kelf.h (STATIC_CHAIN_REGNUM): Override.
+ (M68K_STATIC_CHAIN_REG_NAME): Likewise.
+ * config/m68k/netbsd-elf.h (M68K_STATIC_CHAIN_REG_NAME): Likewise.
+
+2007-01-19 Richard Sandiford <richard@codesourcery.com>
+
+ * config/m68k/m68k.md (adddi_dilshr32): Rename to...
+ (*adddi_dilshr32): ...this. Fix formatting. Remove commented-out
+ non-canonical pattern. Restrict to !TARGET_COLDFIRE.
+ (*adddi_dilshr32_cf): New pattern.
+ (adddi3, subdi3): Remove first alternatives.
+
+2007-01-19 Richard Sandiford <richard@codesourcery.com>
+
+ * config/m68k/m68k.c (notice_update_cc): If an SFmode move is
+ implemented using move.l, do not use its cc result for floating-point
+ comparisons.
+
+2007-01-19 Richard Sandiford <richard@codesourcery.com>
+
+ * config/m68k/m68k.h (EXTRA_CONSTRAINT): Stop the 'T' constraint
+ from accepting 's' constraints if flag_pic.
+
+2007-01-19 Richard Sandiford <richard@codesourcery.com>
+
+ * config/m68k/m68k.md (bordered, bunordered, buneq, bunge, bungt)
+ (bunle, bunlt, bltgt, bordered_rev, bunordered_rev, buneq_rev)
+ (bunge_rev, bungt_rev, bunle_rev, bunlt_rev, bltgt_rev): Change
+ condition from TARGET_68881 to TARGET_HARD_FLOAT.
+
+2007-01-19 Sandra Loosemore <sandra@codesourcery.com>
+
+ * longlong.h (count_leading_zeros, COUNT_LEADING_ZEROS_0): Add
+ ColdFire alternatives.
+ * config/m68k/m68k.h (CLZ_DEFINED_VALUE_AT_ZERO): New macro.
+ * config/m68k/m68k.md (clzsi2): Define for ColdFire
+ architectures that support ff1 instruction.
+
+2007-01-19 Richard Sandiford <richard@codesourcery.com>
+ Julian Brown <julian@codesourcery.com>
+
+ * config/m68k/m68k.h (CONST_OK_FOR_LETTER_P): Add an 'R' case.
+ * config/m68k/m68k.md (*movsi_cfv4): Fold into...
+ (*movsi_cf): ...here. Remove unnecessary 'R' from 'Rg'.
+ Add commentary.
+
+2007-01-19 Richard Sandiford <richard@codesourcery.com>
+
+ * config/m68k/m68k-protos.h (valid_mov3q_const): Take a HOST_WIDE_INT
+ and return a bool.
+ (output_move_const_into_data_reg, output_move_simode_const): Delete.
+ * config/m68k/m68k.c (const_method, const_int_cost): Take a
+ HOST_WIDE_INT instead of an rtx.
+ (m68k_rtx_costs): Update call accordingly.
+ (output_move_const_into_data_reg): Likewise. Fix formatting.
+ (valid_mov3q_const): Take a HOST_WIDE_INT instead of an rtx.
+ Return a bool.
+ (output_move_simode_const): Update calls after above changes.
+ Rework to use automatic variables and predicates like MEM_P.
+ * config/m68k/m68k.md (pushexthisi_const): Update call to
+ valid_mov3q_const.
+
+2007-01-19 Dirk Mueller <dmueller@suse.de>
+
+ * tree-ssa-alias.c (perform_var_substitution): Fix typo
+ in dump_flags test.
+
+2007-01-19 Richard Guenther <rguenther@suse.de>
+
+ * builtins.c (expand_builtin_cexpi): Fall back to expanding
+ via cexp in case sincos is not available.
+
+2007-01-19 Richard Guenther <rguenther@suse.de>
+
+ * doc/tm.texi (TARGET_HAS_SINCOS): Document new target macro.
+ * defaults.h (TARGET_HAS_SINCOS): Default to off.
+ * config/linux.h (TARGET_HAS_SINCOS): Set to on if we have glibc.
+ * config/alpha/linux.h (TARGET_HAS_SINCOS): Likewise.
+ * config/sparc/linux.h (TARGET_HAS_SINCOS): Likewise.
+ * config/sparc/linux64.h (TARGET_HAS_SINCOS): Likewise.
+ * config/rs6000/linux.h (TARGET_HAS_SINCOS): Likewise.
+ * config/rs6000/linux64.h (TARGET_HAS_SINCOS): Likewise.
+
2007-01-19 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (*fpatanxf3_i387, fpatan_extend<mode>xf3_i387):