Large CFGs can cause us to blow up the stack because we would have a
recursive step for each basic block in a region.
Instead, create a worklist and iterate it. This limits the stack usage
to something more manageable.
Differential D35609
[LICM] Make sinkRegion and hoistRegion non-recursive majnemer on Jul 18 2017, 10:24 PM. Authored by
Details Large CFGs can cause us to blow up the stack because we would have a Instead, create a worklist and iterate it. This limits the stack usage
Diff Detail
Event TimelineComment Actions The idea is sound, I'll think a little bit more about the visitation order (tomorrow morning) but it seems you got it right. Comment Actions AFAICT, iterating over the worklist caused the nesting to increase which caused the formatting to change.
Comment Actions If I understand the patch correctly, aren't we just iterating children->parent, therefore the order of siblings should be irrelevant in this case ?
Comment Actions LGTM, nice to have you back from the grave :)
|