David Green 892af45c86 [ARM] Distribute MVE post-increments
This adds some extra processing into the Pre-RA ARM load/store optimizer
to detect and merge MVE loads/stores and adds of the same base. This we
don't always turn into a post-inc during ISel, and due to the nature of
it being a graph we don't always know an order to use for the nodes, not
knowing which nodes to make post-inc and which to use the new post-inc
of. After ISel, we have an order that we can use to post-inc the
following instructions.

So this looks for a loads/store with a starting offset of 0, and an
add/sub from the same base, plus a number of other loads/stores. We then
do some checks and convert the zero offset load/store into a postinc
variant. Any loads/stores after it have the offset subtracted from their
immediates.  For example:
  LDR #4           LDR #4
  LDR #0           LDR_POSTINC #16
  LDR #8           LDR #-8
  LDR #12          LDR #-4
  ADD #16
It only handles MVE loads/stores at the moment. Normal loads/store will
be added in a followup patch, they just have some extra details to
ensure that we keep generating LDRD/LDM successfully.

Differential Revision: https://reviews.llvm.org/D77813
2020-04-22 14:16:51 +01:00
..
2019-05-15 12:41:58 +00:00
2017-08-01 22:20:49 +00:00
2017-08-28 20:20:47 +00:00
2020-01-07 16:51:11 +00:00
2019-08-01 11:12:10 +00:00
2020-02-24 14:19:21 +00:00
2018-10-14 16:49:04 +00:00
2020-02-27 12:19:31 +00:00
2018-07-04 13:28:39 +00:00
2019-10-08 08:25:42 +00:00
2020-04-09 10:36:00 +01:00
2019-01-07 12:21:13 +00:00
2019-02-26 12:02:12 +00:00
2019-12-12 13:51:39 +00:00
2019-06-11 11:09:25 +00:00
2017-12-11 12:13:45 +00:00
2017-12-11 12:13:45 +00:00
2017-12-11 12:13:45 +00:00
2018-09-26 10:56:00 +00:00
2020-03-31 10:11:36 +01:00
2019-04-17 16:51:09 +00:00
2019-10-08 16:16:26 +00:00
2019-07-29 09:48:07 +00:00
2020-02-20 13:54:43 +00:00
2017-08-28 20:20:47 +00:00
2017-08-01 22:20:49 +00:00
2017-08-01 22:20:49 +00:00
2020-01-21 10:40:17 +00:00
2019-07-27 18:44:15 +00:00
2019-10-08 08:25:42 +00:00
2019-11-04 13:37:01 +00:00
2019-10-08 08:25:42 +00:00