aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJojo R <rjiejie@linux.alibaba.com>2021-06-21 20:42:43 +0800
committerKito Cheng <kito.cheng@sifive.com>2021-06-22 17:14:25 +0800
commit7822285515cd4dab86f722a9f4969b6952904a37 (patch)
tree393ac5ed7d85ccf88717197f45eabb54d8cf2488 /gcc
parentf0e40ea0640aa0b324ec17e72154997468f33bc7 (diff)
downloadgcc-7822285515cd4dab86f722a9f4969b6952904a37.zip
gcc-7822285515cd4dab86f722a9f4969b6952904a37.tar.gz
gcc-7822285515cd4dab86f722a9f4969b6952904a37.tar.bz2
RISC-V: Add tune info for T-HEAD C906.
gcc/ * config/riscv/riscv.c (thead_c906_tune_info): New. (riscv_tune_info_table): Use new tune.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/riscv/riscv.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/gcc/config/riscv/riscv.c b/gcc/config/riscv/riscv.c
index 1baa299..576960b 100644
--- a/gcc/config/riscv/riscv.c
+++ b/gcc/config/riscv/riscv.c
@@ -300,6 +300,19 @@ static const struct riscv_tune_param sifive_7_tune_info = {
true, /* slow_unaligned_access */
};
+/* Costs to use when optimizing for T-HEAD c906. */
+static const struct riscv_tune_param thead_c906_tune_info = {
+ {COSTS_N_INSNS (4), COSTS_N_INSNS (5)}, /* fp_add */
+ {COSTS_N_INSNS (4), COSTS_N_INSNS (5)}, /* fp_mul */
+ {COSTS_N_INSNS (20), COSTS_N_INSNS (20)}, /* fp_div */
+ {COSTS_N_INSNS (4), COSTS_N_INSNS (4)}, /* int_mul */
+ {COSTS_N_INSNS (6), COSTS_N_INSNS (6)}, /* int_div */
+ 1, /* issue_rate */
+ 3, /* branch_cost */
+ 5, /* memory_cost */
+ false, /* slow_unaligned_access */
+};
+
/* Costs to use when optimizing for size. */
static const struct riscv_tune_param optimize_size_tune_info = {
{COSTS_N_INSNS (1), COSTS_N_INSNS (1)}, /* fp_add */
@@ -348,6 +361,7 @@ static const struct riscv_tune_info riscv_tune_info_table[] = {
{ "sifive-3-series", generic, &rocket_tune_info },
{ "sifive-5-series", generic, &rocket_tune_info },
{ "sifive-7-series", sifive_7, &sifive_7_tune_info },
+ { "thead-c906", generic, &thead_c906_tune_info },
{ "size", generic, &optimize_size_tune_info },
};