(FIXED_REGNO_P): Remove previous change; all callers but one already check.
authorRichard Kenner <kenner@gcc.gnu.org>
Tue, 16 Mar 1993 22:41:57 +0000 (17:41 -0500)
committerRichard Kenner <kenner@gcc.gnu.org>
Tue, 16 Mar 1993 22:41:57 +0000 (17:41 -0500)
(CHEAP_REG): Only call FIXED_REGNO_P for hard regs.
(fold_rtx): Clarify comments.

From-SVN: r3762

gcc/cse.c

index f328ef8a9f2c8a9b12e9668b714959545d8b0b53..207c51daaddc1a18e3b8625a19a1a84c65b56d28 100644 (file)
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -438,13 +438,11 @@ struct table_elt
    but not if it is an overlapping register.  */
 #ifdef OVERLAPPING_REGNO_P
 #define FIXED_REGNO_P(N)  \
-  (((N) == FRAME_POINTER_REGNUM                                \
-    || ((N) < FIRST_PSEUDO_REGISTER && fixed_regs[N])) \
+  (((N) == FRAME_POINTER_REGNUM || fixed_regs[N])      \
    && ! OVERLAPPING_REGNO_P ((N)))
 #else
 #define FIXED_REGNO_P(N)  \
-  ((N) == FRAME_POINTER_REGNUM                         \
-   || ((N) < FIRST_PSEUDO_REGISTER && fixed_regs[N]))
+  ((N) == FRAME_POINTER_REGNUM || fixed_regs[N])
 #endif
 
 /* Compute cost of X, as stored in the `cost' field of a table_elt.  Fixed
@@ -456,7 +454,8 @@ struct table_elt
   ((N) == FRAME_POINTER_REGNUM || (N) == STACK_POINTER_REGNUM \
    || (N) == ARG_POINTER_REGNUM                                \
    || (N) >= FIRST_VIRTUAL_REGISTER && (N) <= LAST_VIRTUAL_REGISTER  \
-   || (FIXED_REGNO_P (N) && REGNO_REG_CLASS (N) != NO_REGS))
+   || ((N) < FIRST_PSEUDO_REGISTER                     \
+       && FIXED_REGNO_P (N) && REGNO_REG_CLASS (N) != NO_REGS))
 
 #define COST(X)                                                \
   (GET_CODE (X) == REG                                 \
@@ -4474,11 +4473,9 @@ simplify_ternary_operation (code, mode, op0_mode, op0, op1, op2)
    Otherwise, return X, possibly with one or more operands
    modified by recursive calls to this function.
 
-   If X is a register whose contents are known, we may or may not
-   return those contents.  An instruction that uses a register is usually
-   faster than one that uses a constant.  But on machines with few hard
-   regs, using a register instead of a constant increases register life,
-   hurting register allocation.
+   If X is a register whose contents are known, we do NOT
+   return those contents here.  equiv_constant is called to
+   perform that task.
 
    INSN is the insn that we may be modifying.  If it is 0, make a copy
    of X before modifying it.  */