125 Commits (dba836c41e77d734c8b243b2b8f909752694eed3)

Author SHA1 Message Date
Siegfried Pammer 6c72d1c5f0 Add transform to remove unconstrained generic reference type check. 3 months ago
Siegfried Pammer 9f77f8a919 Prevent inlining of call arguments when doing so would change order of evaluation with regards to the implicit ldobj performed by a constrained.callvirt. 3 months ago
Siegfried Pammer 5b90dbdabf Fix #3385: Allow address uses of structs in using transform, if the reference is passed to an in parameter. 4 months ago
Daniel Grunwald aa914058ce Fix #3237: Use `ref readonly` locals for `readonly.ldelema` 11 months ago
Siegfried Pammer 1c71f6ad46 Support concatenation involving arguments of type ReadOnlySpan<char>. 11 months ago
Siegfried Pammer 03a20f3494 Support ILInlining for in parameters 11 months ago
Daniel Grunwald 99d5e94a62 Allow inlining value type temporaries into constrained call. 2 years ago
Daniel Grunwald 475f2b3c28 Fix "ref readonly" fields. 2 years ago
Siegfried Pammer a3191f19e2 Fix #2763: Improve decompilation of switch-on-enum by preserving enum type information when inlining local variables into SwitchInstruction.Value. 3 years ago
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