[ARM][MVE] VPT Blocks: findVCMPToFoldIntoVPS
authorSjoerd Meijer <sjoerd.meijer@arm.com>
Tue, 7 Jan 2020 13:54:47 +0000 (13:54 +0000)
committerSjoerd Meijer <sjoerd.meijer@arm.com>
Tue, 7 Jan 2020 13:54:47 +0000 (13:54 +0000)
commite34801c8e6df11b802f58b202f2ce6598734f040
tree63aa5135a6177261ea6a1c3ecb4f5393dadaad60
parentc0365aaaa4f20dd92d6f887c4539d1360dbb8c8e
[ARM][MVE] VPT Blocks: findVCMPToFoldIntoVPS

This is a recommit of D71330, but with a few things fixed and changed:

1) ReachingDefAnalysis: this was not running with optnone as it was checking
skipFunction(), which other analysis passes don't do. I guess this is a
copy-paste from a codegen pass.
2) VPTBlockPass: here I've added skipFunction(), because like most/all
optimisations, we don't want to run this with optnone.

This fixes the issues with the initial/previous commit: the VPTBlockPass was
running with optnone, but ReachingDefAnalysis wasn't, and so VPTBlockPass was
crashing querying ReachingDefAnalysis.

I've added test case mve-vpt-block-optnone.mir to check that we don't run
VPTBlock with optnone.

Differential Revision: https://reviews.llvm.org/D71470
llvm/lib/CodeGen/ReachingDefAnalysis.cpp
llvm/lib/Target/ARM/MVEVPTBlockPass.cpp
llvm/test/CodeGen/ARM/O3-pipeline.ll
llvm/test/CodeGen/Thumb2/mve-vpt-block-fold-vcmp.mir [new file with mode: 0644]
llvm/test/CodeGen/Thumb2/mve-vpt-block-optnone.mir [new file with mode: 0644]