[StackLifetime] More efficient loop for LivenessType::Must
CFG with cycles may requires additional passes of "while (Changed)" iteration if to propagate data back from latter blocks to earlier blocks, ordered according to depth_fist. OR logic, used for ::May, converge to stable state faster then AND logic use for ::Must. Though the better solution is to switch to some some form of queue, but having that this one is good enough, I will consider to do that later. We can switch ::Must to OR logic if we calculate "may be dead" instead of direct "must be alive" and then convert values to match existing interface. Additionally it fixes correctness in "@cycle" test. Reviewed By: kstoimenov, fmayer Differential Revision: https://reviews.llvm.org/D134796
Loading
Please sign in to comment