191 Commits (f3f557103b83dda99168b5b227e05f605b609f23)

Author SHA1 Message Date
Daniel Grunwald 78eea4fddf Fixed bug that caused yield-return analysis to fail sometimes. 15 years ago
David Srbecký 08b8645308 Handle uninitialized variables. Closes #102. Closes #116. 15 years ago
David Srbecký 6222ef7bbf Do stack analysis on the whole filter body. Closes #88 15 years ago
David Srbecký 7ac44375ff Fixed NullReferenceException caused by unreachable IL code. It was generally caused by throw followed by catch leave. 15 years ago
Daniel Grunwald 1e66e970bf Add support for mkrefany opcode. 15 years ago
Daniel Grunwald 15f5c7a0b4 CachedDelegateInitialization: use less aggressive inlining 15 years ago
Daniel Grunwald f791897829 Implemented CachedDelegateInitialization transform for local variables (used for capturing lamdbas within loops). 15 years ago
Daniel Grunwald d550d55560 Fixed 'as' and 'is' operators for value types. 15 years ago
Daniel Grunwald 9ad5124603 Fixed type analysis for collection initializers. Closes #104. 15 years ago
Daniel Grunwald 55dec5389c Fix crash when decompiling calli instruction. Closes #113. 15 years ago
Daniel Grunwald 6376110913 Fixed issues with "fixed" statement that were introduced by recent changes. 15 years ago
Daniel Grunwald fe4b3d44a0 Fixed post-increment operator on fields in generic classes. 15 years ago
Daniel Grunwald 8cb85826fc Fixed type substitution for arrays. Closes #94. 15 years ago
Daniel Grunwald cc0ab56869 Add pre- and post-increment support for properties (both instance and static) and for multi-dimensional arrays. 15 years ago
Daniel Grunwald d91b56b033 Add support for pre- and post-increment of dereferenced pointers "(*ptr)++". 15 years ago
Daniel Grunwald 4c7a896a84 Implemented post-increment operator. Closes #76. 15 years ago
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