79 Commits (e5d783b06ab12a684920ba506e90683f394716d9)

Author SHA1 Message Date
Daniel Grunwald f2151972a0 Redesign CompoundAssignmentInstruction to support an 'Address' mode where we don't implicitly turn an LdObj into an StObj, but instead directly operate on an address. 6 years ago
Siegfried Pammer b03aa488aa Performance: Cache ChainedConstructorCallILOffset in ILFunction to avoid having to scan the method body in every inlining step. Take a shortcut for static ctors, as there cannot be chained ctor calls in static ctors. 6 years ago
Daniel Grunwald 8d99af14c5 Add support for 'ref readonly' return type. 6 years ago
Daniel Grunwald 416425b681 Readonly struct method calls on readonly lvalues don't generate temporaries. 6 years ago
Daniel Grunwald 4ad4f6a232 Fix #882: Don't inline value-type temporaries for setter calls. 6 years ago
Daniel Grunwald eb942b4a21 Fix #1430: Improve performance in ILInlining. 6 years ago
Siegfried Pammer 6e49efd5aa Extend ILInlining to work with StringToInt instructions inside Switch instruction. 6 years ago
Siegfried Pammer c1fca21e8a Make ILRange field private - introduce public API for IL range manipulation. 6 years ago
Daniel Grunwald da5693e605 Fix #1339: fixed statement not decompiled correctly when pinned variable is reset in finally block 6 years ago
Siegfried Pammer ecde53969c Add IsInConstructorInitializer case to ILInlining.OptionsForBlock. 7 years ago
Siegfried Pammer ab8c73b2f7 #1336: Add limit in HandleSimpleArrayInitializer. 7 years ago
Siegfried Pammer 0dac55d584 Add transformation for stackalloc to Span<T>. 7 years ago
Daniel Grunwald 4a3185c823 #907: Add tests 7 years ago
Daniel Grunwald e041454987 Add pretty tests for "yield return" and fix some minor bugs: 7 years ago
Daniel Grunwald dd5845e83d Support short-circuiting operators with dynamic. (e.g. "if (x.A && x.B)" where "x" is dynamic) 7 years ago
Daniel Grunwald 9479e8af13 Support overloaded operator &&/||. 7 years ago
Siegfried Pammer 0bf56ce9ca Add inlining special cases for dynamic compound assignments 7 years ago
Siegfried Pammer 805b9f4bb4 Add missing CallInlineAssign block kind to ILInlining.FindLoadInNext 7 years ago
Daniel Grunwald 6886d2f753 Add support for ?. operator on dynamic. 7 years ago
Daniel Grunwald f86bec4e0c Move named arguments to its own transform. 7 years ago
Daniel Grunwald ca09f09222 Don't use named arguments when IL stack is empty after the stloc. 7 years ago
Daniel Grunwald 21d3881e37 Introduce named arguments only in the statement transform. 7 years ago
Daniel Grunwald 810adea8b4 #1083: Initial implementation of named arguments. 7 years ago
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 8 years ago
Daniel Grunwald a8a852b742 Add instructions for modeling the "?." operator in the ILAst. 8 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