mirror of
https://github.com/revng/revng
synced 2026-06-21 14:07:57 +00:00
e32e224572
This forces all such instructions to get their value stored into a local variable in SwitchToStatements. The reason for doing this is that they often contribute to the formation of pathological dataflows, causing exponential path explosion when expanded into C expressions during decompilation. Serializing their value into a dedicated local variable breaks such an exponential path explosion. This is a temporary workaround, that we've already put in place for SelectInst too, and that will be replaced in the future by a more principled approach for splitting pathological dataflows that lead to exponential path esplosion.