- Add t2LoopEnd to TargetInstrInfo::analyzeBranch and related functions. As there are many side effects of analyzing a branch, only do so if software pipelining is enabled to maintain previous behavior when pipelining is not desired.
- Make sure that t2LoopEndDec is immediately followed by a t2B when it is synthesized from a t2LoopEnd. This is done because the t2LoopEnd might have acquired a fall-through path, but IfConversion assumes that fall-through are only possible on analyzable branches.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp | ||
---|---|---|
414 | Can you add a high-level comment somewhere, maybe above analyzeBranch, that explains the condition - that 2 values is a conditional branch and 3 is a LE. | |
6801 | This can remove the variable for NewCmp. | |
6853 | There is a isVCTP function, which I think can be used here. | |
6861 | if (!LoopDec || LoopDec->getOpcode()... would be a little safer. | |
llvm/lib/Target/ARM/MVETPAndVPTOptimisationsPass.cpp | ||
409 | This needn't have the brackets around LoopEnd->getParent() I don't think | |
llvm/test/CodeGen/Thumb2/swp-fixedii-le.mir | ||
4 | Can you make this -mtriple=thumbv8.1-m.main-none-eabi. Otherwise the instructions like t2LoopEnd are technically not valid, and should (but currently won't) be giving verifier errors. |
Can you add a high-level comment somewhere, maybe above analyzeBranch, that explains the condition - that 2 values is a conditional branch and 3 is a LE.