diff options
Diffstat (limited to 'toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99436.patch')
-rw-r--r-- | toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99436.patch | 210 |
1 files changed, 0 insertions, 210 deletions
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99436.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99436.patch deleted file mode 100644 index 1373b83ed7..0000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99436.patch +++ /dev/null @@ -1,210 +0,0 @@ -2010-11-24 Maxim Kuvyrkov <maxim@codesourcery.com> - - gcc/ - * combine.c (subst, combine_simlify_rtx): Add new argument, use it - to track processing of conditionals. Update all callers. - (try_combine, simplify_if_then_else): Update. - -=== modified file 'gcc/combine.c' -Index: gcc-4_5-branch/gcc/combine.c -=================================================================== ---- gcc-4_5-branch.orig/gcc/combine.c 2011-07-22 17:24:46.000000000 -0700 -+++ gcc-4_5-branch/gcc/combine.c 2011-07-22 17:34:41.961747206 -0700 -@@ -392,8 +392,8 @@ - static void undo_all (void); - static void undo_commit (void); - static rtx *find_split_point (rtx *, rtx); --static rtx subst (rtx, rtx, rtx, int, int); --static rtx combine_simplify_rtx (rtx, enum machine_mode, int); -+static rtx subst (rtx, rtx, rtx, int, int, int); -+static rtx combine_simplify_rtx (rtx, enum machine_mode, int, int); - static rtx simplify_if_then_else (rtx); - static rtx simplify_set (rtx); - static rtx simplify_logical (rtx); -@@ -2962,12 +2962,12 @@ - if (i1) - { - subst_low_luid = DF_INSN_LUID (i1); -- i1src = subst (i1src, pc_rtx, pc_rtx, 0, 0); -+ i1src = subst (i1src, pc_rtx, pc_rtx, 0, 0, 0); - } - else - { - subst_low_luid = DF_INSN_LUID (i2); -- i2src = subst (i2src, pc_rtx, pc_rtx, 0, 0); -+ i2src = subst (i2src, pc_rtx, pc_rtx, 0, 0, 0); - } - } - -@@ -2978,7 +2978,7 @@ - to avoid self-referential rtl. */ - - subst_low_luid = DF_INSN_LUID (i2); -- newpat = subst (PATTERN (i3), i2dest, i2src, 0, -+ newpat = subst (PATTERN (i3), i2dest, i2src, 0, 0, - ! i1_feeds_i3 && i1dest_in_i1src); - substed_i2 = 1; - -@@ -3009,7 +3009,7 @@ - - n_occurrences = 0; - subst_low_luid = DF_INSN_LUID (i1); -- newpat = subst (newpat, i1dest, i1src, 0, 0); -+ newpat = subst (newpat, i1dest, i1src, 0, 0, 0); - substed_i1 = 1; - } - -@@ -3071,7 +3071,7 @@ - else - /* See comment where i2pat is assigned. */ - XVECEXP (newpat, 0, --total_sets) -- = subst (i2pat, i1dest, i1src, 0, 0); -+ = subst (i2pat, i1dest, i1src, 0, 0, 0); - } - } - -@@ -4623,11 +4623,13 @@ - - IN_DEST is nonzero if we are processing the SET_DEST of a SET. - -+ IN_COND is nonzero if we are on top level of the condition. -+ - UNIQUE_COPY is nonzero if each substitution must be unique. We do this - by copying if `n_occurrences' is nonzero. */ - - static rtx --subst (rtx x, rtx from, rtx to, int in_dest, int unique_copy) -+subst (rtx x, rtx from, rtx to, int in_dest, int in_cond, int unique_copy) - { - enum rtx_code code = GET_CODE (x); - enum machine_mode op0_mode = VOIDmode; -@@ -4688,7 +4690,7 @@ - && GET_CODE (XVECEXP (x, 0, 0)) == SET - && GET_CODE (SET_SRC (XVECEXP (x, 0, 0))) == ASM_OPERANDS) - { -- new_rtx = subst (XVECEXP (x, 0, 0), from, to, 0, unique_copy); -+ new_rtx = subst (XVECEXP (x, 0, 0), from, to, 0, 0, unique_copy); - - /* If this substitution failed, this whole thing fails. */ - if (GET_CODE (new_rtx) == CLOBBER -@@ -4705,7 +4707,7 @@ - && GET_CODE (dest) != CC0 - && GET_CODE (dest) != PC) - { -- new_rtx = subst (dest, from, to, 0, unique_copy); -+ new_rtx = subst (dest, from, to, 0, 0, unique_copy); - - /* If this substitution failed, this whole thing fails. */ - if (GET_CODE (new_rtx) == CLOBBER -@@ -4751,8 +4753,8 @@ - } - else - { -- new_rtx = subst (XVECEXP (x, i, j), from, to, 0, -- unique_copy); -+ new_rtx = subst (XVECEXP (x, i, j), from, to, 0, 0, -+ unique_copy); - - /* If this substitution failed, this whole thing - fails. */ -@@ -4829,7 +4831,9 @@ - && (code == SUBREG || code == STRICT_LOW_PART - || code == ZERO_EXTRACT)) - || code == SET) -- && i == 0), unique_copy); -+ && i == 0), -+ code == IF_THEN_ELSE && i == 0, -+ unique_copy); - - /* If we found that we will have to reject this combination, - indicate that by returning the CLOBBER ourselves, rather than -@@ -4886,7 +4890,7 @@ - /* If X is sufficiently simple, don't bother trying to do anything - with it. */ - if (code != CONST_INT && code != REG && code != CLOBBER) -- x = combine_simplify_rtx (x, op0_mode, in_dest); -+ x = combine_simplify_rtx (x, op0_mode, in_dest, in_cond); - - if (GET_CODE (x) == code) - break; -@@ -4906,10 +4910,12 @@ - expression. - - OP0_MODE is the original mode of XEXP (x, 0). IN_DEST is nonzero -- if we are inside a SET_DEST. */ -+ if we are inside a SET_DEST. IN_COND is nonzero if we are on the top level -+ of a condition. */ - - static rtx --combine_simplify_rtx (rtx x, enum machine_mode op0_mode, int in_dest) -+combine_simplify_rtx (rtx x, enum machine_mode op0_mode, int in_dest, -+ int in_cond) - { - enum rtx_code code = GET_CODE (x); - enum machine_mode mode = GET_MODE (x); -@@ -4964,8 +4970,8 @@ - false arms to store-flag values. Be careful to use copy_rtx - here since true_rtx or false_rtx might share RTL with x as a - result of the if_then_else_cond call above. */ -- true_rtx = subst (copy_rtx (true_rtx), pc_rtx, pc_rtx, 0, 0); -- false_rtx = subst (copy_rtx (false_rtx), pc_rtx, pc_rtx, 0, 0); -+ true_rtx = subst (copy_rtx (true_rtx), pc_rtx, pc_rtx, 0, 0, 0); -+ false_rtx = subst (copy_rtx (false_rtx), pc_rtx, pc_rtx, 0, 0, 0); - - /* If true_rtx and false_rtx are not general_operands, an if_then_else - is unlikely to be simpler. */ -@@ -5309,7 +5315,7 @@ - { - /* Try to simplify the expression further. */ - rtx tor = simplify_gen_binary (IOR, mode, XEXP (x, 0), XEXP (x, 1)); -- temp = combine_simplify_rtx (tor, VOIDmode, in_dest); -+ temp = combine_simplify_rtx (tor, VOIDmode, in_dest, 0); - - /* If we could, great. If not, do not go ahead with the IOR - replacement, since PLUS appears in many special purpose -@@ -5402,7 +5408,16 @@ - ZERO_EXTRACT is indeed appropriate, it will be placed back by - the call to make_compound_operation in the SET case. */ - -- if (STORE_FLAG_VALUE == 1 -+ if (in_cond) -+ /* Don't apply below optimizations if the caller would -+ prefer a comparison rather than a value. -+ E.g., for the condition in an IF_THEN_ELSE most targets need -+ an explicit comparison. */ -+ { -+ ; -+ } -+ -+ else if (STORE_FLAG_VALUE == 1 - && new_code == NE && GET_MODE_CLASS (mode) == MODE_INT - && op1 == const0_rtx - && mode == GET_MODE (op0) -@@ -5646,11 +5661,11 @@ - if (reg_mentioned_p (from, true_rtx)) - true_rtx = subst (known_cond (copy_rtx (true_rtx), true_code, - from, true_val), -- pc_rtx, pc_rtx, 0, 0); -+ pc_rtx, pc_rtx, 0, 0, 0); - if (reg_mentioned_p (from, false_rtx)) - false_rtx = subst (known_cond (copy_rtx (false_rtx), false_code, - from, false_val), -- pc_rtx, pc_rtx, 0, 0); -+ pc_rtx, pc_rtx, 0, 0, 0); - - SUBST (XEXP (x, 1), swapped ? false_rtx : true_rtx); - SUBST (XEXP (x, 2), swapped ? true_rtx : false_rtx); -@@ -5867,11 +5882,11 @@ - { - temp = subst (simplify_gen_relational (true_code, m, VOIDmode, - cond_op0, cond_op1), -- pc_rtx, pc_rtx, 0, 0); -+ pc_rtx, pc_rtx, 0, 0, 0); - temp = simplify_gen_binary (MULT, m, temp, - simplify_gen_binary (MULT, m, c1, - const_true_rtx)); -- temp = subst (temp, pc_rtx, pc_rtx, 0, 0); -+ temp = subst (temp, pc_rtx, pc_rtx, 0, 0, 0); - temp = simplify_gen_binary (op, m, gen_lowpart (m, z), temp); - - if (extend_op != UNKNOWN) |