This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
r273892 - in /branches/ibm/pcrel-trunk/gcc: Cha...
- From: meissner at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: Mon, 29 Jul 2019 22:57:23 -0000
- Subject: r273892 - in /branches/ibm/pcrel-trunk/gcc: Cha...
Author: meissner
Date: Mon Jul 29 22:57:23 2019
New Revision: 273892
URL: https://gcc.gnu.org/viewcvs?rev=273892&root=gcc&view=rev
Log:
Add pc-relative linker optimization.
[gcc]
2019-07-29 Michael Meissner <meissner@linux.ibm.com>
* config/rs6000/pcrel.md: New file.
* config/rs6000/predicates.md (one_reg_memory_operand): New
predicate.
* config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Add
-mpcrel-opt.
(OTHER_FUTURE_MASKS): Add -mpcrel-opt.
(POWERPC_MASKS): Add -mpcrel-opt.
* config/rs6000/rs6000-passes.def (pass_pcrel_opt): Add pass.
* config/rs6000/rs6000-pcrel.c: New file.
* config/rs6000/rs6000-prefixed.c (pcrel_opt_label_num): New
static to support -mpcrel-opt.
(rs6000_final_prescan_insn): Add support for -mpcrel-opt.
(rs6000_asm_output_opcode): Add support for -mpcrel-opt.
* config/rs6000/rs6000-protos.h (rs6000_final_prescan_insn):
Update calling signature.
(make_pass_pcrel_opt): New declaration.
(rs6000_option_override_internal): Add checks for -mpcrel-opt.
(rs6000_opt_masks): Add -mpcrel-opt.
* config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Update call to
rs6000_final_prescan_insn.
* config/rs6000/rs6000.md (pcrel_opt): New RTL attribute.
(toplevel): Include pcrel.md.
* config/rs6000/rs6000.opt (-mpcrel-opt): New option.
* config/rs6000/t-rs6000 (rs6000-pcrel.o): Add build rules.
(MD_INCLUDES): Add pcrel.md.
* config.gcc (powerpc*-*-*): Add rs6000-pcrel.c.
(rs6000*-*-*): Add rs6000-pcrel.c.
[gcc/testsuite]
2019-07-29 Michael Meissner <meissner@linux.ibm.com>
* gcc.target/powerpc/pcrel-opt-di.c: New test for pc-relative
linker optimizations.
Added:
branches/ibm/pcrel-trunk/gcc/config/rs6000/pcrel.md
branches/ibm/pcrel-trunk/gcc/config/rs6000/rs6000-pcrel.c
branches/ibm/pcrel-trunk/gcc/testsuite/gcc.target/powerpc/pcrel-opt-di.c
Modified:
branches/ibm/pcrel-trunk/gcc/ChangeLog.meissner
branches/ibm/pcrel-trunk/gcc/config.gcc
branches/ibm/pcrel-trunk/gcc/config/rs6000/predicates.md
branches/ibm/pcrel-trunk/gcc/config/rs6000/rs6000-cpus.def
branches/ibm/pcrel-trunk/gcc/config/rs6000/rs6000-passes.def
branches/ibm/pcrel-trunk/gcc/config/rs6000/rs6000-prefixed.c
branches/ibm/pcrel-trunk/gcc/config/rs6000/rs6000-protos.h
branches/ibm/pcrel-trunk/gcc/config/rs6000/rs6000.c
branches/ibm/pcrel-trunk/gcc/config/rs6000/rs6000.h
branches/ibm/pcrel-trunk/gcc/config/rs6000/rs6000.md
branches/ibm/pcrel-trunk/gcc/config/rs6000/rs6000.opt
branches/ibm/pcrel-trunk/gcc/config/rs6000/t-rs6000
branches/ibm/pcrel-trunk/gcc/testsuite/ChangeLog.meissner