[AArch64] Add initial support for Cortex-A73
* config/aarch64/aarch64.c (cortexa73_tunings): New struct. * config/aarch64/aarch64-cores.def (cortex-a73): New entry. (cortex-a73.cortex-a35): Likewise. (cortex-a73.cortex-a53): Likewise. * config/aarch64/aarch64-tune.md: Regenerate. * doc/invoke.texi (AArch64 Options): Document cortex-a73, cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to -mcpu and -mtune. From-SVN: r237679
This commit is contained in:
parent
cd98b1cf06
commit
4fb570c42b
|
@ -1,3 +1,14 @@
|
|||
2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||||
|
||||
* config/aarch64/aarch64.c (cortexa73_tunings): New struct.
|
||||
* config/aarch64/aarch64-cores.def (cortex-a73): New entry.
|
||||
(cortex-a73.cortex-a35): Likewise.
|
||||
(cortex-a73.cortex-a53): Likewise.
|
||||
* config/aarch64/aarch64-tune.md: Regenerate.
|
||||
* doc/invoke.texi (AArch64 Options): Document cortex-a73,
|
||||
cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to
|
||||
-mcpu and -mtune.
|
||||
|
||||
2016-06-21 Andrew Burgess <andrew.burgess@embecosm.com>
|
||||
|
||||
* bb-reorder.c (pass_partition_blocks::gate): Update comment.
|
||||
|
|
|
@ -44,6 +44,7 @@ AARCH64_CORE("cortex-a35", cortexa35, cortexa53, 8A, AARCH64_FL_FOR_ARCH8 | AA
|
|||
AARCH64_CORE("cortex-a53", cortexa53, cortexa53, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC, cortexa53, "0x41", "0xd03")
|
||||
AARCH64_CORE("cortex-a57", cortexa57, cortexa57, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC, cortexa57, "0x41", "0xd07")
|
||||
AARCH64_CORE("cortex-a72", cortexa72, cortexa57, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC, cortexa72, "0x41", "0xd08")
|
||||
AARCH64_CORE("cortex-a73", cortexa73, cortexa57, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC, cortexa73, "0x41", "0xd09")
|
||||
AARCH64_CORE("exynos-m1", exynosm1, exynosm1, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, exynosm1, "0x53", "0x001")
|
||||
AARCH64_CORE("qdf24xx", qdf24xx, cortexa57, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, cortexa57, "0x51", "0x800")
|
||||
AARCH64_CORE("thunderx", thunderx, thunderx, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, thunderx, "0x43", "0x0a1")
|
||||
|
@ -57,4 +58,5 @@ AARCH64_CORE("vulcan", vulcan, cortexa57, 8_1A, AARCH64_FL_FOR_ARCH8_1 | AARCH
|
|||
|
||||
AARCH64_CORE("cortex-a57.cortex-a53", cortexa57cortexa53, cortexa53, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC, cortexa57, "0x41", "0xd07.0xd03")
|
||||
AARCH64_CORE("cortex-a72.cortex-a53", cortexa72cortexa53, cortexa53, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC, cortexa72, "0x41", "0xd08.0xd03")
|
||||
|
||||
AARCH64_CORE("cortex-a73.cortex-a35", cortexa73cortexa35, cortexa53, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC, cortexa73, "0x41", "0xd09.0xd04")
|
||||
AARCH64_CORE("cortex-a73.cortex-a53", cortexa73cortexa53, cortexa53, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC, cortexa73, "0x41", "0xd09.0xd03")
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;; -*- buffer-read-only: t -*-
|
||||
;; Generated automatically by gentune.sh from aarch64-cores.def
|
||||
(define_attr "tune"
|
||||
"cortexa35,cortexa53,cortexa57,cortexa72,exynosm1,qdf24xx,thunderx,xgene1,vulcan,cortexa57cortexa53,cortexa72cortexa53"
|
||||
"cortexa35,cortexa53,cortexa57,cortexa72,cortexa73,exynosm1,qdf24xx,thunderx,xgene1,vulcan,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53"
|
||||
(const (symbol_ref "((enum attr_tune) aarch64_tune)")))
|
||||
|
|
|
@ -546,6 +546,32 @@ static const struct tune_params cortexa72_tunings =
|
|||
(AARCH64_EXTRA_TUNE_NONE) /* tune_flags. */
|
||||
};
|
||||
|
||||
static const struct tune_params cortexa73_tunings =
|
||||
{
|
||||
&cortexa57_extra_costs,
|
||||
&cortexa57_addrcost_table,
|
||||
&cortexa57_regmove_cost,
|
||||
&cortexa57_vector_cost,
|
||||
&generic_branch_cost,
|
||||
&generic_approx_modes,
|
||||
4, /* memmov_cost. */
|
||||
2, /* issue_rate. */
|
||||
(AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD
|
||||
| AARCH64_FUSE_MOVK_MOVK | AARCH64_FUSE_ADRP_LDR), /* fusible_ops */
|
||||
16, /* function_align. */
|
||||
8, /* jump_align. */
|
||||
4, /* loop_align. */
|
||||
2, /* int_reassoc_width. */
|
||||
4, /* fp_reassoc_width. */
|
||||
1, /* vec_reassoc_width. */
|
||||
2, /* min_div_recip_mul_sf. */
|
||||
2, /* min_div_recip_mul_df. */
|
||||
0, /* max_case_values. */
|
||||
0, /* cache_line_size. */
|
||||
tune_params::AUTOPREFETCHER_WEAK, /* autoprefetcher_model. */
|
||||
(AARCH64_EXTRA_TUNE_NONE) /* tune_flags. */
|
||||
};
|
||||
|
||||
static const struct tune_params exynosm1_tunings =
|
||||
{
|
||||
&exynosm1_extra_costs,
|
||||
|
|
|
@ -13096,11 +13096,13 @@ processors implementing the target architecture.
|
|||
Specify the name of the target processor for which GCC should tune the
|
||||
performance of the code. Permissible values for this option are:
|
||||
@samp{generic}, @samp{cortex-a35}, @samp{cortex-a53}, @samp{cortex-a57},
|
||||
@samp{cortex-a72}, @samp{exynos-m1}, @samp{qdf24xx}, @samp{thunderx},
|
||||
@samp{xgene1}, @samp{vulcan}, @samp{cortex-a57.cortex-a53},
|
||||
@samp{cortex-a72.cortex-a53}, @samp{native}.
|
||||
@samp{cortex-a72}, @samp{cortex-a73}, @samp{exynos-m1}, @samp{qdf24xx},
|
||||
@samp{thunderx}, @samp{xgene1}, @samp{vulcan}, @samp{cortex-a57.cortex-a53},
|
||||
@samp{cortex-a72.cortex-a53}, @samp{cortex-a73.cortex-a35},
|
||||
@samp{cortex-a73.cortex-a53}, @samp{native}.
|
||||
|
||||
The values @samp{cortex-a57.cortex-a53}, @samp{cortex-a72.cortex-a53}
|
||||
The values @samp{cortex-a57.cortex-a53}, @samp{cortex-a72.cortex-a53},
|
||||
@samp{cortex-a73.cortex-a35}, @samp{cortex-a73.cortex-a53}
|
||||
specify that GCC should tune for a big.LITTLE system.
|
||||
|
||||
Additionally on native AArch64 GNU/Linux systems the value
|
||||
|
|
Loading…
Reference in New Issue