Minor back end speedup.
* recog.c (recog_memoized_1): Remove. * recog.h (recog_memoized_1): Remove declaration. (recog_memoized): Change from macro to inline function. From-SVN: r91185
This commit is contained in:
parent
62a4d9428b
commit
f5523e6ded
|
@ -1,3 +1,9 @@
|
||||||
|
2004-11-24 Matt Austern <austern@apple.com>
|
||||||
|
|
||||||
|
* recog.c (recog_memoized_1): Remove.
|
||||||
|
* recog.h (recog_memoized_1): Remove declaration.
|
||||||
|
(recog_memoized): Change from macro to inline function.
|
||||||
|
|
||||||
2004-11-24 Devang Patel <dpatel@apple.com>
|
2004-11-24 Devang Patel <dpatel@apple.com>
|
||||||
|
|
||||||
PR/18555
|
PR/18555
|
||||||
|
|
16
gcc/recog.c
16
gcc/recog.c
|
@ -107,22 +107,6 @@ init_recog (void)
|
||||||
volatile_ok = 1;
|
volatile_ok = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Try recognizing the instruction INSN,
|
|
||||||
and return the code number that results.
|
|
||||||
Remember the code so that repeated calls do not
|
|
||||||
need to spend the time for actual rerecognition.
|
|
||||||
|
|
||||||
This function is the normal interface to instruction recognition.
|
|
||||||
The automatically-generated function `recog' is normally called
|
|
||||||
through this one. (The only exception is in combine.c.) */
|
|
||||||
|
|
||||||
int
|
|
||||||
recog_memoized_1 (rtx insn)
|
|
||||||
{
|
|
||||||
if (INSN_CODE (insn) < 0)
|
|
||||||
INSN_CODE (insn) = recog (PATTERN (insn), insn, 0);
|
|
||||||
return INSN_CODE (insn);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Check that X is an insn-body for an `asm' with operands
|
/* Check that X is an insn-body for an `asm' with operands
|
||||||
and that the operands mentioned in it are legitimate. */
|
and that the operands mentioned in it are legitimate. */
|
||||||
|
|
21
gcc/recog.h
21
gcc/recog.h
|
@ -21,8 +21,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
||||||
|
|
||||||
/* Random number that should be large enough for all purposes. */
|
/* Random number that should be large enough for all purposes. */
|
||||||
#define MAX_RECOG_ALTERNATIVES 30
|
#define MAX_RECOG_ALTERNATIVES 30
|
||||||
#define recog_memoized(I) (INSN_CODE (I) >= 0 \
|
|
||||||
? INSN_CODE (I) : recog_memoized_1 (I))
|
|
||||||
|
|
||||||
/* Types of operands. */
|
/* Types of operands. */
|
||||||
enum op_type {
|
enum op_type {
|
||||||
|
@ -73,7 +71,6 @@ struct operand_alternative
|
||||||
|
|
||||||
extern void init_recog (void);
|
extern void init_recog (void);
|
||||||
extern void init_recog_no_volatile (void);
|
extern void init_recog_no_volatile (void);
|
||||||
extern int recog_memoized_1 (rtx);
|
|
||||||
extern int check_asm_operands (rtx);
|
extern int check_asm_operands (rtx);
|
||||||
extern int asm_operand_ok (rtx, const char *);
|
extern int asm_operand_ok (rtx, const char *);
|
||||||
extern int validate_change (rtx, rtx *, rtx, int);
|
extern int validate_change (rtx, rtx *, rtx, int);
|
||||||
|
@ -102,6 +99,7 @@ extern int offsettable_address_p (int, enum machine_mode, rtx);
|
||||||
extern int mode_dependent_address_p (rtx);
|
extern int mode_dependent_address_p (rtx);
|
||||||
|
|
||||||
extern int recog (rtx, rtx, int *);
|
extern int recog (rtx, rtx, int *);
|
||||||
|
static inline int recog_memoized (rtx insn);
|
||||||
extern void add_clobbers (rtx, int);
|
extern void add_clobbers (rtx, int);
|
||||||
extern int added_clobbers_hard_reg_p (int);
|
extern int added_clobbers_hard_reg_p (int);
|
||||||
extern void insn_extract (rtx);
|
extern void insn_extract (rtx);
|
||||||
|
@ -122,6 +120,23 @@ extern rtx peephole2_insns (rtx, rtx, int *);
|
||||||
extern int store_data_bypass_p (rtx, rtx);
|
extern int store_data_bypass_p (rtx, rtx);
|
||||||
extern int if_test_bypass_p (rtx, rtx);
|
extern int if_test_bypass_p (rtx, rtx);
|
||||||
|
|
||||||
|
/* Try recognizing the instruction INSN,
|
||||||
|
and return the code number that results.
|
||||||
|
Remember the code so that repeated calls do not
|
||||||
|
need to spend the time for actual rerecognition.
|
||||||
|
|
||||||
|
This function is the normal interface to instruction recognition.
|
||||||
|
The automatically-generated function `recog' is normally called
|
||||||
|
through this one. (The only exception is in combine.c.) */
|
||||||
|
|
||||||
|
static inline int
|
||||||
|
recog_memoized (rtx insn)
|
||||||
|
{
|
||||||
|
if (INSN_CODE (insn) < 0)
|
||||||
|
INSN_CODE (insn) = recog (PATTERN (insn), insn, 0);
|
||||||
|
return INSN_CODE (insn);
|
||||||
|
}
|
||||||
|
|
||||||
/* Nonzero means volatile operands are recognized. */
|
/* Nonzero means volatile operands are recognized. */
|
||||||
extern int volatile_ok;
|
extern int volatile_ok;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue