This is an archive of the discontinued LLVM Phabricator instance.

[ARM][MVE] Tail-predication: clean-up removing unused code
ClosedPublic

Authored by SjoerdMeijer on Jun 29 2020, 8:04 AM.

Details

Summary

After the rewrite of this pass (D79175) I missed one thing: the inserted VCTP intrinsic can be cloned to exit blocks if there are instructions present in it that perform the same operation. However, it turns out that for handling reductions, see D75533, it's actually easier not not to have the VCTP in exit blocks. If the exit block was cloned, we rematerialized the trip count in the exit blocks, because that made other dead-code removal easier. But our dead-code removal got more powerful, so I don't think this is still needed and therefore this also removes RematerializeIterCount.

Diff Detail

Event Timeline

SjoerdMeijer created this revision.Jun 29 2020, 8:04 AM
samparker accepted this revision.Jun 30 2020, 6:43 AM

Not sure if we'll have to revisit this again if we're doing, say a reduction, and but also have a VCMP in the loop which writes to the VPR meaning it needs to be spilled and restored for the VPSEL... But we can cross that bridge if we come to it, cheers!

This revision is now accepted and ready to land.Jun 30 2020, 6:43 AM

Thanks, and yes, fully agreed. At the moment it isn't doing what it claims to do, so I'd prefer to get rid of it, and revise and change this when we need to.

This revision was automatically updated to reflect the committed changes.