aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorDavid Green <david.green@arm.com>2021-08-02 10:59:52 +0100
committerDavid Green <david.green@arm.com>2021-08-02 10:59:52 +0100
commit28293918409dd3a5aa1aefa3342e50e099814cab (patch)
treec5212c22d186d096c6d7ee43dfc9ada1599beff4 /flang/lib/Frontend/CompilerInvocation.cpp
parent58cc5a4c9fe7580eeaa7dd856ca89aa73f3482c8 (diff)
downloadllvm-28293918409dd3a5aa1aefa3342e50e099814cab.zip
llvm-28293918409dd3a5aa1aefa3342e50e099814cab.tar.gz
llvm-28293918409dd3a5aa1aefa3342e50e099814cab.tar.bz2
[ARM] Revert WLSTP to DLSTP if the target block is out of range
If the block target for a WLSTP instruction is known to be out of range, and cannot be fixed by the ARMBlockPlacementPass, we can relax it to a DLSTP (and cmp/branch) to still allow the creation of tail predicated loops. That is what this patch does, adding extra revert code to the fallback path of ARMBlockPlacementPass. Due to the code produced when reverting, this creates a DLSTP between a Bcc and a Br. As a DLS isn't necessarily a terminator we need to split the block to move the DLS/Br into. Differential Revision: https://reviews.llvm.org/D104709
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions