52 Commits (dc2af218e4e8ab30137a667c1a46b1c9081d1825)

Author SHA1 Message Date
apmoskevitz dc2af218e4 Focus on CS8600 (not even close to done thee is a ton of these) 9 months ago
apmoskevitz 30421e7309 added notnullwhen annotations 9 months ago
apmoskevitz ef8e709ecc applied fixer for drect assignment from null 9 months ago
Daniel Grunwald 5a5be026d0 Avoid reference count temporarily dropping to zero while ConditionDetection moves instructions to other blocks. 2 years ago
Siegfried Pammer 0a2037ae1f #3075: Avoid processing already-transformed blocks by introducing BlockTransformContext.IndexOfFirstAlreadyTransformedInstruction, which allows us to track already transformed instructions after a block has been merged into another by ConditionDetection. 2 years ago
Daniel Grunwald 6757295b3b Fix #2379: Keep `return` statements around in original form for ConditionDetection, only transform to fall-through block-exit at the end of the transform pipeline. 4 years ago
dotnet format 0d9f871a4f #2128: Reformat the whole code base. 5 years ago
Daniel Grunwald 417a2c3391 Revert the InvertIf change; it causes too many issues for the following transforms. 5 years ago
Daniel Grunwald e083d43fb9 Fix ReduceNestingTransform 5 years ago
Daniel Grunwald 696fdca923 Always create a block when inverting an if. 5 years ago
Siegfried Pammer e4fda5c2e4 Rename HasILRange to ILRangeIsEmpty to properly reflect its implementation. 5 years ago
Daniel Grunwald 6c0216bbb9 Fix assertion in ReduceNestingTransform: after copying the exitInst, it was possible that the old copy of the exitInst became unreachable. 6 years ago
Daniel Grunwald ccdabf2325 Fix a bunch of XmlDoc compiler warnings. 6 years ago
Siegfried Pammer c1fca21e8a Make ILRange field private - introduce public API for IL range manipulation. 6 years ago
Chicken-Bones e9b766d708 Improve persistence of IL offsets through various transforms. 7 years ago
Chicken-Bones 52a279f861 Restore HighLevelLoopTransform pattern match for loop contents within if body 7 years ago
Chicken-Bones 7017d998d0 Improve switch decompilation in loops via early detection of continue blocks. 7 years ago
Chicken-Bones 5ed5ea0e0f Improve block ordering in ConditionDetection using the ILOffsets of Leave instruction arguments 7 years ago
Daniel Grunwald 90d866d78a Fix #1193: Performance issues with deeply nested block structures 7 years ago
Daniel Grunwald bafb6d1d49 Fix #1194: empty if statements are decompiled into goto statements 7 years ago
Daniel Grunwald 4b96f48d87 Cosmetic changes during review of PR #1176 7 years ago
Chicken-Bones 3fb7c71f8a Improve control flow decompilation in ConditionDetection 7 years ago
Siegfried Pammer f8b27066a1 Remove ILInstructionExtensions.cs 8 years ago
Daniel Grunwald 102729cfde Put switch instructions into their own BlockContainer. 8 years ago
Daniel Grunwald 8a68a94d35 Simplify use of SwitchInstruction in ILAst 8 years ago
Siegfried Pammer 2d2ca893e9 ConditionDetection: Remove empty else-branches. 8 years ago
Daniel Grunwald 39bb6856b7 Fix various bugs with compound assignments. 8 years ago
Daniel Grunwald 919219524b Eliminate the dedicated logic.not instruction, and treat it as syntax sugar similar to logic.and/logic.or. 8 years ago
Daniel Grunwald 259e322e26 Fix typo in IsBranchOrLeave() 8 years ago
Daniel Grunwald 513a01e4dd Ignore non-void leave in ConditionDetection. 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 fe84ea9730 WIP: yield return decompiler 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 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 0e118f0977 LoopDetection: in loops without any exit points, exclude the largest possible code block from the loop 9 years ago
Daniel Grunwald 449bbe2043 Move transforms to transforms namespace 9 years ago
Daniel Grunwald 7e50076671 Introduce array.to.pointer instruction. 9 years ago
Daniel Grunwald 288bb928ce Attempt to improve control flow detection 10 years ago
Daniel Grunwald 2509f27223 * Rename ControlFlowSimplification to ConditionDetection 10 years ago