320 Commits (b88329963eec13d2ec2d8221ef6bc993381296d7)

Author SHA1 Message Date
Siegfried Pammer 391bf28f81 Drop the per-call predicate from FindFlagInitStore. 2 months ago
Siegfried Pammer a9a43f96a9 Reverse runtime-async multi-handler try-catch dispatched via an if-chain. 2 months ago
Siegfried Pammer 8e2e48f5cc Generalise runtime-async flag-based early-return for nested try-finally. 2 months ago
Siegfried Pammer 8a03ee246f Reverse runtime-async try-finally where the try body always throws. 2 months ago
Siegfried Pammer 8059fde539 Reverse runtime-async exception lowering for try-catch nested inside try-finally. 2 months ago
Siegfried Pammer c107c5a4bc Reverse runtime-async flag-based early-return across a try-finally. 2 months ago
Siegfried Pammer b29dd718a5 Recover the this-copy that runtime-async inserts at the entry of struct async methods. 2 months ago
Siegfried Pammer 1bfa3b821f Reduce runtime-async manual await pattern (non-Task awaitables) to Await. 2 months ago
Siegfried Pammer 7c39e9ea5e Reduce multi-handler runtime-async try-catch back to a multi-handler TryCatch. 2 months ago
Siegfried Pammer 58baac0c50 Normalize runtime-async catch filters to recover catch-with-when. 2 months ago
Siegfried Pammer 255e73f3a0 Reverse runtime-async lowering of try-finally and try-catch with await. 2 months ago
Siegfried Pammer 77d9ee73e9 Fix IDE2000 globally 6 months ago
Peter Crabtree e1e16b64f5 dev: Strip BOM mark from text files 10 months ago
Daniel Grunwald 02d9dc3e85 Fix #3323: Simplify cleanup in AwaitInFinallyTransform, ensuring that we do not miss any containers. 11 months ago
Daniel Grunwald 8ad33f1e13 Fix #3479: If YieldReturnDecompiler.ConvertBody fails, abort transforming the state machine instead of continuing with invalid code. 11 months ago
Siegfried Pammer 2461f520ab Move LocalFunctionDecompiler.GetStatement to Block.GetContainingStatement 1 year ago
Siegfried Pammer 51522c4487 Fix #3190: NRE in YieldReturnDecompiler 1 year ago
Siegfried Pammer 03aecf047d Add VariableScope and rework AssignVariableNames step to support renaming parameters of nested ILFunctions in the future. 1 year ago
Siegfried Pammer f0f95efa05 Fix StateRangeAnalysis to handle changes in yield return codegen in Roslyn 4.13. 1 year ago
Siegfried Pammer 6cee0cdc4b Fix #3258: Move GraphVizGraph and friends to ILSpy and remove InternalsVisibleTo. 2 years ago
Daniel Grunwald 38e7ab4373 Fix #3110: Add support for MCS 2.6.4 pinned region with array variable 2 years ago
Siegfried Pammer 969e3e546a Add support for switch on (ReadOnly)Span<char> using a compiler-generated hash function. 2 years ago
Siegfried Pammer ca78d4a14d Use MetadataFile instead of PEFile in TypeSystem. 2 years ago
Daniel Grunwald 5a5be026d0 Avoid reference count temporarily dropping to zero while ConditionDetection moves instructions to other blocks. 3 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. 3 years ago
Siegfried Pammer 4ca9fddd6f Fix #3069: Reuse SwitchAnalysis instead of MatchIfElseOnCharBlock 3 years ago
ElektroKill 915c0310c4
Add support for MSC 2.6.4 pinned region with string variable 3 years ago
Daniel Grunwald b9ce8490f5 Remove hack that prevented inlining of the first instruction in each block. 3 years ago
ElektroKill 8a1e8e3c6b
Make return duplication in `ControlFlowSimplification` less aggressive 3 years ago
ElektroKill 0cbd9a4faa
Add Visual Basic symbolic execution option which ignores overflow checks 3 years ago
ElektroKill 29eb31354b
Fix formatting 3 years ago
ElektroKill b110d5c2dc
Implement support for Visual Basic yield return state machines 3 years ago
ElektroKill 341074aa58
Extend VBPretty Async test code 4 years ago
ElektroKill 5d3f9d3a6f
Add support for Visual Basic async await state machine decompilation 4 years ago
Siegfried Pammer 6766ad0c59 #2823: Introduce `IType.GetDefinitionOrUnknown()` to allow better detection of async state-machines involving unknown types. 4 years ago
Daniel Grunwald 503048b314 Prevent the early ILInlining pass from creating `addressof` instructions 4 years ago
Daniel Grunwald 3c847b56a2 Fix decompilation of async streams compiled with Roslyn 4.2 4 years ago
Siegfried Pammer 4c1931d5c6 Fix NRT warning in GetBlockStateSetMappingForLeave. 4 years ago
Siegfried Pammer a4e2bd7f8f Handle leave instructions in state-range analysis. 4 years ago
Siegfried Pammer 84c15bb24f Fix #2652: AwaitInFinallyTransform: ILAst must form a tree 4 years ago
Siegfried Pammer 3c2e52854e DetectPinnedRegions: Inline the stack-slot involved in CustomRefPinPattern so that the following ProcessPinnedRegion call can reuse existing unmanaged pointer variables instead of being forced to create a new variable. 4 years ago
Siegfried Pammer f98012ec16 DetectPinnedRegions: Support special case where pinned pointer is unused and the compiler optimized out the StopGCTracking-conversion. 4 years ago
Daniel Grunwald 787621fb51 Revert "Use Nop instead of InvalidExpression to hold the "goto from catch-block to try-block" comment" 5 years ago
Daniel Grunwald cedd8a6bf6 Fix #2480: Avoid yield-return decompilation if there are unrecognized state assignments in a finally method. 5 years ago
Daniel Grunwald 77dcbbee86 Use Nop instead of InvalidExpression to hold the "goto from catch-block to try-block" comment 5 years ago
Siegfried Pammer 1826ac031d #2539: Add support for yield state machine pattern used by mcs 5.x 5 years ago
Daniel Grunwald df339e72fb Fix DetectPinnedRegions.SplitBlocksAtWritesToPinnedLocals creating blocks without ILRange. 5 years ago
Daniel Grunwald 583771e012 #2533: Fix bug in CreatePinnedRegion that could cause pinned regions to be created with the wrong entry point if the original IL had blocks in an unusual order 5 years ago
Siegfried Pammer e1ca4db851 Fix #2527: Support skip locals init 5 years ago
Siegfried Pammer 9d99ee86db Fix #2503: Move correct branch in the case of swapped jump-table conditions. 5 years ago