122 Commits (ddd7b9d52647376ba3f1d793f5c51a6feb70e7e2)

Author SHA1 Message Date
Daniel Grunwald ddd7b9d526 Fix NullReferenceException when decompiling an automatic property within a generic class. 15 years ago
Daniel Grunwald ca720c105d Type analysis for "yield return" 15 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. 15 years ago
David Srbecký ec0916c595 Perform inlining at the end 15 years ago
Daniel Grunwald 7951089447 Remove code made redundant by SimpleGotoAndNopRemoval. 15 years ago
David Srbecký efd04b31d8 Simple goto and nop removal 15 years ago
David Srbecký aaad162de6 Storing temporary variables in reverse produces better code 15 years ago
David Srbecký 897ac7fe04 Moved inlineing from Builder to Optimizer 15 years ago
Daniel Grunwald cdc56cb98a Fix "yield return" decompilation in generic classes. 15 years ago
Daniel Grunwald 28a98e5ccb Fix detection of "yield return" when IEnumerator is returned (not IEnumerable). 15 years ago
Daniel Grunwald 69fe6bc7c2 Fixed bug in yield return decompiler when decompiling a method consisting only of 'yield break;'. 15 years ago
Daniel Grunwald bfcc0e779b YieldReturnDecompiler: Use symbolic execution to analyze the jump table at the start of MoveNext(). 15 years ago
Daniel Grunwald ae0d6d5295 Some bugfixes for yield return. 15 years ago
Daniel Grunwald e71935144a Adjust yield return decompiler to David's pattern matching refactoring. 15 years ago
David Srbecký 43706248fb Fixed FindLoopContent - it sometimes pulled in more then just the natural loop 15 years ago
Daniel Grunwald b2b93aff71 Fix bugs when decompiling release builds of yield-return enumerators. 15 years ago
Daniel Grunwald 29523a7de8 Yield-return decompiler: Add leave instruction out of try block; fixes NullReferenceExecption when yield return is within using statement. 15 years ago
David Srbecký de6d657f3f Fixed return duplication in the case when the last return statement was already removed. 15 years ago
David Srbecký 4c38e164de Minor refactoring of ILAst pattern matching 15 years ago
David Srbecký 456758e542 Apply the offset in switch expression 15 years ago
David Srbecký 84d45645bd Generate switch default case. Closes #26 15 years ago
David Srbecký 74b6624c5e Support multiple values per case block 15 years ago
David Srbecký fd1594996b Support for "break" in switch statements 15 years ago
Daniel Grunwald 5ca3ddb860 Yield return decompiler: reconstruct try-finally blocks. 15 years ago
Daniel Grunwald 6da92cd8d1 yield return decompilation: translate fields to local variables 15 years ago
Daniel Grunwald d5505b7843 Initial attempt at yield return transform. 15 years ago
Daniel Grunwald 6feadf3840 Started analysis of yield return statements. 15 years ago
Daniel Grunwald 7d1d168313 Add options dialog. 15 years ago
David Srbecký f0faaaf8d2 Do not enter try-blocks in the goto removal algorithm 15 years ago
David Srbecký aab0e43a08 Don't just fall out of case statements. 15 years ago
David Srbecký 37301d0162 Negate loop condition if necessary 15 years ago
David Srbecký 91334dbfe2 Use brtrue as loop condition only if one of the destinations is not in the loop 15 years ago
David Srbecký 6abb310356 Fixed bug in goto removal 15 years ago
David Srbecký 01de42c04a Reduced branch codes to just br and brtrue 15 years ago
David Srbecký 929fd4a09d Made some structures in ILAstBuilder immutable to improve speed and memory consumption 15 years ago
Daniel Grunwald 8835b085cf Handle non-custom attributes: 15 years ago
Daniel Grunwald 70b95847fe Eliminate cached delegate initialization. 15 years ago
Daniel Grunwald 60c02d577b Change namespace to ICSharpCode.Decompiler. 15 years ago
Daniel Grunwald 27ff71ada3 Add support for decimal literals. Closes #42. 15 years ago
Daniel Grunwald ee105aeb3c Refactor ArrayInitializers into a general peephole-transformation step. 15 years ago
David Srbecký e53c2565e8 Simple heuristics to improve gotos related to loops 15 years ago
David Srbecký c3e3166d8f Reimplemented condition "unnesting" to work on the fattened data with gotos already cleaned up. Use left over gotos and other unconditional flow to guide the unnesting. 15 years ago
David Srbecký 3f4578f7f5 Duplicate return statement with const int/bool. 15 years ago
David Srbecký 46c99ddc44 Performance improvement - use accumulator list for GetSelfAndChildrenRecursive 15 years ago
David Srbecký effe892409 Duplicate return statements 15 years ago
David Srbecký 1bc30662b0 Rewritten goto removal. 15 years ago
David Srbecký 1174435aa6 Preparing duplication of return statement 15 years ago
David Srbecký 05b0b427d6 Peephole detection of the ternary operator (?:) 15 years ago
David Srbecký 194238586d Slightly reduce the number of generated basic blocks 15 years ago
Daniel Grunwald db44cd1d3b Handle ldelem.any. Closes #47. 15 years ago