diff options
author | Matt Austern <austern@apple.com> | 2004-11-24 18:22:27 +0000 |
---|---|---|
committer | Matt Austern <austern@gcc.gnu.org> | 2004-11-24 18:22:27 +0000 |
commit | f5523e6dedd24c21d7127775a6322399eccefcc9 (patch) | |
tree | 541afad07a054071f9b596da5f93ae365b489e19 | |
parent | 62a4d9428b459473bdb080c9734c1db46e87d6dd (diff) | |
download | gcc-f5523e6dedd24c21d7127775a6322399eccefcc9.zip gcc-f5523e6dedd24c21d7127775a6322399eccefcc9.tar.gz gcc-f5523e6dedd24c21d7127775a6322399eccefcc9.tar.bz2 |
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
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/recog.c | 16 | ||||
-rw-r--r-- | gcc/recog.h | 21 |
3 files changed, 24 insertions, 19 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 62854cd..d2ffdac 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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> PR/18555 diff --git a/gcc/recog.c b/gcc/recog.c index d39bb84..056e656 100644 --- a/gcc/recog.c +++ b/gcc/recog.c @@ -107,22 +107,6 @@ init_recog (void) 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 and that the operands mentioned in it are legitimate. */ diff --git a/gcc/recog.h b/gcc/recog.h index eae37fb..3e88fad5 100644 --- a/gcc/recog.h +++ b/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. */ #define MAX_RECOG_ALTERNATIVES 30 -#define recog_memoized(I) (INSN_CODE (I) >= 0 \ - ? INSN_CODE (I) : recog_memoized_1 (I)) /* Types of operands. */ enum op_type { @@ -73,7 +71,6 @@ struct operand_alternative extern void init_recog (void); extern void init_recog_no_volatile (void); -extern int recog_memoized_1 (rtx); extern int check_asm_operands (rtx); extern int asm_operand_ok (rtx, const char *); 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 recog (rtx, rtx, int *); +static inline int recog_memoized (rtx insn); extern void add_clobbers (rtx, int); extern int added_clobbers_hard_reg_p (int); 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 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. */ extern int volatile_ok; |