1 instantiation of MethodIL
illink (1)
Linker\MethodIL.cs (1)
29
public static MethodIL Create(MethodBody body) => new
MethodIL
(body);
66 references to MethodIL
illink (66)
Linker.Dataflow\InterproceduralState.cs (7)
22
public ValueSet<
MethodIL
> MethodBodies;
26
public InterproceduralState(ValueSet<
MethodIL
> methodBodies, HoistedLocalState hoistedLocals, InterproceduralStateLattice lattice)
53
public void TrackMethod(
MethodIL
methodIL)
57
var methodsList = new List<
MethodIL
>(MethodBodies.GetKnownValues());
73
MethodBodies = new ValueSet<
MethodIL
>(methodsList);
92
public readonly ValueSetLattice<
MethodIL
> MethodBodyLattice;
97
ValueSetLattice<
MethodIL
> methodBodyLattice,
Linker.Dataflow\MethodBodyScanner.cs (31)
57
protected virtual void WarnAboutInvalidILInMethod(
MethodIL
methodIL, int ilOffset)
61
private void CheckForInvalidStack(Stack<StackSlot> stack, int depthRequired,
MethodIL
methodIL, int ilOffset)
77
private void PushUnknownAndWarnAboutInvalidIL(Stack<StackSlot> stack,
MethodIL
methodIL, int offset)
83
private StackSlot PopUnknown(Stack<StackSlot> stack, int count,
MethodIL
methodIL, int ilOffset)
160
public BasicBlockIterator(
MethodIL
methodIL)
193
static void ValidateNoReferenceToReference(LocalVariableStore locals,
MethodIL
method, int ilOffset)
248
public virtual void InterproceduralScan(
MethodIL
startingMethodIL)
267
foreach (
var
methodIL in oldInterproceduralState.MethodBodies.GetKnownValues())
301
protected virtual void Scan(
MethodIL
methodIL, ref InterproceduralState interproceduralState)
756
private static void ScanExceptionInformation(Dictionary<int, Stack<StackSlot>> knownStacks,
MethodIL
methodIL)
777
protected abstract MethodReturnValue GetReturnValue(
MethodIL
method);
799
MethodIL
methodIL,
814
MethodIL
methodIL,
840
void ScanLdtoken(
MethodIL
methodIL, Instruction operation, Stack<StackSlot> currentStack)
896
MethodIL
methodIL,
914
MethodIL
methodIL,
936
protected void StoreInReference(MultiValue target, MultiValue source,
MethodIL
methodIL, Instruction operation, LocalVariableStore locals, int curBasicBlock, ref InterproceduralState ipState, int? parameterIndex)
980
MethodIL
methodIL,
1014
protected virtual void HandleStoreField(
MethodIL
methodIL, FieldValue field, Instruction operation, MultiValue valueToStore, int? parameterIndex)
1018
protected virtual void HandleStoreParameter(
MethodIL
methodIL, MethodParameterValue parameter, Instruction operation, MultiValue valueToStore, int? parameterIndex)
1022
protected virtual void HandleReturnValue(
MethodIL
method, MethodReturnValue thisParameter, Instruction operation, MultiValue valueToReturn)
1026
protected abstract void HandleTypeTokenAccess(
MethodIL
methodIL, int offset, TypeReference accessedType);
1028
protected abstract void HandleMethodTokenAccess(
MethodIL
methodIL, int offset, MethodReference accessedMethod);
1030
protected abstract void HandleFieldTokenAccess(
MethodIL
methodIL, int offset, FieldReference accessedField);
1033
MethodIL
methodIL,
1082
MethodIL
containingMethodIL,
1148
MethodIL
callingMethodIL,
1183
MethodIL
callingMethodIL,
1228
MethodIL
callingMethodIL,
1250
MethodIL
methodIL,
1281
MethodIL
methodIL,
Linker.Dataflow\ReflectionMethodBodyScanner.cs (11)
79
public override void InterproceduralScan(
MethodIL
methodIL)
87
protected override void Scan(
MethodIL
methodIL, ref InterproceduralState interproceduralState)
93
protected override void WarnAboutInvalidILInMethod(
MethodIL
methodIl, int ilOffset)
116
protected override MethodReturnValue GetReturnValue(
MethodIL
methodIL) => _annotations.GetMethodReturnValue(methodIL.Method, isNewObj: false);
127
protected override void HandleStoreField(
MethodIL
methodIL, FieldValue field, Instruction operation, MultiValue valueToStore, int? parameterIndex)
130
protected override void HandleStoreParameter(
MethodIL
methodIL, MethodParameterValue parameter, Instruction operation, MultiValue valueToStore, int? parameterIndex)
133
protected override void HandleReturnValue(
MethodIL
methodIL, MethodReturnValue returnValue, Instruction operation, MultiValue valueToStore)
136
protected override void HandleTypeTokenAccess(
MethodIL
methodIL, int offset, TypeReference accessedType)
147
protected override void HandleMethodTokenAccess(
MethodIL
methodIL, int offset, MethodReference accessedMethod)
154
protected override void HandleFieldTokenAccess(
MethodIL
methodIL, int offset, FieldReference accessedField)
161
public override MultiValue HandleCall(
MethodIL
callingMethodIL, MethodReference calledMethod, Instruction operation, ValueNodeList methodParams)
Linker.Dataflow\ScannerExtensions.cs (1)
19
public static HashSet<int> ComputeBranchTargets(this
MethodIL
methodIL)
Linker.Steps\MarkStep.cs (7)
2813
var
body = Context.GetMethodIL(method);
3786
var
processedMethodBody = Context.GetMethodIL(body);
3810
bool CheckRequiresReflectionMethodBodyScanner(
MethodIL
methodIL)
3862
bool MarkAndCheckRequiresReflectionMethodBodyScanner(
MethodIL
methodIL, MessageOrigin origin)
3905
bool IsUnreachableBody(
MethodIL
methodIL)
3915
void MarkInterfacesNeededByBodyStack(
MethodIL
methodIL)
4100
protected virtual void MarkReflectionLikeDependencies(
MethodIL
methodIL, bool requiresReflectionMethodBodyScanner, MessageOrigin origin)
Linker\BannedApiExtensions.cs (2)
24
public static
MethodIL
GetMethodIL(this MethodDefinition method, LinkContext context)
27
public static
MethodIL
GetMethodIL(this MethodBody body, LinkContext context)
Linker\LinkContext.cs (3)
1025
public
MethodIL
GetMethodIL(Cecil.Cil.MethodBody methodBody)
1028
public
MethodIL
GetMethodIL(MethodDefinition method)
1035
return
MethodIL
.Create(method.Body);
Linker\MethodBodyScanner.cs (3)
14
public static bool IsWorthConvertingToThrow(
MethodIL
body)
71
public IEnumerable<(InterfaceImplementation, TypeDefinition)>? GetReferencedInterfaces(
MethodIL
methodIL)
103
HashSet<TypeDefinition> AllPossibleStackTypes(
MethodIL
methodIL)
Linker\MethodIL.cs (1)
29
public static
MethodIL
Create(MethodBody body) => new MethodIL(body);