[ARM][HWLoops] Create hardware loops for sibling loops
authorDavid Green <david.green@arm.com>
Fri, 3 Jul 2020 13:18:32 +0000 (14:18 +0100)
committerDavid Green <david.green@arm.com>
Fri, 3 Jul 2020 16:20:02 +0000 (17:20 +0100)
commit9e03547cab691521ea3be9dab0b543156ce44c04
tree1ee1b50d0f6d080e244cdf9bc1217a6486a28229
parent039145c72b81ba525b3b58a27f6b2d6193198266
[ARM][HWLoops] Create hardware loops for sibling loops

Given a loop with two subloops, it should be possible for both to be
converted to hardware loops. That's what this patch does, simply enough.
It slightly alters the loop iterating order to try and convert all
subloops. If one (or more) succeeds, it stops as before.

Differential Revision: https://reviews.llvm.org/D78502
llvm/lib/CodeGen/HardwareLoops.cpp
llvm/test/CodeGen/Thumb2/LowOverheadLoops/sibling-loops.ll
llvm/test/CodeGen/Thumb2/mve-float16regloops.ll
llvm/test/CodeGen/Thumb2/mve-float32regloops.ll
llvm/test/CodeGen/Thumb2/mve-gather-scatter-optimisation.ll