55 Commits (60f4525b04a7ae84a8c83dba83187f0fe853adc6)

Author SHA1 Message Date
Daniel Grunwald 5ee3d87388 Implemented a simple copy-propagation step. 15 years ago
Daniel Grunwald cfbbae4cb7 Remove code duplication ILInlining / ILAstOptimizer.InlineVariables. 15 years ago
David Srbecký ec0916c595 Perform inlining at the end 15 years ago
David Srbecký efd04b31d8 Simple goto and nop removal 15 years ago
David Srbecký 897ac7fe04 Moved inlineing from Builder to Optimizer 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
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 6da92cd8d1 yield return decompilation: translate fields to local variables 15 years ago
Daniel Grunwald 6feadf3840 Started analysis of yield return statements. 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ý 01de42c04a Reduced branch codes to just br and brtrue 15 years ago
Daniel Grunwald 60c02d577b Change namespace to ICSharpCode.Decompiler. 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ý 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
David Srbecký 164691cf33 Further improvement in conditional control flow. 15 years ago
David Srbecký e2291940fb Improve control flow of conditions 15 years ago
Daniel Grunwald 7de3cf9bc4 Add support for array initializers. 15 years ago
David Srbecký 8de27deb9e Reduced the complexity of short-circuit detection to polynomial time. 15 years ago
David Srbecký 022111fa9f Fixed bug that might have caused some code to be duplicated 15 years ago
Daniel Grunwald e31a89689d Add support for char literals. 15 years ago
David Srbecký b4c2b3f92a Determine loop condition from CFG 15 years ago
David Srbecký 7c4111267a Support for short circuit conditional operators (&& and ||) 15 years ago
David Srbecký eda207369c Slight improvement in code order 15 years ago
David Srbecký a03d029d30 Use custom enum to store OpCodes (so that we can add "virtual" opcodes) 15 years ago
Daniel Grunwald 8e69601184 Implement type analysis for a lot more opcodes. 15 years ago
Daniel Grunwald cd2c70a6b4 First implementation of type inference. 15 years ago
Daniel Grunwald ea0c2df3ff Allow viewing the intermediate ILAst steps. 15 years ago
David Srbecký 6c1f4ca355 Simple fix for some accidentaly duplicated nodes 15 years ago
David Srbecký 9937d991e8 Initial support for switch statements 15 years ago
David Srbecký 11d53ebdca Keep track of original IL ranges 15 years ago
David Srbecký dac0d95f43 Better conditions in case when one body gotos out of scope 15 years ago
David Srbecký c7e7a24efa Slight improvement in the node order in loops 15 years ago
David Srbecký bcab82ec21 Handle mutually nested loops/conditions 15 years ago
David Srbecký daf6643434 Fixed some control flow correctness issues 15 years ago
Daniel Grunwald 9502746b05 Fix exception when decompiling a try-catch block without finally block. 15 years ago