Commit e14b50ce by Jerry Quinn Committed by Jeff Law

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
parent 14f45d6b
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):
......
......@@ -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)
......
......@@ -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. */
......
......@@ -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.
......
......@@ -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.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment