OSDN Git Service

gcc/fortran:
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 0b40dc4..c5376f3 100644 (file)
@@ -1,3 +1,262 @@
+2007-07-23  Daniel Berlin  <dberlin@dberlin.org>
+
+       * tree-ssa-propagate.c (valid_gimple_expression_p): Match up with
+       ccp_min_invariant.
+
+2007-07-23  Peter Bergner  <bergner@vnet.ibm.com>
+           Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/PR28690
+       * optabs.c (expand_binop): (emit_cmp_and_jump_insns): Allow EQ compares.
+       * rtlanal.c (commutative_operand_precedence): Prefer both REG_POINTER
+       and MEM_POINTER operands over REG and MEM operands.
+       (swap_commutative_operands_p): Change return value to bool.
+       * rtl.h: Update the corresponding prototype.
+       * tree-ssa-address.c (gen_addr_rtx): Use simplify_gen_binary
+       instead of gen_rtx_PLUS.
+       * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Change return
+       value to bool.  Change function arguments to rtx's and update code
+       to match.
+       (simplify_plus_minus): Update the simplify_plus_minus_op_data_cmp
+       calls to match the new declaration.
+       * simplify-rtx.c (simplify_associative_operation): Don't
+       reorder simplify_binary_operation arguments.
+
+2007-07-23  Richard Sandiford  <richard@codesourcery.com>
+
+       * config/mips/mips.c (override_options): Use mips_costs to derive
+       the default branch cost.
+       * config/mips/mips.h (BRANCH_COST): Use mips_branch_cost rather
+       than mips_costs.
+       * config/mips/mips.opt (mbranch-cost=): New option.
+       * doc/invoke.texi (-mbrach-cost): Document new MIPS option.
+
+2007-07-23  Richard Sandiford  <richard@codesourcery.com>
+
+       * config/mips/mips.h (GR_REG_CLASS_P, COP_REG_CLASS_P): Delete.
+       (SECONDARY_MEMORY_NEEDED): Delete commented-out definition.
+       * config/mips/mips.c (mips_register_move_cost): Use reg_class_subset_p
+       instead of GR_REG_CLASS_P and COP_REG_CLASS_P.
+
+2007-07-23  Richard Sandiford  <richard@codesourcery.com>
+
+       * config/mips/constraints.md (ks): New constraint.
+       * config/mips/mips.md (*add<mode>3_sp1, *add<mode>3_sp2): Fold into...
+       (*add<mode>3_mips16): ...here.
+
+2007-07-21  Uros Bizjak  <ubizjak@gmail.com>
+
+       * optabs.h (enum optab_index): Add new OTI_signbit.
+       (signbit_optab): Define corresponding macro.
+       (enum insn_code signbit_optab[]): Remove array.
+       * optabs.c (init_optabs): Initialize signbit_optab using init_optab.
+       (expand_copysign_absneg): If back end provides signbit insn, use it
+       instead of bit operations on floating point argument.
+       * builtins.c (enum insn_code signbit_optab[]): Remove array.
+       (expand_builtin_signbit): Check signbit_optab->handlers[].insn_code for
+       availability of signbit insn.
+
+       * config/i386/i386.md (signbit<mode>2): New insn pattern to implement
+       signbitf, signbit and signbitl built-ins as inline x87 intrinsics when
+       SSE mode is not active.
+       (isinf<mode>2): Disable for mfpmath=sse,387.
+
+2007-07-22  Ben Elliston  <bje@au.ibm.com>
+
+       * regclass.c (invalid_mode_change_p): Attach ATTRIBUTE_UNUSED to
+       `class' parameter.
+       * struct-equiv.c (note_local_live): Likewise for `y_regno'.
+
+2007-07-20  Richard Guenther  <rguenther@suse.de>
+
+       * tree-cfg.c (verify_expr): COND_EXPRs can have any
+       integral typed condition.
+       * tree-ssa.c (useless_type_conversion_p): Do not preserve
+       booleanness.  Only preserve conversions from a non-base
+       type to a base type, not in general between types with
+       different TYPE_MIN_VALUE or TYPE_MAX_VALUE.
+       * tree.def (COND_EXPR): Document that the condition
+       can be of any integral type.
+
+2007-07-20  Nigel Stephens  <nigel@mips.com>
+           Richard Sandiford  <richard@codesourcery.com>
+
+       * config/mips/mips.h (mips_dwarf_regno): Declare.
+       (DBX_REGISTER_NUMBER): Remove redundant brackets.
+       (HI_REGNUM, LO_REGNUM): Define in an endian-dependent way.
+       (AC1HI_REGNUM, AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM)
+       (AC3HI_REGNUM, AC3LO_REGNUM, ACC_HI_REG_P): Delete.
+       (reg_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG.
+       (REG_CLASS_NAMES): Update accordingly.
+       * config/mips/mips.c (mips_dwarf_regno): New array.
+       (mips_regno_to_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG.
+       (mips_subword): Remove special handling for accumulator registers.
+       (override_options): Initiailize mips_dwarf_regno.  Remove use
+       of ACC_HI_REG_P.
+       (mips_swap_registers): New function.
+       (mips_conditional_register_usage): Swap accumulator registers
+       around if TARGET_LITTLE_ENDIAN.
+       (mips_cannot_change_mode_class): Remove special treatment of ACC_REGS.
+       * config/mips/constraints.md (h, l): Use the endianness to choose
+       between MD0_REG and MD1_REG.
+       * config/mips/mips.md (*mfhilo_<mode>_macc): Use a fixed-string,
+       alternative-dependent template.
+
+2007-07-20  Richard Sandiford  <richard@codesourcery.com>
+
+       * config/arm/arm.md (movsi): Use can_create_pseudo_p instead of
+       no_new_pseudos.
+
+2007-07-20  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       * function.c (thread_prologue_and_epilogue_insns): Fix exit
+       predecessor fallthru flags.
+
+2007-07-20  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       * tree-ssa-loop-niter.c (assert_loop_rolls_lt): Convert the operands
+       of compare to the same type.
+       * cfgloopmanip.c (add_loop): Update information about loop exits.
+       (loop_version): Remove the innermost loop requirement.
+       * tree-ssa-loop-manip.c (determine_exit_conditions): Convert bounds
+       to sizetype for pointers.
+
+2007-07-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * Makefile.in (D32PBIT_FUNCS): Add _sd_to_tf and _tf_to_sd.
+       (D64PBIT_FUNCS): Add _dd_to_tf and _tf_to_dd.
+       (D128PBIT_FUNCS): Add _td_to_tf and _tf_to_td.
+
+       * config/dfp-bit.c: Empty for TFmode conversions.
+
+2007-07-18  Caroline Tice  <ctice@apple.com>
+       
+       * var-tracking.c (find_src_status):  Check for  COND_EXEC insns
+       and handle them correctly; check that src is not NULL before
+       trying to use it.
+       (find_src_set_src): Likewise.
+       
+2007-07-18  Bob Wilson  <bob.wilson@acm.org>
+       
+       * config/xtensa/xtensa.c (xtensa_expand_mask_and_shift): New.
+       (struct alignment_context, init_alignment_context): New.
+       (xtensa_expand_compare_and_swap, xtensa_expand_atomic): New.
+       * config/xtensa/xtensa.h (XCHAL_HAVE_RELEASE_SYNC): Add default.
+       (XCHAL_HAVE_S32C1I): Likewise.
+       (TARGET_RELEASE_SYNC, TARGET_S32C1I): New.
+       * config/xtensa/xtensa.md (UNSPECV_MEMW): New constant.
+       (UNSPECV_S32RI, UNSPECV_S32C1I): Likewise.
+       (ATOMIC, HQI): New macros.
+       (memory_barrier, *memory_barrier): New.
+       (sync_lock_releasesi): New.
+       (sync_compare_and_swapsi, sync_compare_and_swap<mode>): New.
+       (sync_lock_test_and_set<mode>): New.
+       (sync_<atomic><mode>): New.
+       (sync_old_<atomic><mode>, sync_new_<atomic><mode>): New.
+       * config/xtensa/xtensa-protos.h (xtensa_expand_compare_and_swap): New.
+       (xtensa_expand_atomic): New.
+       
+2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       PR target/30652
+
+       * builtins.c (expand_builtin_interclass_mathfn): Provide a generic
+       transformation for builtin ISNORMAL.
+       (expand_builtin): Handle BUILT_IN_ISNORMAL.
+       * builtins.def (BUILT_IN_ISNORMAL): New.
+       * doc/extend.texi: Document isnormal.
+
+2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       PR target/30652
+
+       * builtins.c (expand_builtin_interclass_mathfn): Allow for missing
+       optabs infrastructure.  Provide generic implementation for
+       FINITE/ISFINITE.
+       (expand_builtin): Handle FINITE/ISFINITE.
+       (fold_builtin_classify): Make ISFINITE canonical instead of FINITE.
+       (fold_builtin_1): Likewise.
+
+       * builtins.def (BUILT_IN_ISFINITE): New.
+
+       * doc/extend.texi: Document isfinite.
+
+2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       PR target/30652
+       PR middle-end/20558
+
+       * builtins.c (expand_builtin_interclass_mathfn): Provide a
+       generic fallback for isinf.
+       * c-cppbuiltin.c (builtin_define_float_constants): Move FP max
+       calculation code ...
+       * real.c (get_max_float): ... to here.
+       * real.h (get_max_float): New.
+
+2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       PR middle-end/32668
+
+       * builtin-attrs.def (ATTR_TYPEGENERIC,
+       ATTR_CONST_NOTHROW_TYPEGENERIC): New.
+
+       * builtins.def (BUILT_IN_ISINF, BUILT_IN_ISNAN,
+       BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
+       BUILT_IN_ISLESSEQUAL, BUILT_IN_ISLESSGREATER,
+       BUILT_IN_ISUNORDERED): Use ATTR_CONST_NOTHROW_TYPEGENERIC.
+
+       * c-common.c (handle_type_generic_attribute): New.
+       (c_common_attribute_table): Add "type generic".
+
+       * c-typeck.c (convert_arguments): Handle "type generic" functions.
+
+2007-07-18  Daniel Berlin  <dberlin@dberlin.org>
+
+       * tree-ssa-sccvn.c (try_to_simplify): Use valid_gimple_expression
+       * tree-ssa-propagate (valid_gimple_expression): Handle ADDR_EXPR
+       properly.
+
+2007-07-18  Rask Ingemann Lambertsen  <rask@sygehus.dk>
+
+       PR target/32808
+       * config/cris/cris.c (cris_print_index): Don't use XEXP before
+       checking that the operand is an expression.
+
+2007-07-19  Christoph von Wittich  <Christoph_vW@reactos.org>
+           Danny Smith  <dannysmith@users.sourceforge.net>
+
+       PR/other 30335
+       * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Put
+       file mapping object in local namespace if Windows version later
+       than NT4
+
+2007-07-18  Richard Sandiford  <richard@codesourcery.com>
+
+       * config/arm/arm-protos.h (arm_cannot_force_const_mem): Declare.
+       * config/arm/arm.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
+       arm_cannot_force_const_mem.
+       (arm_cannot_force_const_mem): New function.
+       * config/arm/arm.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macro.
+       (LEGITIMATE_CONSTANT_P): Test arm_cannot_force_const_mem instead
+       of arm_tls_referenced_p.
+       * config/arm/arm.md (movsi): Split out-of-section constants when
+       ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P.
+       * config/arm/vxworks.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
+
+2007-07-18  Richard Sandiford  <richard@codesourcery.com>
+
+       * config/mips/mips.md (clear_cache): Treat the size argument as Pmode.
+
+2007-07-18  Richard Sandiford  <richard@codesourcery.com>
+
+       * config/mips/mips.md (*extendqihi2): Convert the destination
+       to SImode.
+
+2007-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * config/pa/fptr.c: Update license header.
+       * config/pa/milli64.S: Likewise.
+
 2007-07-17  Nick Clifton  <nickc@redhat.com>
 
        * COPYING_v3: New file.  Contains version 3 of the GNU General
 2007-07-16  Paul Brook  <paul@codesourcery.com>
 
        PR target/32753
-       gcc/
        * config/arm/cirrus.md (cirrus_arm_movsi_insn): Remove dead insn.
        (cirrus_thumb2_movsi_insn): Ditto.
 
        offsets->locals_base to avoid negative stack size.
        (thumb1_expand_prologue): Assert on negative stack size.
 
-2007-04-19  Sebastian Pop  <sebpop@gmail.com>
+2007-06-19  Sebastian Pop  <sebpop@gmail.com>
 
        PR tree-optimization/32367
        * tree-chrec.h (build_polynomial_chrec): Verify that the left hand side 
        float constant.
        (_m_to_float): Use C89 compatible assignment.
 
-2007-04-20  Martin Michlmayr  <tbm@cyrius.com>
+2007-05-20  Martin Michlmayr  <tbm@cyrius.com>
 
        PR target/32007
        * config/arm/lib1funcs.asm: Define __ARM_ARCH__ on v2/v3 machines.
        size never inline functions increasing caller size.
        (cgraph_early_inlining): Inline for size when optimizing for size.
 
-2007-04-18  Bernd Schmidt  <bernd.schmidt@analog.com>
+2007-05-04  Bernd Schmidt  <bernd.schmidt@analog.com>
 
        * config/bfin/bfin.md (<optab>di3): Now a define_expand which expands
        logical operations piecewise.