RISC-V: Add sifive-7 pipeline description.
authorAndrew Waterman <andrew@sifive.com>
Tue, 26 Mar 2019 19:41:02 +0000 (19:41 +0000)
committerJim Wilson <wilson@gcc.gnu.org>
Tue, 26 Mar 2019 19:41:02 +0000 (12:41 -0700)
commit88108b27dda964afc145e9e5d176a481d1aee707
treed246eb687ec1e908666d71afffd2152c6a17ccd7
parenta48d7fa69843ab586f553a3d7d8a3546cc617692
RISC-V: Add sifive-7 pipeline description.

* config/riscv/generic.md (generic_alu, generic_load, generic_store)
(generic_xfer, generic_branch, generic_imul, generic_idivsi)
(generic_idivdi, generic_fmul_single, generic_fmul_double)
(generic_fdiv, generic_fsqrt): Add check for generic tune.
(generic_alu): Add auipc to type list.
* config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New.
(riscv_microarchitecture): Declare.
* config/riscv/riscv-protos.h (riscv_store_data_bypass_p): Declare.
* config/riscv/riscv.c (struct riscv_cpu_info): Add microarchitecture
field.
(riscv_microarchitecture): New.
(sifive_7_tune_info): New.
(riscv_cpu_info_table): Add microarchitecture value for rocket and
size.  Add sifive-3-series, sifive-5-series, and sifive-7-series
entries.
(riscv_store_data_bypass_p): New.
(riscv_option_override): Set riscv_microarchitecture from
cpu->microarchitecture.
* config/riscv/riscv.md: Include sifive-7.md.
(type): Add auipc.
(tune): New.
(auipc<mode>): Change type to auipc.
(restore_stack_nonlocal): New.
* config/riscv/sifive-7.md: New.
* doc/invoke.texi (RISC-V Options): Update mtune docs.

Co-Authored-By: Jim Wilson <jimw@sifive.com>
From-SVN: r269954
gcc/ChangeLog
gcc/config/riscv/generic.md
gcc/config/riscv/riscv-opts.h
gcc/config/riscv/riscv-protos.h
gcc/config/riscv/riscv.c
gcc/config/riscv/riscv.md
gcc/config/riscv/sifive-7.md [new file with mode: 0644]
gcc/doc/invoke.texi