112 Commits (33c5e2d3ed2799ce08338cf87efffda41c903618)

Author SHA1 Message Date
Daniel Grunwald 568b3e2d91 Fix DetectPinnedRegions introducing stack type inconsistencies. 8 years ago
Daniel Grunwald 02db362838 Ensure that StLoc.Value.ResultType == StLoc.Variable.StackType 8 years ago
Daniel Grunwald d6bc1ca762 #915: Fix LoopDetection.FindExitPoint() incorrectly returning null (=multiple exit points; use heuristic) when there was only a single exit point that wasn't dominated by the loop head. 8 years ago
Daniel Grunwald e6afe4bf98 Fix #915: ensure that loops are nested correctly 8 years ago
Daniel Grunwald 7af15d27cd Fix #905: improve exit point detection for foreach loops. 8 years ago
Siegfried Pammer 154833b06c Add ContainerKind 8 years ago
Daniel Grunwald 1528ff329f #447: Don't pick "return;" as exit point if there's another choice. 8 years ago
Daniel Grunwald adb64514f8 Add some comments to SwitchDetection.UseCSharpSwitch 8 years ago
Siegfried Pammer f8b27066a1 Remove ILInstructionExtensions.cs 8 years ago
Daniel Grunwald 8c5de98a39 Move UnsafeCode tests to pretty-tests (except for those that are not yet successful). 8 years ago
Siegfried Pammer 4ca4d97011 Improve SequencePointBuilder 8 years ago
Moritz f4209947a0 Fix await calls not getting decompiled correctly (#904) 8 years ago
Siegfried Pammer e33a010cc7 Remove compiler-generated variable in while (true) loops. 8 years ago
Siegfried Pammer 12e39cf63c Fix switch exit points. 8 years ago
Daniel Grunwald 236c7c28b4 Remove redundant lambda casts. 8 years ago
Siegfried Pammer f7f583056a Fix order of switch blocks. 8 years ago
Daniel Grunwald 87b350e4eb Fix SwitchAnalysis not recursing into the default-block of IL switches. 8 years ago
Daniel Grunwald 953c6a0929 Keep code dominated by a single switch section within the switch. 8 years ago
Daniel Grunwald c7490ff2fe [switch] Sort switch sections 8 years ago
Daniel Grunwald de2c647114 Revert "Fix bug that could cause nodes reachable from the exit point to be moved into the loop/switch." 8 years ago
Daniel Grunwald cd993ad074 Property validate exit points determined using post-dominance. 8 years ago
Daniel Grunwald 9ef97703cd [switch] consider loop back-edges to be exit points when looking for the switch body 8 years ago
Daniel Grunwald 105ff744b3 Fix bug that could cause nodes reachable from the exit point to be moved into the loop/switch. 8 years ago
Daniel Grunwald 102729cfde Put switch instructions into their own BlockContainer. 8 years ago
Daniel Grunwald f42d1a4b34 Fix crash in SwitchDetection. 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 66dc52c33c Fix handling of 'leave' instruction in SwitchAnalysis. 8 years ago
Daniel Grunwald 39bb6856b7 Fix various bugs with compound assignments. 8 years ago
Daniel Grunwald 846c8613b0 [async] Delete dead ldloc(cachedStateVar). 8 years ago
Daniel Grunwald a6c6ddcea1 Fix #861: Improved loop exit point heuristic. 8 years ago
Daniel Grunwald 7017c6f6e6 Replace LoopingBlockTransform with StatementTransform. 8 years ago
Daniel Grunwald 0008deb021 Fix handling of try-finally blocks in ReachingDefinitionsVisitor. 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 e266c634de [nullables] Add support for lifted binary operators where one of the inputs is nullable. 8 years ago
Daniel Grunwald 6b3ab66300 Fix ExpectedResultType of main BlockContainer. 8 years ago
Daniel Grunwald 259e322e26 Fix typo in IsBranchOrLeave() 8 years ago
Siegfried Pammer 2d1692c72f Add value parameter to Leave ctor. 8 years ago
Daniel Grunwald 513a01e4dd Ignore non-void leave in ConditionDetection. 8 years ago
Siegfried Pammer 206cdecf30 Merge Return instruction into Leave. 8 years ago
Daniel Grunwald ec610a4422 Clean up mono yield-return decompilation. 8 years ago
Daniel Grunwald d550390f4d Initial support for yield-return decompilation in assemblies compiled with the mono compiler. 8 years ago
Daniel Grunwald f5d907e0ce [async] Allow splitting awaiter variables. 8 years ago
Daniel Grunwald d5e41a91e6 [async] Fix await decompilation when GetResult call got inlined into another instruction. 8 years ago
Daniel Grunwald e024641a5f [async] Fix bug when async method uses this pointer. 8 years ago
Daniel Grunwald fac340965f return statements are no longer forcibly moved into loops when the loops are within exception handling blocks. 8 years ago
Daniel Grunwald 4bfdcdd8a2 [async] Fix handling of doFinallyBodies. 8 years ago
Daniel Grunwald 098d1152ff [async] Handle pre-roslyn stack saving during await. 8 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. 8 years ago
Daniel Grunwald 123a7f4a62 [async] small improvements to await decompilation 8 years ago