Allow larger copies when not slow_unaligned_access and no padding.
authorTamar Christina <tamar.christina@arm.com>
Thu, 16 Aug 2018 17:05:19 +0000 (17:05 +0000)
committerTamar Christina <tnfchris@gcc.gnu.org>
Thu, 16 Aug 2018 17:05:19 +0000 (17:05 +0000)
commit012d429b84046483721291425c9fcdbd167bbaf4
tree95b131a8ef283f12cbd33ef4816f030a99581805
parent450f33d6ba630730e86ebabb361651e00ac7741f
Allow larger copies when not slow_unaligned_access and no padding.

This allows copy_blkmode_to_reg to perform larger copies when it is safe to do so by calculating
the bitsize per iteration doing the maximum copy allowed that does not read more
than the amount of bits left to copy.

Strictly speaking, this copying is only done if:

  1. the target supports fast unaligned access
  2. no padding is being used.

This should avoid the issues of the first patch (PR85123) but still work for targets that are safe
to do so.

Original patch https://gcc.gnu.org/ml/gcc-patches/2017-11/msg01088.html
Previous respin https://gcc.gnu.org/ml/gcc-patches/2018-04/msg00239.html

gcc/
2018-08-16  Tamar Christina  <tamar.christina@arm.com>

* expr.c (copy_blkmode_to_reg): Perform larger copies when safe.

From-SVN: r263594
gcc/ChangeLog
gcc/expr.c