diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 62854cdae1c78abc2e318ad536370acffb1ef904..d2ffdac017bba235e03d929148630d3b64c650f1 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 d39bb849701edb1fe7dfbf5dc81fc1df197dfba4..056e656901ae0d9bb398d7a1bd1bafbce868b5fd 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 eae37fb4442cadfc608f777f2e98a284c5f3ea23..3e88fad58cd56c3e4a8e3941d9c66ebb71040eb0 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;