OSDN Git Service

Backport from mainline
authorpthaugen <pthaugen@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 5 Jul 2012 20:30:34 +0000 (20:30 +0000)
committerpthaugen <pthaugen@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 5 Jul 2012 20:30:34 +0000 (20:30 +0000)
commit54f730e7ae5f1ad587c6f6a4a6be590d22efee1a
tree89e6c2790907fcfdadf5f4950ba4869da3ca27c6
parentcd06def07f05c2939a0bf0e4617c65a36ee75ea1
Backport from mainline
2012-05-24  Pat Haugen <pthaugen@us.ibm.com>

* config/rs6000/rs6000.c (rs6000_option_override_internal): Change
rs6000_sched_costly_dep default to true_store_to_load_dep_costly.
(adjacent_mem_locations): Move some code to and call...
(get_memref_parts): ...new function.
(mem_locations_overlap): New function.
(rs6000_adjust_priority): Adjust calls to is_load_insn/is_store_insn.
(is_mem_ref): Rename to...
(find_mem_ref): ...this. Return MEM rtx.
(get_store_dest): Remove function.
(is_load_insn1, is_load_insn, is_store_insn1, is_store_insn): Add
new parameter and adjust calls.
(rs6000_is_costly_dependence): Update calls for extra arg. Make sure
mem refs overlap for true_store_to_load_dep_costly.
(rs6000_sched_reorder2): Update calls for extra arg. Adjust args
passed to adjacent_mem_locations.
(is_costly_group): Walk resolved dependency list.
(force_new_group): Emit group ending nop for Power6/Power7.
* config/rs6000/rs6000.md (UNSPEC_GRP_END_NOP): New enum value.
(group_ending_nop): New define_insn.

gcc/testsuite:
* gcc.target/powerpc/lhs-1.c: New.
* gcc.target/powerpc/lhs-2.c: New.
* gcc.target/powerpc/lhs-3.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@189303 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/powerpc/lhs-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/lhs-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/lhs-3.c [new file with mode: 0644]