OSDN Git Service

/c-family
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 71cb451..cf18334 100644 (file)
@@ -1,3 +1,236 @@
+2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (floating point move splitters): Fix
+       usage of standard_80387_constant_p.
+       (ix86_preferred_reload_class): Ditto.
+
+2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (*movdf_internal): Simplify insn condition.
+
+2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
+       (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
+       (tree_ssa_lim_finalize): Likewise.
+
+2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/constraint.md (Yd, Yx): New register constraints.
+       * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
+       Yd conditional register constraint.
+       (*movtf_internal): Use standard_sse_constant_opcode.
+       (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
+       Yx conditional register constraint.
+       (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
+       Yd conditional register constraint.  Use standard_sse_constant_p to
+       check for valid SSE constants and call standard_sse_constant_opcode to
+       output SSE insn.
+       (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
+       constants and call standard_sse_constant_opcode to output SSE insn.
+       * config/i386/i386.c (ix86_option_ovverride_internal): Set
+       TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
+       optimize_size is set.
+       (standard_sse_constant_opcode): Output conditional AVX insn templates.
+
+2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/constraint.md (Yd, Yx): New register constraints.
+       * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
+       Yd conditional register constraint.
+       (*movtf_internal): Use standard_sse_constant_opcode.
+       (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
+       Yx conditional register constraint.
+       (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
+       Yd conditional register constraint.  Use standard_sse_constant_p to
+       check for valid SSE constants and call standard_sse_constant_opcode to
+       output SSE insn.
+       (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
+       constants and call standard_sse_constant_opcode to output SSE insn.
+       * config/i386/i386.c (ix86_option_ovverride_internal): Set
+       TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
+       optimize_size is set.
+       (standard_sse_constant_opcode): Output conditional AVX insn templates.
+
+2011-05-14  Tobias Burnus  <burnus@net-b.de>
+
+       * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
+
+2011-05-13  Martin Jambor  <mjambor@suse.cz>
+
+       * ipa-prop.c (ipa_cst_from_jfunc): New function.
+       * ipa-prop.h (ipa_cst_from_jfunc): Declare.
+       * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
+       (evaluate_conditions_for_ipcp_clone): Removed.
+       (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
+       * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
+       * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
+
+2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
+       * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
+       lieu of MAY_HAVE_DEBUG_STMTS.
+       * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
+       debug statements if !MAY_HAVE_DEBUG_STMTS.
+
+2011-05-13  Martin Thuresson  <martint@google.com>
+
+       PR gcov-profile/47793
+       * libgcov.c (gcov_exit): Support relative profile paths.
+       * doc/invoke.texi (-fprofile-dir): Update for above change.
+
+2011-05-13  Richard Guenther  <rguenther@suse.de>
+
+       * gimple.c (gimple_canonical_types_compatible_p): Do not use
+       type-pair caching, do not compare hashes.
+
+2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
+
+       PR middle-end/48965
+       * tree-cfg.c (edge_to_cases_cleanup): Return true.
+       (verify_expr) [CASE_LABEL_EXPR]: Add checking.
+
+2011-05-13  Kai Tietz  <ktietz@redhat.com>
+
+       * gimplify.c (gimplify_expr): Make sure operand is boolified.
+       * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
+       compatible type for TRUTH_NOT_EXPR.
+
+2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.c (ix86_save_reg): Change return type to bool.
+       (ix86_hard_regno_mode_ok): Change return value to bool.  Use
+       can_create_pseudo_p ().
+
+2011-05-13  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/48978
+       * gimple.c (iterative_hash_gimple_type): Revert change in
+       pointer target and function result and argument hashing.
+
+2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
+       (*movxf_internal_nointeger): Ditto.
+       (*movdf_internal_rex64): Ditto.
+       (*movdf_internal): Ditto.
+       (*movdf_internal_nointeger): Ditto.
+       (*movsf_internal): Ditto.
+       (sincos splitters): Use can_create_pseudo ().
+
+2011-05-13  Joseph Myers  <joseph@codesourcery.com>
+
+       * config/i386/i386-opts.h: New.
+       * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
+       ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
+       ix86_section_threshold): Remove.
+       (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
+       OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
+       OPT_mbranch_cost_.
+       (ix86_option_override_internal): Don't decode strings for options
+       other than -march=, -mtune= and -mfpmath=.  Don't allow for
+       __attribute__ uses in remaining diagnostics for options with
+       string arguments.  Don't check for integer arguments being negative.
+       * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
+       enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
+       (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
+       ix86_branch_cost, ix86_section_threshold): Remove.
+       * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
+       HeaderInclude.
+       (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
+       but not Var.
+       (masm=): Use Enum and Init.
+       (asm_dialect): New Enum and EnumValue entries.
+       (mbranch-cost=): Use UInteger.
+       (mlarge-data-threshold=): Use UInteger and Init.
+       (mcmodel=): Use Enum and Init.
+       (cmodel): New Enum and EnumValue entries.
+       (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
+       (mpreferred-stack-boundary=, mincoming-stack-boundary=,
+       mregparm=): Use UInteger.
+       (mstringop-strategy=): Use Enum and Init.
+       (stringop_alg): New Enum and EnumValue entries.
+       (mtls-dialect=): Use Enum and Init.
+       (tls_dialect): New Enum and EnumValue entries.
+       (mabi=): Use Enum and Init.
+       (calling_abi): New Enum and EnumValue entries.
+       (mveclibabi=): Use Enum and Init.
+       (ix86_veclibabi): New Enum and EnumValue entries.
+
+2011-05-13  Nick Clifton  <nickc@redhat.com>
+
+       * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
+       * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
+
+2011-05-13  Kai Tietz  <ktietz@redhat.com>
+
+       PR middle-end/48984
+       * gimplify.c (gimplify_expr): Check for boolean_type_node instead
+       for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
+       (gimple_boolify): Check for cast for boolean_type_node instead for
+       BOOLEAN_TYPE.
+
+2011-05-13  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/48172
+       * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
+       multiplying by number of iterations for equal step.
+       (vect_create_cond_for_alias_checks): Likewise.
+
+2011-05-13  Andreas Schwab  <schwab@redhat.com>
+
+       * configure.ac: Use AS_HELP_STRING throughout.
+       * configure: Regenerate.
+
+2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
+       (ix86_emit_restore_regs_using_mov): Likewise.
+       (ix86_emit_restore_sse_regs_using_mov): Likewise.
+
+2011-05-12  Anatoly Sokolov  <aesok@post.ru>
+
+       * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
+       SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
+       (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
+       * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
+       RTX_OK_FOR_OLO10_P): ...here.
+       (sparc_mode_dependent_address_p): Use symbolic_operand instead of
+       SYMBOLIC_CONST.
+
+2011-05-12  Kai Tietz  <ktietz@redhat.com>
+
+       * gimplify.c (gimple_boolify): Re-boolify expression
+       arguments even if expression type is of kind BOOLEAN_TYPE.
+       (gimplify_boolean_expr): Removed.
+       (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
+       and XOR. Additional take care that we keep expression's type.
+       * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
+       of TRUTH_AND|OR|XOR_EXPR.
+
+2011-05-12  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/48975
+       * tree-if-conv.c (combine_blocks): Call free_bb_predicate
+       on all bbs here and free and clear ifc_bbs at the end.
+
+2011-05-12  Richard Guenther  <rguenther@suse.de>
+
+       * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
+       NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
+       until after simple checks.
+       (gimple_types_compatible_p): Likewise.
+       (iterative_hash_gimple_type): Always hash pointer targets
+       and function return and argument types.
+       (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
+       hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
+       (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
+       handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
+       completely in the simple compare section.
+       (gimple_register_canonical_type): Query the cache again after
+       registering.
+
 2011-05-12  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/48172
 
 2011-05-12  DJ Delorie  <dj@redhat.com>
 
-       (rx_builtins): New arrays - holds builtin functions.
+       * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
        (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
        created builtin into rx_builtins array.
        (rx_builtin_decl): New function.
-       (TARGET_BUITLIN_DECL): Define.
-       Include gt-rx.h.
+       (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
 
 2011-05-12  DJ Delorie  <dj@redhat.com>
            Nick Clifton  <nickc@redhat.com>
        addressing in HImode and QImode.  Fix test for out of range
        REG+INT addressing.
        (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
-       (rx_align_for_label): Test label before extracting its usage
-       count.
+       (rx_align_for_label): Test label before extracting its usage count.
        (rx_adjust_insn_lengths): Fix selection of insn codes.
        (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
 
 2011-05-11  Satoru Takabayashi  <satorux@google.com>
            Paul Pluzhnikov  <ppluzhnikov@google.com>
 
-       * doc/install.texi (Configuration): Document
-       --with-linker-hash-style.
+       * doc/install.texi (Configuration): Document --with-linker-hash-style.
        * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
        * config.in: Add LINKER_HASH_STYLE.
        * configure.ac: Add --with-linker-hash-style.
 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
 
        * config/i386/i386.c (legitimize_tls_address)
-       <TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
+       <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
        expanders directly for TARGET_GNU2_TLS.  Determine pic and
        __tls_get_addr symbol reference here.  Update call to
        gen_tls_global_dynamic_{32,64} for added arguments.
-       <TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
+       <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
        expanders directly for TARGET_GNU2_TLS.  Determine
        __tls_get_addr symbol reference here.  Update call to
        gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
        * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
        libbffastfp overrides libgcc when -mfast-fp.
 
-2011-05-03  Stuart Henderson <shenders@gcc.gnu.org>
+2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
 
        Originally from Bernd Schmidt
        * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
 
 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
 
-       * c-family/c-common.c (struct c_common_resword): Add __underlying_type.
-       * c-family/c-common.h (enum rid): Add RID_UNDERLYING_TYPE.
        * doc/extend.texi: Document __underlying_type.
 
 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
        * haifa-sched.c (prune_ready_list, schedule_block): Use
        sched_pressure_p rather than flag_sched_pressure.
 
-2011-04-15  Pat Haugen <pthaugen@us.ibm.com>
+2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
 
        * config/rs6000/rs6000.c (call_ABI_of_interest): Call
        cgraph_get_node instead of cgraph_get_create_node.
 
 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
            Eric Weddington  <eric.weddington@atmel.com>
-           Georg-Johann Lay <avr@gjlay.de>
+           Georg-Johann Lay  <avr@gjlay.de>
 
        * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
        New Includes
        (TREE_CHAIN): Check for a TS_COMMON structure.
        (TREE_TYPE): Check for a TS_TYPED structure.
 
-2011-04-12  Pat Haugen <pthaugen@us.ibm.com>
+2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
 
        * config/rs6000/rs6000.c (call_ABI_of_interest): Call
        cgraph_get_create_node instead of cgraph_node.
        * config/i386/cygming.opt: Make sure trailing empty line is retained.
        * config/i386/mingw-w64.opt: Likewise.
 
-2011-04-01  Gary Funck <gary@intrepid.com>
+2011-04-01  Gary Funck  <gary@intrepid.com>
 
        * c-decl.c (grokdeclarator): Fix formatting.