This is an archive of the discontinued LLVM Phabricator instance.

Option 1: Forcing revisit of the SCC if there were any coroutine in it.
AbandonedPublic

Authored by GorNishanov on Jun 21 2016, 2:25 PM.

Details

Reviewers
None
Summary

What I don't like with this approach hard coding the information about coroutines in the general purpose facility.
We discussed during lunch another place for this check, namely RefreshSCC, where if we discover a suspend point, we will set Devirt to true.

Cost of doing it in CGPass::RunOnModule is linear with the number of functions.
Cost of doing it in CGPassManager::RefreshCallGraph: is linear with the number of instructions in the module. Hence out of this two, I weakly prefer the one shown in this Diff.

Diff Detail

Event Timeline

GorNishanov retitled this revision from to Forcing revisit of the SCC if there were any coroutine in it..
GorNishanov updated this object.
GorNishanov retitled this revision from Forcing revisit of the SCC if there were any coroutine in it. to Forcing revisit of the SCC if there were any coroutine in it. (Option 1).Jun 21 2016, 2:44 PM
GorNishanov retitled this revision from Forcing revisit of the SCC if there were any coroutine in it. (Option 1) to Option 1: Forcing revisit of the SCC if there were any coroutine in it..Jun 21 2016, 3:25 PM
GorNishanov updated this object.
GorNishanov abandoned this revision.Sep 30 2016, 2:35 PM