summaryrefslogtreecommitdiff
path: root/gcc/regmove.c
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1999-09-07 05:49:18 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1999-09-07 05:49:18 +0000
commit7014838cdd847f5d22f8b4bff0285ad622b707b5 (patch)
treef1a67b6ea75a7f0da3f06e0a1c60b213f4403168 /gcc/regmove.c
parent713829e97b2cabe9369424002f6efb23a7c86aba (diff)
downloadgcc-7014838cdd847f5d22f8b4bff0285ad622b707b5.tar.gz
Merge in gcc2-ss-010999
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29150 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/regmove.c')
-rw-r--r--gcc/regmove.c55
1 files changed, 0 insertions, 55 deletions
diff --git a/gcc/regmove.c b/gcc/regmove.c
index 11a5c704dd4..424e3b11dfc 100644
--- a/gcc/regmove.c
+++ b/gcc/regmove.c
@@ -2128,58 +2128,3 @@ stable_but_for_p (x, src, dst)
return ! rtx_unstable_p (x);
}
}
-
-/* Test if regmove seems profitable for this target. Regmove is useful only
- if some common patterns are two address, i.e. require matching constraints,
- so we check that condition here. */
-
-int
-regmove_profitable_p ()
-{
-#ifdef REGISTER_CONSTRAINTS
- struct match match;
- enum machine_mode mode;
- optab tstoptab = add_optab;
- do /* check add_optab and ashl_optab */
- for (mode = GET_CLASS_NARROWEST_MODE (MODE_INT); mode != VOIDmode;
- mode = GET_MODE_WIDER_MODE (mode))
- {
- int icode = (int) tstoptab->handlers[(int) mode].insn_code;
- rtx reg0, reg1, reg2, pat;
- int i;
-
- if (GET_MODE_BITSIZE (mode) < 32 || icode == CODE_FOR_nothing)
- continue;
- for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
- if (TEST_HARD_REG_BIT (reg_class_contents[GENERAL_REGS], i))
- break;
- if (i + 2 >= FIRST_PSEUDO_REGISTER)
- break;
- reg0 = gen_rtx_REG (insn_operand_mode[icode][0], i);
- reg1 = gen_rtx_REG (insn_operand_mode[icode][1], i + 1);
- reg2 = gen_rtx_REG (insn_operand_mode[icode][2], i + 2);
- if (! (*insn_operand_predicate[icode][0]) (reg0, VOIDmode)
- || ! (*insn_operand_predicate[icode][1]) (reg1, VOIDmode)
- || ! (*insn_operand_predicate[icode][2]) (reg2, VOIDmode))
- break;
- pat = GEN_FCN (icode) (reg0, reg1, reg2);
- if (! pat)
- continue;
- if (GET_CODE (pat) == SEQUENCE)
- pat = XVECEXP (pat, 0, XVECLEN (pat, 0) - 1);
- else
- pat = make_insn_raw (pat);
- if (! single_set (pat)
- || GET_CODE (SET_SRC (single_set (pat))) != tstoptab->code)
- /* Unexpected complexity; don't need to handle this unless
- we find a machine where this occurs and regmove should
- be enabled. */
- break;
- if (find_matches (pat, &match))
- return 1;
- break;
- }
- while (tstoptab != ashl_optab && (tstoptab = ashl_optab, 1));
-#endif /* REGISTER_CONSTRAINTS */
- return 0;
-}