2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
authorVladimir Makarov <vmakarov@redhat.com>
Fri, 25 Oct 2013 21:06:38 +0000 (21:06 +0000)
committerVladimir Makarov <vmakarov@gcc.gnu.org>
Fri, 25 Oct 2013 21:06:38 +0000 (21:06 +0000)
commit01b1efaa1439e6cbf44566354dcce9a96d5c6f5e
tree2ee1cb8d7e34ed805e6e3c69b0f6076f88fa163a
parent3ff4317f1cfddf2e015db24a673e3ea5bf188920
2013-10-25  Vladimir Makarov  <vmakarov@redhat.com>

* config/rs6000/rs6000-protos.h
(rs6000_secondary_memory_needed_mode): New prototype.
* config/rs6000/rs6000.c: Include ira.h.
(TARGET_LRA_P): Redefine.
(rs6000_legitimate_offset_address_p): Call
legitimate_constant_pool_address_p in strict mode for LRA.
(rs6000_legitimate_address_p): Ditto.
(legitimate_lo_sum_address_p): Add code for LRA.
Use lra_in_progress.
(rs6000_emit_move): Add LRA version of code to generate load/store
of SDmode values.
(rs6000_secondary_memory_needed_mode): New.
(rs6000_alloc_sdmode_stack_slot): Do nothing for LRA.
(rs6000_secondary_reload_class): Return NO_REGS for LRA for
constants, memory, and FP registers.
(rs6000_lra_p): New.
* config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): New
macro.
* config/rs6000/rs6000.opt (mlra): New option.
* lra-spills.c (lra_final_code_change): Remove useless move insns.

From-SVN: r204079
gcc/ChangeLog
gcc/config/rs6000/rs6000-protos.h
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.h
gcc/config/rs6000/rs6000.opt
gcc/lra-spills.c