This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH]: Add special code generation for SGI IP28.


peter fuerst wrote:

diff -Nau orig/gcc/config/mips/mips.opt ip28/gcc/config/mips/mips.opt
--- orig/gcc/config/mips/mips.opt	Sat Jul 23 10:36:54 2005
+++ ip28/gcc/config/mips/mips.opt	Mon Feb 27 00:47:22 2006
@@ -216,3 +216,7 @@
 mxgot
 Target Report Var(TARGET_XGOT)
 Lift restrictions on GOT size
+
+mip28-cache-barrier
+Target Report RejectNegative Var(mips_ip28_cache_barrier)
+Generate special cache barriers for SGI Indigo2 R10k
diff -Nau orig/gcc/config/mips/mips.h ip28/gcc/config/mips/mips.h
--- orig/gcc/config/mips/mips.h	Wed Feb  8 19:31:36 2006
+++ ip28/gcc/config/mips/mips.h	Mon Feb 27 00:09:36 2006
@@ -194,6 +194,7 @@
 #define TARGET_MIPS9000             (mips_arch == PROCESSOR_R9000)
 #define TARGET_SB1                  (mips_arch == PROCESSOR_SB1)
 #define TARGET_SR71K                (mips_arch == PROCESSOR_SR71000)
+#define TARGET_IP28                 (mips_ip28_cache_barrier != 0)

 /* Scheduling target defines.  */
 #define TUNE_MIPS3000               (mips_tune == PROCESSOR_R3000)
diff -Nau orig/gcc/config/mips/mips.c ip28/gcc/config/mips/mips.c
--- orig/gcc/config/mips/mips.c	Mon Feb  6 19:20:47 2006
+++ ip28/gcc/config/mips/mips.c	Mon Feb 27 00:43:09 2006
@@ -8927,6 +8927,13 @@
       if (TUNE_MIPS4130 && TARGET_VR4130_ALIGN)
 	vr4130_align_insns ();
     }
+#ifdef TARGET_IP28
+  if (TARGET_IP28)
+    {
+      static int ip28_for_each_bb (void);
+      ip28_for_each_bb ();
+    }
+#endif
 }

 /* This function does three things:
@@ -10783,5 +10790,9 @@
     bitmap_set_bit (regs, PIC_FUNCTION_ADDR_REGNUM);
 }

+
+#ifdef TARGET_IP28
+#include "ip28.c"
+#endif

You know that TARGET_IP28 is defined, as you just defined it. The #ifdef checks will always be true and can be omitted. Probably just put the contents of ip28.c right in mips.c. Also declare ip28_for_each_bb at the global level with the rest of the declarations. Alternatively put the body of ip28_for_each_bb before its use.

David Daney


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]