diff options
author | Michael Meissner <meissner@linux.vnet.ibm.com> | 2015-11-09 16:56:22 +0000 |
---|---|---|
committer | Michael Meissner <meissner@gcc.gnu.org> | 2015-11-09 16:56:22 +0000 |
commit | d1f0d3769edfb2217f19f0937f30423e6298f744 (patch) | |
tree | 67a2fb9cb34958ba57d1f290473f158c57978d91 /gcc/config/rs6000/rs6000.opt | |
parent | ee78df47b1543f412622ae05601f7ee6f6862820 (diff) | |
download | gcc-d1f0d3769edfb2217f19f0937f30423e6298f744.zip gcc-d1f0d3769edfb2217f19f0937f30423e6298f744.tar.gz gcc-d1f0d3769edfb2217f19f0937f30423e6298f744.tar.bz2 |
rs6000.opt (-mpower9-fusion): Add new switches for ISA 3.0 (power9).
2015-11-09 Michael Meissner <meissner@linux.vnet.ibm.com>
* config/rs6000/rs6000.opt (-mpower9-fusion): Add new switches for
ISA 3.0 (power9).
(-mpower9-vector): Likewise.
(-mpower9-dform): Likewise.
(-mpower9-minmax): Likewise.
(-mtoc-fusion): Likewise.
(-mmodulo): Likewise.
(-mfloat128-hardware): Likewise.
* config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add option
mask for ISA 3.0 (power9).
(POWERPC_MASKS): Add new ISA 3.0 switches.
(power9 cpu): Add power9 cpu.
* config/rs6000/rs6000.h (ASM_CPU_POWER9_SPEC): Add support for
power9.
(ASM_CPU_SPEC): Likewise.
(EXTRA_SPECS): Likewise.
* config/rs6000/rs6000-opts.h (enum processor_type): Add
PROCESSOR_POWER9.
* config/rs6000/rs6000.c (power9_cost): Initial cost setup for
power9.
(rs6000_debug_reg_global): Add support for power9 fusion.
(rs6000_setup_reg_addr_masks): Cache mode size.
(rs6000_option_override_internal): Until real power9 tuning is
added, use -mtune=power8 for -mcpu=power9.
(rs6000_setup_reg_addr_masks): Do not allow pre-increment,
pre-decrement, or pre-modify on SFmode/DFmode if we allow the use
of Altivec registers.
(rs6000_option_override_internal): Add support for ISA 3.0
switches.
(rs6000_loop_align): Add support for power9 cpu.
(rs6000_file_start): Likewise.
(rs6000_adjust_cost): Likewise.
(rs6000_issue_rate): Likewise.
(insn_must_be_first_in_group): Likewise.
(insn_must_be_last_in_group): Likewise.
(force_new_group): Likewise.
(rs6000_register_move_cost): Likewise.
(rs6000_opt_masks): Likewise.
* config/rs6000/rs6000.md (cpu attribute): Add power9.
* config/rs6000/rs6000-tables.opt: Regenerate.
* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
_ARCH_PWR9 if power9 support is available.
* config/rs6000/aix61.h (ASM_CPU_SPEC): Add power9.
* config/rs6000/aix53.h (ASM_CPU_SPEC): Likewise.
* configure.ac: Determine if the assembler supports the ISA 3.0
instructions.
* config.in (HAVE_AS_POWER9): Likewise.
* configure: Regenerate.
* doc/invoke.texi (RS/6000 and PowerPC Options): Document ISA 3.0
switches.
From-SVN: r230031
Diffstat (limited to 'gcc/config/rs6000/rs6000.opt')
-rw-r--r-- | gcc/config/rs6000/rs6000.opt | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/gcc/config/rs6000/rs6000.opt b/gcc/config/rs6000/rs6000.opt index b9e4b7d..61e3c8a 100644 --- a/gcc/config/rs6000/rs6000.opt +++ b/gcc/config/rs6000/rs6000.opt @@ -601,6 +601,34 @@ moptimize-swaps Target Undocumented Var(rs6000_optimize_swaps) Init(1) Save Analyze and remove doubleword swaps from VSX computations. +mpower9-fusion +Target Report Mask(P9_FUSION) Var(rs6000_isa_flags) +Fuse certain operations together for better performance on power9. + +mpower9-vector +Target Report Mask(P9_VECTOR) Var(rs6000_isa_flags) +Use/do not use vector and scalar instructions added in ISA 3.0. + +mpower9-dform +Target Undocumented Mask(P9_DFORM) Var(rs6000_isa_flags) +Use/do not use vector and scalar instructions added in ISA 3.0. + +mpower9-minmax +Target Undocumented Mask(P9_MINMAX) Var(rs6000_isa_flags) +Use/do not use the new min/max instructions defined in ISA 3.0. + +mtoc-fusion +Target Undocumented Mask(TOC_FUSION) Var(rs6000_isa_flags) +Fuse medium/large code model toc references with the memory instruction. + +mmodulo +Target Report Mask(MODULO) Var(rs6000_isa_flags) +Generate the integer modulo instructions. + mfloat128 Target Report Mask(FLOAT128) Var(rs6000_isa_flags) Enable/disable IEEE 128-bit floating point via the __float128 keyword. + +mfloat128-hardware +Target Report Mask(FLOAT128_HW) Var(rs6000_isa_flags) +Enable/disable using IEEE 128-bit floating point instructions. |