swift
d3148325 - [simplify-cfg] Add a visitedBlocks set to hasSameUltimateSuccessor to prevent infinite loops.

Commit
6 years ago
[simplify-cfg] Add a visitedBlocks set to hasSameUltimateSuccessor to prevent infinite loops. Previously, we were not handling properly blocks that we could visit multiple times. In this commit, I added a SmallPtrSet to ensure that we handle all of the same cases that we handled previously. The key reason that we want to follow this approach rather than something else is that the previous algorithm on purpose allowed for side-entrances from other checks since often times when we have multiple checks, all of the .none branches funnel together into a single ultimate block. This can be seen by the need of this code to support the test two_chained_calls in simplify_switch_enum_objc.sil. rdar://55861081 (cherry picked from commit aa00865715aa4416c326fbd9cf3a490dcf4f3a8e)
Author
Committer
Parents
Loading