[Patch, ARM] PR71061, length pop* pattern in epilogue correctly

Jiong Wang jiong.wang@foss.arm.com
Fri May 13 13:55:00 GMT 2016


For thumb mode, this is causing wrong size calculation and may affect
some rtl pass, for example bb-order where copy_bb_p needs accurate insn
length info.

This have eventually part of the reason for
https://gcc.gnu.org/ml/gcc-patches/2016-05/msg00639.html  where bb-order
failed to do the bb copy.

For the fix, I think we should extend arm_attr_length_push_multi to pop*
pattern.

OK for trunk?

2016-05-13  Jiong. Wang <jiong.wang@arm.com>

gcc/
   PR target/71061
   * config/arm/arm-protos.h (arm_attr_length_push_multi): Rename to
   "arm_attr_length_pp_multi".  Add one parameter "first_index".
   * config/arm/arm.md (*push_multi): Use new function.
   (*load_multiple_with_writeback): Set "length" attribute.
   (*pop_multiple_with_writeback_and_return): Likewise.
   (*pop_multiple_with_return): Likewise.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: arm.patch
Type: text/x-patch
Size: 4845 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20160513/0eaf45ce/attachment.bin>


More information about the Gcc-patches mailing list