Remove the domain from the instructions and create a shouldInspect helper for LowOverheadLoops which queries it or a vpr operand.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
Thanks for doing this.
llvm/lib/Target/ARM/ARMInstrVFP.td | ||
---|---|---|
2863 | What would be the ramification of leaving this? I see VMRS_P0 is no longer validForTailPredication. Would there be anything that stopped the code from spilling in the loop and reloading outside of it? Would the stored predicate always end up being the same? | |
llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp | ||
79 | Would this match VSTR_P0? (Or, would they otherwise be handled somewhere?) |
Comment Actions
- All the VFP instructions now have had validForTailPredication the DomainMVE removed.
- LowOverheadLoops will inspect any instructions that are in the DomainMVE, or if they use/def the VPR. Helpers for each are added.
- LowOverheadLoops continues to reject any use of the VPR that isn't a predicate operand.
- Rebased after adding some more tests for P0 usage.
What would be the ramification of leaving this? I see VMRS_P0 is no longer validForTailPredication.
Would there be anything that stopped the code from spilling in the loop and reloading outside of it? Would the stored predicate always end up being the same?