189 Commits (961923f4fd102650e46e4b3d3d8bd14e1c747e60)

Author SHA1 Message Date
Daniel Grunwald a6c6ddcea1 Fix #861: Improved loop exit point heuristic. 9 years ago
Daniel Grunwald 7017c6f6e6 Replace LoopingBlockTransform with StatementTransform. 9 years ago
Daniel Grunwald 0008deb021 Fix handling of try-finally blocks in ReachingDefinitionsVisitor. 9 years ago
Daniel Grunwald 919219524b Eliminate the dedicated logic.not instruction, and treat it as syntax sugar similar to logic.and/logic.or. 9 years ago
Daniel Grunwald e266c634de [nullables] Add support for lifted binary operators where one of the inputs is nullable. 9 years ago
Daniel Grunwald 6b3ab66300 Fix ExpectedResultType of main BlockContainer. 9 years ago
Daniel Grunwald 259e322e26 Fix typo in IsBranchOrLeave() 9 years ago
Siegfried Pammer 2d1692c72f Add value parameter to Leave ctor. 9 years ago
Daniel Grunwald 513a01e4dd Ignore non-void leave in ConditionDetection. 9 years ago
Siegfried Pammer 206cdecf30 Merge Return instruction into Leave. 9 years ago
Daniel Grunwald ec610a4422 Clean up mono yield-return decompilation. 9 years ago
Daniel Grunwald d550390f4d Initial support for yield-return decompilation in assemblies compiled with the mono compiler. 9 years ago
Daniel Grunwald f5d907e0ce [async] Allow splitting awaiter variables. 9 years ago
Daniel Grunwald d5e41a91e6 [async] Fix await decompilation when GetResult call got inlined into another instruction. 9 years ago
Daniel Grunwald e024641a5f [async] Fix bug when async method uses this pointer. 9 years ago
Daniel Grunwald fac340965f return statements are no longer forcibly moved into loops when the loops are within exception handling blocks. 9 years ago
Daniel Grunwald 4bfdcdd8a2 [async] Fix handling of doFinallyBodies. 9 years ago
Daniel Grunwald 098d1152ff [async] Handle pre-roslyn stack saving during await. 9 years ago
Daniel Grunwald 6c7e2efa6c [async] Fix await decompiler for pre-roslyn csc, at least in cases where the stack is empty during the await. 9 years ago
Daniel Grunwald 123a7f4a62 [async] small improvements to await decompilation 9 years ago
Daniel Grunwald 04215ebcfa [async] Add copy propagation so that state machine field accesses can be reliably detected. 9 years ago
Daniel Grunwald 7d6122cfaf [async] Decompile await operator. 9 years ago
Daniel Grunwald 3ff3b34be9 [async]: control flow reconstruction: fixes for legacy csc 9 years ago
Daniel Grunwald 40212685b6 [async]: control flow reconstruction 9 years ago
Daniel Grunwald 2396a7449b [async] Support state machine classes. 9 years ago
Daniel Grunwald b36ae9df7e Start on new async/await decompiler. 9 years ago
Daniel Grunwald bcdd34a9d0 More aggressively duplicate return blocks in MoveNext() methods. 9 years ago
Daniel Grunwald f411d15fc6 Fix generating switch sections without any case labels. 9 years ago
Daniel Grunwald 3e8ab77d52 Perform even less aggressive inlining of return blocks. 9 years ago
Daniel Grunwald c239204c7f Perform less aggressive inlining of return blocks. This tends to reconstruct control flow closer to the original code. 9 years ago
Daniel Grunwald 4c77022988 Improve decompiler performance. 9 years ago
Daniel Grunwald a5a98ae9f1 Adjust labels of simple switch instructions. 9 years ago
Daniel Grunwald 2207ab40f7 Check the CancellationToken a bit more frequently. 9 years ago
Daniel Grunwald 69c77d75a5 Try to get rid of some more gotos. 9 years ago
Daniel Grunwald cc33c27d9c ConditionDetection: Try to prefer 'break;' over other gotos 9 years ago
Daniel Grunwald 173c8d353f Support 'state + c1 < c2' in state-range-analysis. 9 years ago
Daniel Grunwald b9b510d225 yield return decompiler: fix yield return in structs; fix local variables in finally block 9 years ago
Daniel Grunwald 7277de6c08 More fixes for yield return decompilation. 9 years ago
Daniel Grunwald 9fa6009c44 Remove dead compiler-generated 'V = null;' assignments. 9 years ago
Daniel Grunwald bddda342a1 Improve yield-return-decompiler. 9 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 10 years ago
Daniel Grunwald e871f7c05a Convert LoopDetection into a block transform. 10 years ago
Daniel Grunwald ed3d4aba9d Run IntroduceExitPoints before loop detection, and let loop detection introduce its own exit points. 10 years ago
Siegfried Pammer 840ec04fde Namespace adjustments for Syntax classes 10 years ago
Christoph Wille 1ce8349dd9 Adjust namespaces 10 years ago