diff options
author | Jerry Quinn <jquinn@nortelnetworks.com> | 1999-03-17 19:46:37 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1999-03-17 12:46:37 -0700 |
commit | e14b50cef771802f70fa720e700569dd47aa1a9d (patch) | |
tree | 181a040f08e42c47fa29d7a5f2a4f0a404efb6b3 | |
parent | 14f45d6b9fc14b4dcfb86464cb61536de48023cc (diff) | |
download | gcc-e14b50cef771802f70fa720e700569dd47aa1a9d.zip gcc-e14b50cef771802f70fa720e700569dd47aa1a9d.tar.gz gcc-e14b50cef771802f70fa720e700569dd47aa1a9d.tar.bz2 |
pa.h (processor_type): Add PROCESSOR_8000 symbol.
* 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.
Co-Authored-By: Jeffrey A Law <law@cygnus.com>
From-SVN: r25828
-rw-r--r-- | gcc/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/config/pa/pa.c | 13 | ||||
-rw-r--r-- | gcc/config/pa/pa.h | 14 | ||||
-rw-r--r-- | gcc/config/pa/pa.md | 12 | ||||
-rw-r--r-- | gcc/invoke.texi | 2 |
5 files changed, 42 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 17611fc..7a1d7bb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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): diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index cb178ca..6eb4ea7 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -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) diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h index 955fb93..3eaacf7 100644 --- a/gcc/config/pa/pa.h +++ b/gcc/config/pa/pa.h @@ -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. */ diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md index 568863e..e1d0661 100644 --- a/gcc/config/pa/pa.md +++ b/gcc/config/pa/pa.md @@ -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" "" @@ -350,6 +350,16 @@ ;; 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. +;; + ;; Compare instructions. ;; This controls RTL generation and register allocation. diff --git a/gcc/invoke.texi b/gcc/invoke.texi index 5ea74bf..8a90238 100644 --- a/gcc/invoke.texi +++ b/gcc/invoke.texi @@ -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. |