116 Commits (d631eeda5cc1ae981ccfc76d05294abd8a8bf3d1)

Author SHA1 Message Date
Siegfried Pammer 948da3f9ee ILInlining: IStatementTransform.Run repeatedly inline all possible statements. 3 years ago
Daniel Grunwald 503048b314 Prevent the early ILInlining pass from creating `addressof` instructions 3 years ago
Siegfried Pammer d3f8912d53 Handle special-cases with addressof: 3 years ago
Siegfried Pammer 702a7da2c3 Fix #2714: Force inlining of call targets in ctor initializers. 3 years ago
Siegfried Pammer 5f73bfbb01 Fix Deconstruction for Deconstruct instance methods of value-types. 3 years ago
Siegfried Pammer 83727ea4b0 Add support for value type patterns 4 years ago
Siegfried Pammer 8eafbb3d90 Fix #2092: aggressively inline code in compiler-generated lambdas and expression trees. 4 years ago
Siegfried Pammer 4ae41a855e Fix #2321: Missing readonly modifier for ref local 4 years ago
Daniel Grunwald 3831b42197 Properly support `calli` instruction and its interaction with function pointer types. 5 years ago
Daniel Grunwald bb99e9668a Fix #2115: Re-introduce the evaluation order bug #2050 when a language version <=C# 5 is selected. 5 years ago
dotnet format 0d9f871a4f #2128: Reformat the whole code base. 5 years ago
Siegfried Pammer 7f4653c274 Add support for tuple deconstruction 5 years ago
Siegfried Pammer b435c07f4d Added support for deconstruction assignments to properties 5 years ago
Daniel Grunwald c9f65d3b5e Fix #1555: Eliminate value-type temporaries emitted by mcs on field reads. 5 years ago
Daniel Grunwald cc850c27aa Add "Aggressive inlining" option 5 years ago
Daniel Grunwald 1a997fdb60 Enable aggressive inlining into switch expressions. 5 years ago
Daniel Grunwald c63e14e805 Move some special cases from ILInlining.FindLoadInNext to the individual ILInstructions. 5 years ago
Daniel Grunwald fe2143b41f Validate code movement performed by IndexRangeTransform. 5 years ago
Daniel Grunwald 81d9eda332 I just discovered that we do have un-inlining implemented... let's mention it where it's more likely to be found in the future. 5 years ago
Daniel Grunwald 62fcab8d99 #2050: Allow inlining into the StObj target slot when this is possible without changing the program semantics. 5 years ago
Daniel Grunwald 925a4e1e65 #2050: Don't put ldflda/ldelema with immediate exceptions into StObj.TargetSlot. 5 years ago
Daniel Grunwald 12226c5f90 Add support for indexing a container with a System.Index instance. 5 years ago
Daniel Grunwald dc6e094a30 Add support for indexing arrays using System.Index 5 years ago
Daniel Grunwald eb2a9e6b94 #1852: Rename array.to.pointer opcode to get.pinnable.reference. 6 years ago
Siegfried Pammer a781e37d98 Fix #1779: Do not inline compound assignment target, if it is a temporary struct. 6 years ago
Siegfried Pammer ea3a005908 Fix #1760: NRE in ILInlining, if nullable.rewrap is used with an expression that has a type parameter as its type. 6 years ago
Daniel Grunwald ae32913aca Add IMethod.ThisIsRefReadOnly 6 years ago
Siegfried Pammer 9190515d8b #1151: Support for ref readonly locals. 6 years ago
Daniel Grunwald 4b90e43187 Avoid making explicit ToString() implicit when doing so changes the semantics for mutable value types. 6 years ago
Daniel Grunwald 57b725df79 Fix #1655: Incorrect pointer cast when calling method on integer constant 6 years ago
Daniel Grunwald df13f0ce01 Fix #1605: Inline ref locals more aggressively; this is necessary for VB compound assignments. 6 years ago
Daniel Grunwald 7f8689c464 Allow inlining of compiler-generated value-type-temporaries when field accesses are involved. 6 years ago
Daniel Grunwald 752f0de978 Further adjustments to transforms now that copy propagation no longer runs. 6 years ago
Daniel Grunwald 33c7425fa2 Fix several bugs with compound assignments on indexers. 6 years ago
Daniel Grunwald ccdabf2325 Fix a bunch of XmlDoc compiler warnings. 6 years ago
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. 6 years ago
Siegfried Pammer ab8c73b2f7 #1336: Add limit in HandleSimpleArrayInitializer. 6 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