53 Commits (bcc1586f72d1c58332704e87ea125134fdd71487)

Author SHA1 Message Date
Daniel Grunwald bcc1586f72 ILAst transform for named arguments. 7 years ago
Siegfried Pammer 845c620a9f Implement UserDefinedCompoundAssign 7 years ago
Pent Ploompuu a63e65fae8 Reduced allocations in ILInlining 7 years ago
Siegfried Pammer deb1b6918f Fix bug and typo in IsInConstructorInitializer 7 years ago
Siegfried Pammer 96eb7e07dc Force ILInlining to aggressively inline constructor initializer statements. 7 years ago
Daniel Grunwald 3c720b2030 Implement ?. operator when the result of the call is not used 7 years ago
Daniel Grunwald a8a852b742 Add instructions for modeling the "?." operator in the ILAst. 7 years ago
Daniel Grunwald d949d4e638 Fix #991: explicit represent T->T? conversion in lifted operator calls. 8 years ago
Daniel Grunwald 02db362838 Ensure that StLoc.Value.ResultType == StLoc.Variable.StackType 8 years ago
Siegfried Pammer 349183544a Rename BlockType to BlockKind 8 years ago
Daniel Grunwald faa0c8a805 Aggressively inline in the whole catch-when block, not just on top-level. 8 years ago
Daniel Grunwald 51c895d5a5 Fix inlining into switch instructions. 8 years ago
Siegfried Pammer 1ebc7581d8 Fix IsUsedAsThisPointerInCall: if we deal with an unspecified generic type, we assume it's a value type as ldloca should be allowed as this pointer in those cases. 8 years ago
Daniel Grunwald a6559d941b Allow inlining into object/collection initializers. 8 years ago
Daniel Grunwald 7017c6f6e6 Replace LoopingBlockTransform with StatementTransform. 8 years ago
Daniel Grunwald 6988260ea3 Add ILInlining.IsUsedAsThisPointerInCall(). 8 years ago
Daniel Grunwald f380c29852 Refactor IsGeneratedValueTypeTemporary. 8 years ago
Daniel Grunwald 46e36f7e9a Fix #868: incorrect inlining of readonly fields. 8 years ago
Siegfried Pammer 4f7a479320 Add ILAstWritingOptions parameter to LockInstruction/UsingInstruction.WriteTo, fix merge errors. 8 years ago
Siegfried Pammer fa25b5d2e8 Implement foreach loop detection in StatementBuilder. 8 years ago
Daniel Grunwald 96c6b03d9b [nullables] operator! on bool? 8 years ago
Daniel Grunwald 919219524b Eliminate the dedicated logic.not instruction, and treat it as syntax sugar similar to logic.and/logic.or. 8 years ago
Daniel Grunwald 4830b37ab9 [nullables] Add support for '??' operator on nullables. 8 years ago
Daniel Grunwald 33099c5d65 [nullables] Extend nullable lifting to arbitrary combinations of 'conv' and 'binary.numeric'. 8 years ago
Daniel Grunwald 133ddac256 [nullables] Add support for lifted conversions. 8 years ago
Siegfried Pammer c34541ad4c Implement catch-when and remove local copy of exception slot. 8 years ago
Siegfried Pammer 206cdecf30 Merge Return instruction into Leave. 8 years ago
Daniel Grunwald d5e41a91e6 [async] Fix await decompilation when GetResult call got inlined into another instruction. 8 years ago
Daniel Grunwald 6c7e2efa6c [async] Fix await decompiler for pre-roslyn csc, at least in cases where the stack is empty during the await. 8 years ago
Daniel Grunwald 123a7f4a62 [async] small improvements to await decompilation 8 years ago
Daniel Grunwald 7d6122cfaf [async] Decompile await operator. 8 years ago
Daniel Grunwald 56a0ca2f13 Remove useless stack variables. 8 years ago
Daniel Grunwald bddda342a1 Improve yield-return-decompiler. 8 years ago
Siegfried Pammer 840ec04fde Namespace adjustments for Syntax classes 9 years ago
Christoph Wille 1ce8349dd9 Adjust namespaces 9 years ago
Daniel Grunwald 760e02a511 Add step messages to all block transforms. 9 years ago
Daniel Grunwald 51a9786243 Change some transforms to block transforms. 9 years ago
Siegfried Pammer a674b4cdf1 Extend TransformAssignment 9 years ago
Siegfried Pammer 3a89500e0c Merge binary arithmetic instructions into one class. 9 years ago
Siegfried Pammer c4092ac91e Extend TransformInlineAssignment for fields 9 years ago
Siegfried Pammer 8766783eb6 Remove ld(s)fld/st(s)fld 9 years ago
Daniel Grunwald 9803fd90e3 Actually use the improved code in ILInlining.IsSafeForInlineOver() 9 years ago
Daniel Grunwald 6d9e53bf4f Improve ILInlining.IsSafeForInlineOver() 9 years ago
Daniel Grunwald 449bbe2043 Move transforms to transforms namespace 9 years ago
Siegfried Pammer 128bf41d6c Fix unit test ValueTypeCall 9 years ago
Siegfried Pammer 15d0a405db Properly inline single-use locals in case of ldloca 9 years ago
Daniel Grunwald b55775e2cc Add reaching definitions analysis. 9 years ago
Daniel Grunwald 288bb928ce Attempt to improve control flow detection 10 years ago
Daniel Grunwald b10feca78b Add 'InlineCompilerGeneratedVariables' transform, hopefully this is sufficient to replace the 'variable splitting' in the old decompiler. 10 years ago
Daniel Grunwald 781ee2664f Allow inlining of compiler-generated temporaries for conditional branches. 10 years ago