OSDN Git Service

* pa.h (processor_type): Add PROCESSOR_8000 symbol.
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 17 Mar 1999 19:46:37 +0000 (19:46 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 17 Mar 1999 19:46:37 +0000 (19:46 +0000)
        (ISSUE_RATE):  Revamp, including PA8000 support.
        * pa.c (override_options):  Add 8000 as -mschedule= option.
        Do not call strcmp if pa_cpu_string is null.
        * pa.md (attr cpu):  Add 8000.
        * invoke.texi: Add documentation for PA8000 scheduling.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@25828 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/pa/pa.c
gcc/config/pa/pa.h
gcc/config/pa/pa.md
gcc/invoke.texi

index 17611fc..7a1d7bb 100644 (file)
@@ -1,3 +1,13 @@
+Wed Mar 17 20:38:08 1999  Jerry Quinn <jquinn@nortelnetworks.com>
+                         Jeff Law <law@cygnus.com>
+
+        * pa.h (processor_type):  Add PROCESSOR_8000 symbol.
+        (ISSUE_RATE):  Revamp, including PA8000 support.
+        * pa.c (override_options):  Add 8000 as -mschedule= option.
+       Do not call strcmp if pa_cpu_string is null.
+        * pa.md (attr cpu):  Add 8000.
+       * invoke.texi: Add documentation for PA8000 scheduling.
+        
 Wed Mar 17 18:20:24 1999  David S. Miller  <davem@redhat.com>
 
        * config/sparc/sparc.h (TARGET_SWITCHES, TARGET_OPTIONS):
index cb178ca..6eb4ea7 100644 (file)
@@ -97,12 +97,12 @@ void
 override_options ()
 {
   /* Default to 7100LC scheduling.  */
-  if (! strcmp (pa_cpu_string, "7100"))
+  if (pa_cpu_string && ! strcmp (pa_cpu_string, "7100"))
     {
       pa_cpu_string = "7100";
       pa_cpu = PROCESSOR_7100;
     }
-  else if (! strcmp (pa_cpu_string, "700"))
+  else if (pa_cpu_string && ! strcmp (pa_cpu_string, "700"))
     {
       pa_cpu_string = "700";
       pa_cpu = PROCESSOR_700;
@@ -113,14 +113,19 @@ override_options ()
       pa_cpu_string = "7100LC";
       pa_cpu = PROCESSOR_7100LC;
     }
-  else if (! strcmp (pa_cpu_string, "7200"))
+  else if (pa_cpu_string && ! strcmp (pa_cpu_string, "7200"))
     {
       pa_cpu_string = "7200";
       pa_cpu = PROCESSOR_7200;
     }
+  else if (pa_cpu_string && ! strcmp (pa_cpu_string, "8000"))
+    {
+      pa_cpu_string = "8000";
+      pa_cpu = PROCESSOR_8000;
+    }
   else
     {
-      warning ("Unknown -mschedule= option (%s).\nValid options are 700, 7100 and 7100LC and 7200\n", pa_cpu_string);
+      warning ("Unknown -mschedule= option (%s).\nValid options are 700, 7100, 7100LC, 7200, and 8000\n", pa_cpu_string);
     }
 
   if (flag_pic && TARGET_PORTABLE_RUNTIME)
index 955fb93..3eaacf7 100644 (file)
@@ -39,7 +39,8 @@ enum processor_type
   PROCESSOR_700,
   PROCESSOR_7100,
   PROCESSOR_7100LC,
-  PROCESSOR_7200
+  PROCESSOR_7200,
+  PROCESSOR_8000
 };
 
 /* For -mschedule= option.  */
@@ -49,8 +50,15 @@ extern enum processor_type pa_cpu;
 #define pa_cpu_attr ((enum attr_cpu)pa_cpu)
 
 /* The 700 can only issue a single insn at a time.
-   The 7XXX processors can issue two insns at a time.  */
-#define ISSUE_RATE (pa_cpu == PROCESSOR_700 ? 1 : 2)
+   The 7XXX processors can issue two insns at a time.
+   The 8000 can issue 4 insns at a time.  */
+#define ISSUE_RATE \
+  (pa_cpu == PROCESSOR_700 ? 1 \
+   : pa_cpu == PROCESSOR_7100 ? 2 \
+   : pa_cpu == PROCESSOR_7100LC ? 2 \
+   : pa_cpu == PROCESSOR_7200 ? 2 \
+   : pa_cpu == PROCESSOR_8000 ? 4 \
+   : 2)
 
 /* Print subsidiary information on the compiler version in use.  */
 
index 568863e..e1d0661 100644 (file)
@@ -43,7 +43,7 @@
 ;;
 ;; FIXME: Add 800 scheduling for completeness?
 
-(define_attr "cpu" "700,7100,7100LC,7200" (const (symbol_ref "pa_cpu_attr")))
+(define_attr "cpu" "700,7100,7100LC,7200,8000" (const (symbol_ref "pa_cpu_attr")))
 
 ;; Length (in # of insns).
 (define_attr "length" ""
 ;; treat it just like the 7100LC pipeline.
 ;; Similarly for the multi-issue fake units.
 
+;; PA8000 scheduling
+;;
+;; HP recommends against latency scheduling on the PA8000.
+;;
+;; For now we do not actually define any scheduling parameters for the PA8000.
+;;
+;; -msched=8000 is mostly so that we can retune the code sequences to improve
+;; performance on the PA8000 class machines.
+;; 
+
 \f
 ;; Compare instructions.
 ;; This controls RTL generation and register allocation.
index 5ea74bf..8a90238 100644 (file)
@@ -5190,7 +5190,7 @@ Enable the use of assembler directives only GAS understands.
 @item -mschedule=@var{cpu type}
 Schedule code according to the constraints for the machine type
 @var{cpu type}.  The choices for @var{cpu type} are @samp{700} 
-@samp{7100}, @samp{7100LC}, and @samp{7200}.  Refer to 
+@samp{7100}, @samp{7100LC}, @samp{7200}, and @samp{8000}.  Refer to 
 @file{/usr/lib/sched.models} on an HP-UX system to determine the
 proper scheduling option for your machine.