ebehner
ebehner
### What happened? When we restructure a CFG into an AST, we transform each condition into a symbol. Now, each node of a region gets its reaching condition assigned, thus...
### Proposal The `MissingCaseFinder` searches for possible cases that were not found/there when constructing the initial switch. Now, we insert such a potential case node only if the corresponding case...
### Proposal When constructing the initial switch we face two problems: 1. We only consider the symbol of the condition and not the actual condition 2. When two switch nodes...
### Proposal Currently, we transform a while-loop into a for-loop independent of the condition. However, for-loops where the condition is a comparison like `a == 10` or `a != 10`...
### Proposal During the restructuring, when we restructure a region, each node gets a reaching condition. Using these reaching conditions we try to find if-else and switch constructs. Nevertheless, not...
### Proposal During the restructuring, we simplify conditions using their old SSA name. Furthermore, we never simplify any expression that is not part of a condition. More precisely, we would...
### Proposal Sometimes, the decompiler does not terminate because the regions we restructure are too large. Furthermore, large regions often have more complicated structures. One way to reduce the region...
### Proposal Depending on the optimization level, easy while loops are sometimes transformed into an if-condition that has only a true branch consisting of a do-while loop with the same...
### Proposal Not everybody likes switch-constructs, or switch in switch-constructs or only switches with a certain number of cases. Thus, it would be beneficial if it is configurable. **Remarks:** Since...
### Proposal The Condition Based refinement sometime takes 65% of the runtime (total time ~5 minutes) and sometimes only 11% (total time ~1minute) on the same sample. This should not...