53 Commits (c5012e876ec9b2c14ead6c68cb221a746ab833fc)

Author SHA1 Message Date
Daniel Grunwald 3ff3b34be9 [async]: control flow reconstruction: fixes for legacy csc 8 years ago
Daniel Grunwald 40212685b6 [async]: control flow reconstruction 8 years ago
Daniel Grunwald 2396a7449b [async] Support state machine classes. 8 years ago
Daniel Grunwald b36ae9df7e Start on new async/await decompiler. 8 years ago
Daniel Grunwald bcdd34a9d0 More aggressively duplicate return blocks in MoveNext() methods. 8 years ago
Daniel Grunwald f411d15fc6 Fix generating switch sections without any case labels. 8 years ago
Daniel Grunwald 3e8ab77d52 Perform even less aggressive inlining of return blocks. 8 years ago
Daniel Grunwald c239204c7f Perform less aggressive inlining of return blocks. This tends to reconstruct control flow closer to the original code. 8 years ago
Daniel Grunwald 4c77022988 Improve decompiler performance. 8 years ago
Daniel Grunwald a5a98ae9f1 Adjust labels of simple switch instructions. 8 years ago
Daniel Grunwald 2207ab40f7 Check the CancellationToken a bit more frequently. 8 years ago
Daniel Grunwald 69c77d75a5 Try to get rid of some more gotos. 8 years ago
Daniel Grunwald cc33c27d9c ConditionDetection: Try to prefer 'break;' over other gotos 8 years ago
Daniel Grunwald 173c8d353f Support 'state + c1 < c2' in state-range-analysis. 8 years ago
Daniel Grunwald b9b510d225 yield return decompiler: fix yield return in structs; fix local variables in finally block 8 years ago
Daniel Grunwald 7277de6c08 More fixes for yield return decompilation. 8 years ago
Daniel Grunwald 9fa6009c44 Remove dead compiler-generated 'V = null;' assignments. 8 years ago
Daniel Grunwald bddda342a1 Improve yield-return-decompiler. 8 years ago
Daniel Grunwald f0e230ae91 Run a second pass of DetectExitPoints to use 'return;' as exit point if no previous transform picked another exit point. 9 years ago
Daniel Grunwald 1001ff5721 Fix 'yield break;' in try-catch blocks. 9 years ago
Daniel Grunwald 5621101436 Reconstruct try-finally blocks in yield return decompiler 9 years ago
Daniel Grunwald fe84ea9730 WIP: yield return decompiler 9 years ago
Siegfried Pammer 0970b95d5f Rename ILVariable.Scope to Function and introduce BlockContainer CaptureScope 9 years ago
Daniel Grunwald 66dee6c6f9 LoopDetection: find appropriate exit points 9 years ago
Daniel Grunwald e871f7c05a Convert LoopDetection into a block transform. 9 years ago
Daniel Grunwald ed3d4aba9d Run IntroduceExitPoints before loop detection, and let loop detection introduce its own exit points. 9 years ago
Siegfried Pammer 840ec04fde Namespace adjustments for Syntax classes 9 years ago
Christoph Wille 1ce8349dd9 Adjust namespaces 9 years ago
Daniel Grunwald 7273fe58fd Add BlockTransform concept and apply a bunch of refactoring essentials suggestions. 9 years ago
Daniel Grunwald dfe70d5366 Improve detection of short-circuiting operators. 9 years ago
Daniel Grunwald dd485b971d Eliminate goto in conditional return in try block. 9 years ago
Daniel Grunwald 5150cdce25 Improve handling of short-circuiting operators. 9 years ago
Daniel Grunwald 15b776faa2 Initial attempt at short-circuiting if conditions 9 years ago
Daniel Grunwald 0fade5cb0f Add single-stepping support to some ILAst transforms. 9 years ago
Daniel Grunwald 4a13491ff9 Improve switch simplifcation: combine case section with default block where possible 9 years ago
Daniel Grunwald 11bb3060a7 Try a bit harder to find an exitInst for switch-case. 9 years ago
Daniel Grunwald a6fc52a63f ConditionDetection: move blocks into switch sections 9 years ago
Daniel Grunwald 36d61db3a7 Add support for sparse integer switches. 9 years ago
Daniel Grunwald 9dec6c80a7 LoopDetection: use post-dominance to find better loop exit points 9 years ago
Daniel Grunwald 0e118f0977 LoopDetection: in loops without any exit points, exclude the largest possible code block from the loop 9 years ago
Siegfried Pammer 3a89500e0c Merge binary arithmetic instructions into one class. 9 years ago
Daniel Grunwald 449bbe2043 Move transforms to transforms namespace 9 years ago
Daniel Grunwald cfd638e413 Fix fixed statement 9 years ago
Daniel Grunwald 20aec66815 Initial support for decompiling fixed statements 9 years ago
Daniel Grunwald e1930e9170 Adjust comp.unsigned(ldlen array > ldc.i4 0) transforms to explicit i4->i conversions. 9 years ago
Daniel Grunwald 9678c692ad Fix NullReferenceException in DetectPinRegions 9 years ago
Daniel Grunwald 7e50076671 Introduce array.to.pointer instruction. 9 years ago
Daniel Grunwald 275a147224 First attempt at pinned regions. 9 years ago
Daniel Grunwald 2730133f5f Combine switch sections that branch to same label. 9 years ago
Siegfried Pammer f781c0335a replace IsSingleUse with IsSingleDefinition 9 years ago