aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Austern <austern@apple.com>2004-11-24 18:22:27 +0000
committerMatt Austern <austern@gcc.gnu.org>2004-11-24 18:22:27 +0000
commitf5523e6dedd24c21d7127775a6322399eccefcc9 (patch)
tree541afad07a054071f9b596da5f93ae365b489e19
parent62a4d9428b459473bdb080c9734c1db46e87d6dd (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--gcc/recog.c16
-rw-r--r--gcc/recog.h21
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;