X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Frtlanal.c;h=f5dc0bb39fd84f068bdd8697564619c8c7f3dea8;hp=ab88f23a3790b7bba105f6a4333dbb9e07b9d7ca;hb=b3e3e0ad39c4fef86bca4456c0b3dadf68dc3fe6;hpb=42982f3eb81ef5937a47218569aa656164633a1a diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c index ab88f23a379..f5dc0bb39fd 100644 --- a/gcc/rtlanal.c +++ b/gcc/rtlanal.c @@ -33,7 +33,6 @@ along with GCC; see the file COPYING3. If not see #include "output.h" #include "tm_p.h" #include "flags.h" -#include "real.h" #include "regs.h" #include "function.h" #include "df.h" @@ -611,7 +610,7 @@ count_occurrences (const_rtx x, const_rtx find, int count_dest) if (XEXP (x, 1)) count += count_occurrences (XEXP (x, 1), find, count_dest); return count; - + case MEM: if (MEM_P (find) && rtx_equal_p (x, find)) return 1; @@ -2778,11 +2777,11 @@ for_each_rtx_1 (rtx exp, int n, rtx_function f, void *data) else if (result != 0) /* Stop the traversal. */ return result; - + if (*x == NULL_RTX) /* There are no sub-expressions. */ continue; - + i = non_rtx_starting_operands[GET_CODE (*x)]; if (i >= 0) { @@ -2807,11 +2806,11 @@ for_each_rtx_1 (rtx exp, int n, rtx_function f, void *data) else if (result != 0) /* Stop the traversal. */ return result; - + if (*x == NULL_RTX) /* There are no sub-expressions. */ continue; - + i = non_rtx_starting_operands[GET_CODE (*x)]; if (i >= 0) { @@ -2911,7 +2910,7 @@ int commutative_operand_precedence (rtx op) { enum rtx_code code = GET_CODE (op); - + /* Constants always come the second operand. Prefer "nice" constants. */ if (code == CONST_INT) return -8; @@ -2958,7 +2957,7 @@ commutative_operand_precedence (rtx op) operand. In particular, (plus (minus (reg) (reg)) (neg (reg))) is canonical, although it will usually be further simplified. */ return 2; - + case RTX_UNARY: /* Then prefer NEG and NOT. */ if (code == NEG || code == NOT) @@ -3127,10 +3126,10 @@ subreg_get_info (unsigned int xregno, enum machine_mode xmode, picking a different register class, or doing it in memory if necessary.) An example of a value with holes is XCmode on 32-bit x86 with -m128bit-long-double; it's represented in 6 32-bit registers, - 3 for each part, but in memory it's two 128-bit parts. + 3 for each part, but in memory it's two 128-bit parts. Padding is assumed to be at the end (not necessarily the 'high part') of each unit. */ - if ((offset / GET_MODE_SIZE (xmode_unit) + 1 + if ((offset / GET_MODE_SIZE (xmode_unit) + 1 < GET_MODE_NUNITS (xmode)) && (offset / GET_MODE_SIZE (xmode_unit) != ((offset + GET_MODE_SIZE (ymode) - 1) @@ -3142,7 +3141,7 @@ subreg_get_info (unsigned int xregno, enum machine_mode xmode, } else nregs_xmode = hard_regno_nregs[xregno][xmode]; - + nregs_ymode = hard_regno_nregs[xregno][ymode]; /* Paradoxical subregs are otherwise valid. */ @@ -3474,7 +3473,7 @@ keep_with_call_p (const_rtx insn) && general_operand (SET_SRC (set), VOIDmode)) return true; if (REG_P (SET_SRC (set)) - && FUNCTION_VALUE_REGNO_P (REGNO (SET_SRC (set))) + && targetm.calls.function_value_regno_p (REGNO (SET_SRC (set))) && REG_P (SET_DEST (set)) && REGNO (SET_DEST (set)) >= FIRST_PSEUDO_REGISTER) return true; @@ -3528,7 +3527,7 @@ label_is_jump_target_p (const_rtx label, const_rtx jump_insn) /* Return an estimate of the cost of computing rtx X. One use is in cse, to decide which expression to keep in the hash table. Another is in rtl generation, to pick the cheapest way to multiply. - Other uses like the latter are expected in the future. + Other uses like the latter are expected in the future. SPEED parameter specify whether costs optimized for speed or size should be returned. */ @@ -3602,7 +3601,7 @@ rtx_cost (rtx x, enum rtx_code outer_code ATTRIBUTE_UNUSED, bool speed) } /* Return cost of address expression X. - Expect that X is properly formed address reference. + Expect that X is properly formed address reference. SPEED parameter specify whether costs optimized for speed or size should be returned. */ @@ -3829,8 +3828,8 @@ nonzero_bits1 (const_rtx x, enum machine_mode mode, const_rtx known_x, /* If this produces an integer result, we know which bits are set. Code here used to clear bits outside the mode of X, but that is now done above. */ - /* Mind that MODE is the mode the caller wants to look at this - operation in, and not the actual operation mode. We can wind + /* Mind that MODE is the mode the caller wants to look at this + operation in, and not the actual operation mode. We can wind up with (subreg:DI (gt:V4HI x y)), and we don't have anything that describes the results of a vector compare. */ if (GET_MODE_CLASS (GET_MODE (x)) == MODE_INT @@ -4678,7 +4677,7 @@ insn_rtx_cost (rtx pat, bool speed) If WANT_REG is nonzero, we wish the condition to be relative to that register, if possible. Therefore, do not canonicalize the condition - further. If ALLOW_CC_MODE is nonzero, allow the condition returned + further. If ALLOW_CC_MODE is nonzero, allow the condition returned to be a compare to a CC mode register. If VALID_AT_INSN_P, the condition must be valid at both *EARLIEST