===================================================================
@@ -25,14 +25,13 @@ along with GCC; see the file COPYING3. If not see
/* Macro to clear all resources. */
#define CLEAR_RESOURCE(RES) \
- do { (RES)->memory = (RES)->unch_memory = (RES)->volatil = (RES)->cc = 0; \
+ do { (RES)->memory = (RES)->volatil = (RES)->cc = 0; \
CLEAR_HARD_REG_SET ((RES)->regs); } while (0)
/* The resources used by a given insn. */
struct resources
{
char memory; /* Insn sets or needs a memory location. */
- char unch_memory; /* Insn sets or needs an "unchanging" MEM. */
char volatil; /* Insn sets or needs a volatile memory loc. */
char cc; /* Insn sets or needs the condition codes. */
HARD_REG_SET regs; /* Which registers are set or needed. */
===================================================================
@@ -240,9 +240,7 @@ mark_referenced_resources (rtx x, struct resources
case MEM:
/* If this memory shouldn't change, it really isn't referencing
memory. */
- if (MEM_READONLY_P (x))
- res->unch_memory = 1;
- else
+ if (! MEM_READONLY_P (x))
res->memory = 1;
res->volatil |= MEM_VOLATILE_P (x);
@@ -740,7 +738,6 @@ mark_set_resources (rtx x, struct resources *res,
if (in_dest)
{
res->memory = 1;
- res->unch_memory |= MEM_READONLY_P (x);
res->volatil |= MEM_VOLATILE_P (x);
}
@@ -896,7 +893,7 @@ mark_target_live_regs (rtx insns, rtx target, stru
/* We have to assume memory is needed, but the CC isn't. */
res->memory = 1;
- res->volatil = res->unch_memory = 0;
+ res->volatil = 0;
res->cc = 0;
/* See if we have computed this value already. */
@@ -1145,7 +1142,6 @@ init_resource_info (rtx epilogue_insn)
end_of_function_needs.cc = 0;
end_of_function_needs.memory = 1;
- end_of_function_needs.unch_memory = 0;
CLEAR_HARD_REG_SET (end_of_function_needs.regs);
if (frame_pointer_needed)
===================================================================
@@ -276,7 +276,6 @@ static int
resource_conflicts_p (struct resources *res1, struct resources *res2)
{
if ((res1->cc && res2->cc) || (res1->memory && res2->memory)
- || (res1->unch_memory && res2->unch_memory)
|| res1->volatil || res2->volatil)
return 1;
@@ -1542,7 +1541,6 @@ redundant_insn (rtx insn, rtx target, rtx delay_li
/* Insns we pass may not set either NEEDED or SET, so merge them for
simpler tests. */
needed.memory |= set.memory;
- needed.unch_memory |= set.unch_memory;
IOR_HARD_REG_SET (needed.regs, set.regs);
/* This insn isn't redundant if it conflicts with an insn that either is