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)
757
private static void ScanExceptionInformation(Dictionary<int, Stack<StackSlot>> knownStacks,
MethodIL
methodIL)
778
protected abstract MethodReturnValue GetReturnValue(
MethodIL
method);
800
MethodIL
methodIL,
815
MethodIL
methodIL,
841
void ScanLdtoken(
MethodIL
methodIL, Instruction operation, Stack<StackSlot> currentStack)
897
MethodIL
methodIL,
915
MethodIL
methodIL,
937
protected void StoreInReference(MultiValue target, MultiValue source,
MethodIL
methodIL, Instruction operation, LocalVariableStore locals, int curBasicBlock, ref InterproceduralState ipState, int? parameterIndex)
981
MethodIL
methodIL,
1015
protected virtual void HandleStoreField(
MethodIL
methodIL, FieldValue field, Instruction operation, MultiValue valueToStore, int? parameterIndex)
1019
protected virtual void HandleStoreParameter(
MethodIL
methodIL, MethodParameterValue parameter, Instruction operation, MultiValue valueToStore, int? parameterIndex)
1023
protected virtual void HandleReturnValue(
MethodIL
method, MethodReturnValue thisParameter, Instruction operation, MultiValue valueToReturn)
1027
protected abstract void HandleTypeTokenAccess(
MethodIL
methodIL, int offset, TypeReference accessedType);
1029
protected abstract void HandleMethodTokenAccess(
MethodIL
methodIL, int offset, MethodReference accessedMethod);
1031
protected abstract void HandleFieldTokenAccess(
MethodIL
methodIL, int offset, FieldReference accessedField);
1034
MethodIL
methodIL,
1083
MethodIL
containingMethodIL,
1149
MethodIL
callingMethodIL,
1184
MethodIL
callingMethodIL,
1229
MethodIL
callingMethodIL,
1251
MethodIL
methodIL,
1282
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)
2806
var
body = Context.GetMethodIL(method);
3779
var
processedMethodBody = Context.GetMethodIL(body);
3803
bool CheckRequiresReflectionMethodBodyScanner(
MethodIL
methodIL)
3855
bool MarkAndCheckRequiresReflectionMethodBodyScanner(
MethodIL
methodIL, MessageOrigin origin)
3898
bool IsUnreachableBody(
MethodIL
methodIL)
3908
void MarkInterfacesNeededByBodyStack(
MethodIL
methodIL)
4093
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);