rs6000-p8swap.c (const_load_sequence_p): Revise this function to return false if…
rs6000-p8swap.c (const_load_sequence_p): Revise this function to return false if the definition used by the swap... gcc/ChangeLog: 2017-09-27 Kelvin Nilsen <kelvin@gcc.gnu.org> * config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Revise this function to return false if the definition used by the swap instruction is artificial, or if the memory address from which the constant value is loaded is not represented by a base address held in a register or if the base address register is a frame or stack pointer. Additionally, return false if the base address of the loaded constant is a SYMBOL_REF but is not considered to be a constant. (replace_swapped_load_constant): New function. (rs6000_analyze_swaps): Add a new pass to replace a swap of a loaded constant vector with a load of a swapped constant vector. gcc/testsuite/ChangeLog: 2017-09-27 Kelvin Nilsen <kelvin@gcc.gnu.org> * gcc.target/powerpc/swaps-p8-28.c: New test. * gcc.target/powerpc/swaps-p8-29.c: New test. * gcc.target/powerpc/swaps-p8-30.c: New test. * gcc.target/powerpc/swaps-p8-31.c: New test. * gcc.target/powerpc/swaps-p8-32.c: New test. * gcc.target/powerpc/swaps-p8-33.c: New test. * gcc.target/powerpc/swaps-p8-34.c: New test. * gcc.target/powerpc/swaps-p8-35.c: New test. * gcc.target/powerpc/swaps-p8-36.c: New test. * gcc.target/powerpc/swaps-p8-37.c: New test. * gcc.target/powerpc/swaps-p8-38.c: New test. * gcc.target/powerpc/swaps-p8-39.c: New test. * gcc.target/powerpc/swaps-p8-40.c: New test. * gcc.target/powerpc/swaps-p8-41.c: New test. * gcc.target/powerpc/swaps-p8-42.c: New test. * gcc.target/powerpc/swaps-p8-43.c: New test. * gcc.target/powerpc/swaps-p8-44.c: New test. * gcc.target/powerpc/swaps-p8-45.c: New test. From-SVN: r253240
Showing
This diff is collapsed.
Click to expand it.
Please
register
or
sign in
to comment