149 Commits (cce7300d6632fc69987ee9f71db2c2d3c83e3a4d)

Author SHA1 Message Date
David Srbecký cce7300d66 Removed the declarative pattern matching algorithm from ILAst 14 years ago
David Srbecký 05b3bfbff2 Use the simple pattern matching in yield return 14 years ago
David Srbecký 95ec14a7c5 Use the simple pattern matching for array initializers 14 years ago
David Srbecký 616503f9a9 Added method to calculate unassigned ILRanges 14 years ago
David Srbecký 7318663cd5 GetSelfAndChildrenRecursive can be predicated 14 years ago
David Srbecký 20e885539b Moved loops and condition optimizations to its own file 14 years ago
David Srbecký 3d4804a695 Simplify short circuit logic in return statements. Closes #49 14 years ago
David Srbecký a58cdc6a6e Support for the null coalescing operator 14 years ago
David Srbecký 892297708f Amend of last commit - remove stloc only if the inner expression is valid expression statement and the variable is generated 14 years ago
David Srbecký d167860111 Remove stloc instruction if the variable is never loaded 14 years ago
David Srbecký d518b07f8b Use short circuit logic instead of ternary operator if possible 14 years ago
Daniel Grunwald e9c6aa15e6 Fix switch on string when the compiler introduced a temporary variable for the string being switched on. 14 years ago
Daniel Grunwald 351808626e Fix lambda expressions that are used within conditions. 14 years ago
Daniel Grunwald e0fb40fbcc Fixed decompilation of lambda expressions within generic classes. 14 years ago
Daniel Grunwald fa05b733ee Perform copy propagation for all address-loading instructions. 14 years ago
Daniel Grunwald b6d832d212 Add support for collection initializers. 14 years ago
Daniel Grunwald 60f4525b04 Add support for decompiling "this.field1 = this.field2 = val;" 14 years ago
Daniel Grunwald 2892c9d50b Implemented decompilation of 'lock'. 14 years ago
Daniel Grunwald a673a3fec1 Fix inlining after expression peephole transformations. 14 years ago
Daniel Grunwald 72ee5d309c Improve array initializer support. 14 years ago
Daniel Grunwald b6b31514de Perform 'dup' removal prior to copy propagation 14 years ago
Daniel Grunwald ea5c790991 Adjust array initializer pattern to 'dup' changes. 14 years ago
David Srbecký 171b11b87f Generate only one variable for 'dup' if possible 14 years ago
Daniel Grunwald 5ee3d87388 Implemented a simple copy-propagation step. 14 years ago
Daniel Grunwald cfbbae4cb7 Remove code duplication ILInlining / ILAstOptimizer.InlineVariables. 14 years ago
Daniel Grunwald 404b27c860 Fixed crash when decompiling System.Net.ShellExpression. 14 years ago
Daniel Grunwald 262652fe1a Fix type analysis for localloc/sizeof. 14 years ago
Daniel Grunwald ddd7b9d526 Fix NullReferenceException when decompiling an automatic property within a generic class. 14 years ago
Daniel Grunwald ca720c105d Type analysis for "yield return" 14 years ago
Daniel Grunwald 9421c4591a Fix decompiling iterator blocks in debug builds when there is no try-finally block and the "ret(0)" is reached by fall-through (instead of by a jump instruction). Closes #68. 14 years ago
David Srbecký ec0916c595 Perform inlining at the end 14 years ago
Daniel Grunwald 7951089447 Remove code made redundant by SimpleGotoAndNopRemoval. 14 years ago
David Srbecký efd04b31d8 Simple goto and nop removal 14 years ago
David Srbecký aaad162de6 Storing temporary variables in reverse produces better code 14 years ago
David Srbecký 897ac7fe04 Moved inlineing from Builder to Optimizer 14 years ago
Daniel Grunwald cdc56cb98a Fix "yield return" decompilation in generic classes. 14 years ago
Daniel Grunwald 28a98e5ccb Fix detection of "yield return" when IEnumerator is returned (not IEnumerable). 14 years ago
Daniel Grunwald 69fe6bc7c2 Fixed bug in yield return decompiler when decompiling a method consisting only of 'yield break;'. 14 years ago
Daniel Grunwald bfcc0e779b YieldReturnDecompiler: Use symbolic execution to analyze the jump table at the start of MoveNext(). 14 years ago
Daniel Grunwald ae0d6d5295 Some bugfixes for yield return. 14 years ago
Daniel Grunwald e71935144a Adjust yield return decompiler to David's pattern matching refactoring. 14 years ago
David Srbecký 43706248fb Fixed FindLoopContent - it sometimes pulled in more then just the natural loop 14 years ago
Daniel Grunwald b2b93aff71 Fix bugs when decompiling release builds of yield-return enumerators. 14 years ago
Daniel Grunwald 29523a7de8 Yield-return decompiler: Add leave instruction out of try block; fixes NullReferenceExecption when yield return is within using statement. 14 years ago
David Srbecký de6d657f3f Fixed return duplication in the case when the last return statement was already removed. 14 years ago
David Srbecký 4c38e164de Minor refactoring of ILAst pattern matching 14 years ago
David Srbecký 456758e542 Apply the offset in switch expression 14 years ago
David Srbecký 84d45645bd Generate switch default case. Closes #26 14 years ago
David Srbecký 74b6624c5e Support multiple values per case block 14 years ago
David Srbecký fd1594996b Support for "break" in switch statements 14 years ago