mirror of
https://github.com/revng/revng
synced 2026-06-21 14:07:57 +00:00
afa0cfbab45bc7ffcd296d8a4c22cbc8c5063d9e
We now emit `RegularSwitch` node type creating the vector containing the case values by inspecting the actual values of the `ConstantInt` in the IR. Due to the introduction of weaving, we can have a cascade of switches, and in this case the top switch should bring to a certain weaving switch for multiple values of the case label. For this reason, switch case are now represented by sets, which are usually populated by a single value, but in presence of a weaving switches they can represent the fact that for each value contained in the set we must take a certain case label. The backend of the decompiler has been updated to reflect this change, in order to emit all the values for a certain `CaseSet` in `or` if the size of the seat is greater than 1.
Description
Languages
C++
77.1%
Python
12.6%
MLIR
4.4%
CMake
1.9%
LLVM
1.4%
Other
2.5%