175 Commits (52b178df907b0aa32ffe5bbb32ccd9dd425fd53b)

Author SHA1 Message Date
Daniel Grunwald 52b178df90 Make the pre-increment operators work on static fields. 15 years ago
Daniel Grunwald 1df82cc3d1 Improved support for compound assignments and the pre-increment operator. 15 years ago
Daniel Grunwald 1cd79a1301 Use type analysis to introduce casts to float/double only where required. 15 years ago
Daniel Grunwald 7e6490a816 Simplify conv.i8(ldc.i4(x)) to ldc.i8(x). 15 years ago
Daniel Grunwald 1a94ac50fb Mark casts as checked/unchecked. 15 years ago
Daniel Grunwald d430ee056b Recombine variables after ILAst optimizations so that there is only a single C# variable for a single IL variable. 15 years ago
David Srbecký ab9452a30e ILBasicBlock refactored to consist only of the body. Removed ILComment. Closes #86 15 years ago
David Srbecký 17f68f450f Moved some of the optimizations into the while(modified) loop 15 years ago
David Srbecký 579cbb0acd Added a pass to joint basic blocks 15 years ago
David Srbecký 10a96a8d3f Helpers ILCode.IsConditionalControlFlow() and ILCode.IsUnconditionalControlFlow() 15 years ago
David Srbecký 015d70ff52 Simplification of && || ?? ?: put into separate file. Just recalculate the analysis rather then trying to keep it up to date. 15 years ago
David Srbecký 31b2de1126 Fixed initilizers and fixed statements which I broke during the refactoring. 15 years ago
David Srbecký 1a64d56b5a Create short circuit logical expressions as left associative 15 years ago
David Srbecký 1b8a62fb7c Run optimization loops backwards (bottom-up) 15 years ago
David Srbecký 6046fdcdfb Do not put brtrue into its own basic block - store it together with the previous instructions. 15 years ago
David Srbecký b3f1d599f8 Refactored some peephole transforms; Moved some of the transforms before loop and condition detection 15 years ago
Daniel Grunwald bc229df848 Handle pointer arithmetic. 15 years ago
Daniel Grunwald 3ed0de81f7 Support fixed statement with multiple initializers. 15 years ago
Daniel Grunwald 1d11e75af3 Add support for fixed statement with strings. 15 years ago
Daniel Grunwald 1b90809728 Implemented 'fixed' statement for arrays. 15 years ago
Daniel Grunwald 3759b614cf Add support for calling methods on pointers (ptr->ToString()). 15 years ago
Daniel Grunwald b41ee3ca88 Fix type analysis bugs. 15 years ago
Daniel Grunwald db7653653d Add support for decompiling fixed statements. 15 years ago
Daniel Grunwald a3c241dac6 Improve handling of pinned variables. 15 years ago
Daniel Grunwald 7b2c444181 Add support for unsafe code. Closes #48. 15 years ago
Daniel Grunwald 01d7e2abbd Use the same representation for parameters and variables. 15 years ago
David Srbecký cce7300d66 Removed the declarative pattern matching algorithm from ILAst 15 years ago
David Srbecký 05b3bfbff2 Use the simple pattern matching in yield return 15 years ago
David Srbecký 95ec14a7c5 Use the simple pattern matching for array initializers 15 years ago
David Srbecký 616503f9a9 Added method to calculate unassigned ILRanges 15 years ago
David Srbecký 7318663cd5 GetSelfAndChildrenRecursive can be predicated 15 years ago
David Srbecký 20e885539b Moved loops and condition optimizations to its own file 15 years ago
David Srbecký 3d4804a695 Simplify short circuit logic in return statements. Closes #49 15 years ago
David Srbecký a58cdc6a6e Support for the null coalescing operator 15 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 15 years ago
David Srbecký d167860111 Remove stloc instruction if the variable is never loaded 15 years ago
David Srbecký d518b07f8b Use short circuit logic instead of ternary operator if possible 15 years ago
Daniel Grunwald e9c6aa15e6 Fix switch on string when the compiler introduced a temporary variable for the string being switched on. 15 years ago
Daniel Grunwald 351808626e Fix lambda expressions that are used within conditions. 15 years ago
Daniel Grunwald e0fb40fbcc Fixed decompilation of lambda expressions within generic classes. 15 years ago
Daniel Grunwald fa05b733ee Perform copy propagation for all address-loading instructions. 15 years ago
Daniel Grunwald b6d832d212 Add support for collection initializers. 15 years ago
Daniel Grunwald 60f4525b04 Add support for decompiling "this.field1 = this.field2 = val;" 15 years ago
Daniel Grunwald 2892c9d50b Implemented decompilation of 'lock'. 15 years ago
Daniel Grunwald a673a3fec1 Fix inlining after expression peephole transformations. 15 years ago
Daniel Grunwald 72ee5d309c Improve array initializer support. 15 years ago
Daniel Grunwald b6b31514de Perform 'dup' removal prior to copy propagation 15 years ago
Daniel Grunwald ea5c790991 Adjust array initializer pattern to 'dup' changes. 15 years ago
David Srbecký 171b11b87f Generate only one variable for 'dup' if possible 15 years ago
Daniel Grunwald 5ee3d87388 Implemented a simple copy-propagation step. 15 years ago