OSDN Git Service

* config/sh/sh.md (load_gbr): Use correct operand constraint.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 7ca7ae3..318488f 100644 (file)
@@ -1,3 +1,248 @@
+2007-06-27  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/sh.md (load_gbr): Use correct operand constraint.
+
+2007-06-27  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       PR target/32479
+       * config/sh/sh.md (udivsi3): Don't wrap the sequence with
+       REG_LIBCALL and REG_RETVAL notes.
+       (divsi3, mulsi3): Likewise.
+       (mulhisi3): Likewise.  Use emit_libcall_block.
+       (umulhisi3, smulsi3_highpart, umulsi3_highpart_i): Likewise.
+
+2007-06-27  Seongbae Park  <seongbae.park@gmail.com>
+
+       PR rtl-optimization/32481
+       * combine.c (adjust_for_new_dest): Rescan the changed insn.
+
+2007-06-27  Richard Sandiford  <richard@codesourcery.com>
+
+       * dce.c (deletable_insn_p_1): New function, split out from...
+       (deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
+       specially, not those inside PARALLELs.  Remove BODY argument
+       and adjust recursive call accordingly.
+       (prescan_insns_for_dce): Update call to delete_insn_p.
+
+2007-06-27  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/32492
+       * tree.h (fold_convertible_p): Declare.
+       * fold-const.c (fold_convertible_p): New function.
+       * gimplify.c (gimplify_call_expr): Use fold_convertible_p
+       instead of lang_hooks.types_compatible_p.
+
+2007-06-26  Jan Hubicka  <jh@suse.cz>
+
+       * fwprop.c (try_fwprop_subst): Use validate_unshare_change.
+       * postreload.c (reload_cse_simplify_set): Instead of copying the rtx
+       early use validate_unshare_change.
+       (reload_combine): Likewise.
+       * recog.c (change_t): New field unshare.
+       (validate_change_1): Rename from validate_change; add argument unshare.
+       (validate_change): Turn into wrapper of validate_change_1; update
+       prototype for bools.
+       (validate_unshare_change): New.
+       (confirm_change_group): Unshare changes if asked for; avoid unnecesary
+       calls of df_insn_rescan.
+       * recog.h (validate_change): Replace ints by bools.
+       (validate_unshare_change): Declare.
+
+2007-06-26  Kenneth Zadeck <zadeck@naturalbridge.com>
+
+        * tree.def (VEC_WIDEN_MULT_LO_EXPR): Corrected string name.
+       
+2007-06-26  Steve Ellcey  <sje@cup.hp.com>
+
+       * builtins.c (expand_builtin_next_arg): Change Pmode to ptr_mode.
+
+2007-06-25  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-inline.c (cgraph_mark_inline): Assert that we never inline
+       uninlinable call.
+       (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining,
+       cgraph_decide_inlining_incrementally): Move uninlinability checks to
+       places other call site specific checks are performed.
+
+2007-06-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+       PR tree-opt/32421
+       * tree-vect-transform.c (vectorizable_operation): Convert
+       POINTER_PLUS_EXPR over to PLUS_EXPR.
+
+2007-06-25  Chao-ying Fu  <fu@mips.com>
+
+       * doc/rtl.texi (Machine Modes): Document QQ, HQ, SQ, DQ, TQ,
+       UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA, USA, UDA, and UTAmodes.
+       Document MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
+       Document GET_MODE_IBIT, and GET_MODE_FBIT.
+
+       * machmode.h (VECTOR_MODE_P): Test MODE_VECTOR_FRACT,
+       MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
+       (SCALAR_FRACT_MODE_P, SCALAR_UFRACT_MODE_P, ALL_SCALAR_FRACT_MODE_P,
+       SCALAR_ACCUM_MODE_P, SCALAR_UACCUM_MODE_P, ALL_SCALAR_ACCUM_MODE_P,
+       SIGNED_SCALAR_FIXED_POINT_MODE_P, UNSIGNED_SCALAR_FIXED_POINT_MODE_P,
+       ALL_SCALAR_FIXED_POINT_MODE_P, FRACT_MODE_P, UFRACT_MODE_P,
+       ALL_FRACT_MODE_P, ACCUM_MODE_P, UACCUM_MODE_P, ALL_ACCUM_MODE_P,
+       SIGNED_FIXED_POINT_MODE_P, UNSIGNED_FIXED_POINT_MODE_P,
+       ALL_FIXED_POINT_MODE_P): New define.
+       (CLASS_HAS_WIDER_MODES_P): Test MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
+       MODE_UACCUM.
+       (GET_MODE_IBIT, GET_MODE_FBIT): New define.
+
+       * mode-classes.def (MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM,
+       MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
+       MODE_VECTOR_UACCUM): New mode classes.
+
+       * machmode.def: Document FRACT_MODE, UFRACT_MODE, ACCUM_MODE,
+       UACCUM_MODE, ADJUST_IBIT, and ADJUST_FBIT.
+       Add QQ, HQ, SQ, DQ, TQ, UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA,
+       USA, UDA, and UTA.
+
+       * genmodes.c (struct mode_data): Add ibit and fbit fields.
+       (blank_mode): Initialize ibit and fbit.
+       (adj_ibit, adj_fbit): New to adjust ibit and fbit.
+       (vector_class): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
+       (new_adjust): Change required_class to required_class_from and
+       required_class_to for testing within a range.
+       (complete_mode): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
+       MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
+       MODE_VECTOR_UACCUM.
+       (FRACT_MODE, UFRACT_MODE, ACCUM_MODE, UACCUM_MODE): New define.
+       (make_fixed_point_mode): New.
+       (_ADD_ADJUST): Change C to C1 and C2.
+       (ADJUST_BYTESIZE, ADJUST_ALIGNMENT, ADJUST_FLOAT_FORMAT): Change to
+       use a range for machine classes.
+       (ADJUST_IBIT, ADJUST_FBIT): New.
+       (emit_insn_modes_h): Output defines of CONST_MODE_IBIT and
+       CONST_MODE_FBIT.
+       (emit_mode_adjustments): Handle MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
+       MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
+       Emit adjustment for ibit and fbit.
+       (emit_mode_ibit, emit_mode_fbit): New.
+       (emit_insn_modes_c): Add emit_mode_ibit and emit_mode_fbit.
+
+2007-06-25  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * config/rs6000/spe.md (*frob_ti_tf_2): Specify an input_operand
+       as the source of the set.
+
+2007-06-25  Roman Zippel <zippel@linux-m68k.org>
+
+       * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P,
+       FP_REGNO_P): Use IN_RANGE.
+       (REGNO_OK_FOR_DATA_P, REGNO_OK_FOR_FP_P): Remove.
+       (REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): New.
+       (DATA_REG_P): Use DATA_REGNO_P.
+       (FP_REG_P): Use FP_REGNO_P.
+       (ADDRESS_REG_P): Use ADDRESS_REGNO_P.
+       * config/m68k/m68k.c (m68k_legitimate_base_reg_p): Use
+       REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P.
+
+2007-06-24  Jan Hubicka  <jh@suse.cz>
+
+       PR middle-end/30563
+       * cgraphunit.c (cgraph_analyze_function): Fix ordering problem.
+
+2007-06-24  Sebastian Pop  <sebpop@gmail.com>
+
+       PR middle-end/32461
+       * fold-const.c (fold_binary): Strip nops of operand 0
+       of BIT_NOT_EXPR before calling operand_equal_p.
+       * testsuite/gcc.dg/tree-ssa/pr32461-1.c: New.
+       * testsuite/gcc.dg/tree-ssa/pr32461-2.c: New.
+
+2007-06-23  Mark Mitchell  <mark@codesourcery.com>
+
+       * doc/extend.texi: Document that dllimport and dllexport imply
+       default visibility.
+       * tree.c (handle_dll_attribute): Set DECL_VISIBILITY on the
+       imported or exported declaration, including type declarations.
+       * c-common.c (handle_visibility_attribute): Check for conflicts
+       with dllimport/dllexport.
+       (c_determine_visibility): Handle dllimport/dllexport as an
+       explicit visibility atttribute.
+
+2007-06-23  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/16876
+       PR middle-end/29478
+       * tree.h (CALL_CANNOT_INLINE_P): New macro to access static_flag
+       for CALL_EXPRs.
+       * tree-inline.c (initialize_inlined_parameters): Do not call
+       lang_hooks.tree_inlining.convert_parm_for_inlining.
+       * cgraphbuild.c (initialize_inline_failed): Set inline failed
+       reason for mismatched types.
+       * gimplify.c (gimplify_call_expr): Verify the call expression
+       arguments match the called function type signature.  Otherwise
+       mark the call expression to be not considered for inlining
+       using CALL_CANNOT_INLINE_P flag.
+       * ipa-inline.c (cgraph_mark_inline): Honor CALL_CANNOT_INLINE_P on the
+       edges call expression.
+       (cgraph_decide_inlining_of_small_function): Likewise.
+       (cgraph_decide_inlining): Likewise.
+       * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
+       Remove define.
+       * c-tree.h (c_convert_parm_for_inlining): Remove declaration.
+       * c-typeck.c (c_convert_parm_for_inlining): Remove.
+       * langhooks-def.h (lhd_tree_inlining_convert_parm_for_inlining):
+       Remove declaration.
+       (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): Remove define.
+       * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining):
+       Remove.
+       * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
+       convert_parm_for_inlining member.
+
+2007-06-23  Richard Earnshaw  <rearnsha@arm.com>
+
+       PR target/31152
+       * arm.md (negscc): Match the correct operand for optimized LT0 test.
+       Remove optimization for GT.
+
+2007-06-23  Kenneth Zadeck <zadeck@naturalbridge.com>
+
+       PR middle-end/32437
+       * dce.c (deletable_insn_p): Add extra parameter and recurse if insn
+       is a PARALLEL.
+       (prescan_insns_for_dce): Add extra parameter.
+       
+2007-06-23  Jan Hubicka  <jh@suse.cz>
+
+       PR middle-end/31541
+       * gimplify.c (mark_addressable): New function.
+       (gimplify_modify_expr_rhs, gimplify_addr_expr, gimplify_expr): Use it.
+
+2007-06-19  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR middle-end/32374
+       * expr.c (store_constructor): Do not clobber non-zeroed memory. 
+
+2007-06-22  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/32413
+       * config/i386/i386.c (ix86_register_move_cost): Rise the cost of
+       moves between MMX/SSE registers to at least 8 units to prevent
+       ICE caused by non-tieable SI/HI/QImodes in SSE registers. 
+
+2007-06-22  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.c (override_options): Correct x86_sahf
+       setting condition.
+
+2007-06-21  David Daney  <ddaney@avtrex.com>
+
+       PR target/32406
+       * config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER
+       to UNSPEC_NONLOCAL_GOTO_RECEIVER globally.
+       (exception_receiver): Renamed to ...
+       (nonlocal_goto_receiver): ... this.
+
+2007-06-22  Roman Zippel <zippel@linux-m68k.org>
+
+       * df-scan.c (df_read_modify_subreg_p): Use REGMODE_NATURAL_SIZE.
+       (df_def_record_1): Set (DF_REF_READ_WRITE | DF_REF_PARTIAL) for
+       partial register accesses.
+
 2007-06-21  Adam Nemet  <anemet@caviumnetworks.com>
 
        * fold-const.c (debug_fold_checksum): Move it under
 
 2007-06-19  Nick Clifton  <nickc@redhat.com>
 
-       * config/m32r/linux.h (LIB_SPEC): Always imply -lpthread for
-       -pthread.
+       * config/m32r/linux.h (LIB_SPEC): Always imply -lpthread for -pthread.
 
 2007-06-18  Uros Bizjak  <ubizjak@gmail.com>
 
        * gcse.c (replace_store_insn): Update the note before
        calling emit_insn_after.
 
-2007-06-18  David Daney  <ddaney@avtrex.com
-
-       Revert:
-
-       2007-06-18  David Daney  <ddaney@avtrex.com
-
-       PR target/32313
-       * config/mips/mips.c (mips_expand_call): Mark $gp as used by
-       local function call.
-
-2007-06-18  David Daney  <ddaney@avtrex.com
-
-       PR target/32313
-       * config/mips/mips.c (mips_expand_call): Mark $gp as used by
-       local function call.
-
 2007-06-18  Kenneth Zadeck <zadeck@naturalbridge.com>
 
        PR middle-end/32355