Siegfried Pammer
1568aeca3e
Fix #2506 : NamedArgumentTransform loses information, if the original variable is of StackType.Ref
4 years ago
dotnet format
0d9f871a4f
#2128 : Reformat the whole code base.
5 years ago
Daniel Grunwald
bdea1950a8
Add `#if !NETCORE` around extension methods that are included with .NET Core 3
5 years ago
Daniel Grunwald
fb70a2861e
Fix #1656 : Disable CopyPropagation for split variables.
The code reordering done by copy propagation could cause the lifetimes of different parts of a split variable to start overlapping. This caused incorrect C# to be generated when the variable was recombined.
6 years ago
Daniel Grunwald
fc73851bb4
#1610 : Slightly more aggressive copy propagation.
This helps clean up the mess left behind when stack slots are not eliminated by the normal transforms.
We previously didn't do this because aggressive copy propagation could confuse the normal transforms; but this is no longer an issue with the new pass ordering.
6 years ago
Daniel Grunwald
97d490a3df
Slightly generalize the post-increment transform so that it no longer depends on copy propagation.
6 years ago
Siegfried Pammer
25f625af99
Move copy propagation after expression and statement transforms.
6 years ago
Siegfried Pammer
c1fca21e8a
Make ILRange field private - introduce public API for IL range manipulation.
7 years ago
Daniel Grunwald
47ca51a769
Clarify the meaning of ILVariable.Index
7 years ago
Daniel Grunwald
b396d203bd
Merge IDecompilerTypeSystem with ICompilation.
7 years ago
Daniel Grunwald
21d3881e37
Introduce named arguments only in the statement transform.
Don't use extension method syntax when 'this' parameter of
extension method is named.
7 years ago
Daniel Grunwald
02db362838
Ensure that StLoc.Value.ResultType == StLoc.Variable.StackType
This introduce a new explicit conversion (StartGCTracking) when converting unmanaged pointers to managed references.
8 years ago
Siegfried Pammer
9e2f98cb8d
Improve RemoveDeadVariableInit and CopyPropagation
8 years ago
Siegfried Pammer
425d1ae697
Fix ArgumentOutOfRangeException in CopyPropagation while decompiling System.Security.Cryptography.CryptoStream.ReadAsyncInternal from mscorlib.v4
8 years ago
Siegfried Pammer
4ca4d97011
Improve SequencePointBuilder
8 years ago
Siegfried Pammer
2857a8dcf9
ad #885 and #886 : add more tests
8 years ago
mohe2015
ccdeded6ba
Fix failed decompilation of catch-when if the method is async.
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
0970b95d5f
Rename ILVariable.Scope to Function and introduce BlockContainer CaptureScope
9 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
Daniel Grunwald
07e2493645
Keep copy propagation enabled
9 years ago
Siegfried Pammer
8766783eb6
Remove ld(s)fld/st(s)fld
9 years ago
Daniel Grunwald
449bbe2043
Move transforms to transforms namespace
9 years ago
Siegfried Pammer
2715c47f19
Extend copy propagation on all simple instructions.
9 years ago
Daniel Grunwald
f5e66ff623
Extract reusable DataFlowVisitor from ReachingDefinitions; and add ILVariable.HasInitialValue.
9 years ago
Siegfried Pammer
ab9083f897
remove doubled check from CopyPropagation
9 years ago
Daniel Grunwald
c171dbd520
Add class VariableScope.
9 years ago
Siegfried Pammer
f781c0335a
replace IsSingleUse with IsSingleDefinition
9 years ago
Siegfried Pammer
13bf6fbe9f
add simple CopyPropagation transform
9 years ago