메소드 | 설명 | |
---|---|---|
AddReturnLabel ( LambdaExpression lambda ) : void | ||
AddToBuckets ( List |
||
AddressOf ( BinaryExpression node, Type type ) : void | ||
AddressOf ( IndexExpression node, Type type ) : void | ||
AddressOf ( MemberExpression node, Type type ) : void | ||
AddressOf ( MethodCallExpression node, Type type ) : void | ||
AddressOf ( ParameterExpression node, Type type ) : void | ||
AddressOf ( UnaryExpression node, Type type ) : void | ||
AddressOfWriteBack ( IndexExpression node ) : WriteBack | ||
AddressOfWriteBack ( MemberExpression node ) : WriteBack | ||
AddressOfWriteBackCore ( IndexExpression node ) : WriteBack | ||
AddressOfWriteBackCore ( MemberExpression node ) : WriteBack | ||
CanOptimizeSwitchType ( Type valueType ) : bool | ||
CheckRethrow ( ) : void | ||
CheckTry ( ) : void | ||
ConvertSwitchValue ( object value ) : decimal | ||
DefineBlockLabels ( Expression node ) : void | ||
DefineLabel ( LabelTarget node ) : |
||
DefineSwitchCaseLabel ( SwitchCase @case, Label &label, bool &isGoto ) : void |
Creates the label for this case. Optimization: if the body is just a goto, and we can branch to it, put the goto target directly in the jump table.
|
|
Emit ( BlockExpression node, CompilationFlags flags ) : void | ||
EmitAddress ( Expression node, Type type ) : void | ||
EmitAddress ( Expression node, Type type, CompilationFlags flags ) : void | ||
EmitAddressWriteBack ( Expression node, Type type ) : WriteBack | ||
EmitAndAlsoBinaryExpression ( Expression expr, CompilationFlags flags ) : void | ||
EmitArguments ( MethodBase method, IArgumentProvider args ) : List |
Emits arguments to a call, and returns an array of write-backs that should happen after the call.
|
|
EmitArguments ( MethodBase method, IArgumentProvider args, int skipParameters ) : List |
Emits arguments to a call, and returns an array of write-backs that should happen after the call. For emitting dynamic expressions, we need to skip the first parameter of the method (the call site).
|
|
EmitAssign ( AssignBinaryExpression node, CompilationFlags emitAs ) : void | ||
EmitAssignBinaryExpression ( Expression expr ) : void | ||
EmitBinaryExpression ( Expression expr ) : void | ||
EmitBinaryExpression ( Expression expr, CompilationFlags flags ) : void | ||
EmitBinaryMethod ( BinaryExpression b, CompilationFlags flags ) : void | ||
EmitBinaryOperator ( ExpressionType op, Type leftType, Type rightType, Type resultType, bool liftedToNull ) : void | ||
EmitBinding ( MemberBinding binding, Type objectType ) : void | ||
EmitBlockExpression ( Expression expr, CompilationFlags flags ) : void | ||
EmitBranchAnd ( bool branch, BinaryExpression node, Label label ) : void | ||
EmitBranchBlock ( bool branch, BlockExpression node, Label label ) : void | ||
EmitBranchComparison ( bool branch, BinaryExpression node, Label label ) : void | ||
EmitBranchLogical ( bool branch, BinaryExpression node, Label label ) : void | ||
EmitBranchNot ( bool branch, UnaryExpression node, Label label ) : void | ||
EmitBranchOp ( bool branch, Label label ) : void | ||
EmitBranchOr ( bool branch, BinaryExpression node, Label label ) : void | ||
EmitCall ( Type objectType, MethodInfo method ) : void | ||
EmitCatchStart ( CatchBlock cb ) : void |
Emits the start of a catch block. The exception value that is provided by the CLR is stored in the variable specified by the catch block or popped if no variable is provided.
|
|
EmitCoalesceBinaryExpression ( Expression expr ) : void | ||
EmitConditionalExpression ( Expression expr, CompilationFlags flags ) : void | ||
EmitConstant ( object value, Type type ) : void | ||
EmitConstantExpression ( Expression expr ) : void | ||
EmitConstantOne ( Type type ) : void | ||
EmitConvert ( UnaryExpression node, CompilationFlags flags ) : void | ||
EmitConvertArithmeticResult ( ExpressionType op, Type resultType ) : void | ||
EmitConvertUnaryExpression ( Expression expr, CompilationFlags flags ) : void | ||
EmitDebugInfoExpression ( Expression expr ) : void | ||
EmitDefaultExpression ( Expression expr ) : void | ||
EmitDynamicExpression ( Expression expr ) : void | ||
EmitExpression ( Expression node ) : void |
Generates code for this expression in a value position. This method will leave the value of the expression on the top of the stack typed as Type.
|
|
EmitExpression ( Expression node, CompilationFlags flags ) : void | ||
EmitExpressionAddress ( Expression node, Type type ) : void | ||
EmitExpressionAndBranch ( bool branchValue, Expression node, Label label ) : void | ||
EmitExpressionAsType ( Expression node, Type type, CompilationFlags flags ) : void | ||
EmitExpressionAsVoid ( Expression node ) : void |
Emits an expression and discards the result. For some nodes this emits more optimal code then EmitExpression/Pop
|
|
EmitExpressionAsVoid ( Expression node, CompilationFlags flags ) : void | ||
EmitExpressionEnd ( CompilationFlags flags ) : void | ||
EmitExpressionStart ( Expression node ) : CompilationFlags | ||
EmitExtensionExpression ( Expression expr ) : void | ||
EmitGetArrayElement ( Type arrayType ) : void | ||
EmitGetIndexCall ( IndexExpression node, Type objectType ) : void | ||
EmitGotoExpression ( Expression expr, CompilationFlags flags ) : void | ||
EmitIndexAssignment ( AssignBinaryExpression node, CompilationFlags flags ) : void | ||
EmitIndexExpression ( Expression expr ) : void | ||
EmitInlinedInvoke ( InvocationExpression invoke, CompilationFlags flags ) : void | ||
EmitInstance ( Expression instance, Type &type ) : void | ||
EmitInvocationExpression ( Expression expr, CompilationFlags flags ) : void | ||
EmitLabelExpression ( Expression expr, CompilationFlags flags ) : void | ||
EmitLambdaExpression ( Expression expr ) : void | ||
EmitLambdaReferenceCoalesce ( BinaryExpression b ) : void | ||
EmitLift ( ExpressionType nodeType, Type resultType, MethodCallExpression mc, ParameterExpression paramList, Expression argList ) : void | ||
EmitLiftedAndAlso ( BinaryExpression b ) : void | ||
EmitLiftedBinaryArithmetic ( ExpressionType op, Type leftType, Type rightType, Type resultType ) : void | ||
EmitLiftedBinaryOp ( ExpressionType op, Type leftType, Type rightType, Type resultType, bool liftedToNull ) : void | ||
EmitLiftedBooleanAnd ( ) : void | ||
EmitLiftedBooleanOr ( ) : void | ||
EmitLiftedOrElse ( BinaryExpression b ) : void | ||
EmitLiftedRelational ( ExpressionType op, Type leftType, Type rightType, Type resultType, bool liftedToNull ) : void | ||
EmitListInit ( ListInitExpression init ) : void | ||
EmitListInit ( ReadOnlyCollection |
||
EmitListInitExpression ( Expression expr ) : void | ||
EmitLoopExpression ( Expression expr ) : void | ||
EmitMemberAddress ( MemberInfo member, Type objectType ) : void | ||
EmitMemberAssignment ( AssignBinaryExpression node, CompilationFlags flags ) : void | ||
EmitMemberAssignment ( MemberAssignment binding, Type objectType ) : void | ||
EmitMemberExpression ( Expression expr ) : void | ||
EmitMemberGet ( MemberInfo member, Type objectType ) : void | ||
EmitMemberInit ( MemberInitExpression init ) : void | ||
EmitMemberInit ( ReadOnlyCollection |
||
EmitMemberInitExpression ( Expression expr ) : void | ||
EmitMemberListBinding ( MemberListBinding binding ) : void | ||
EmitMemberMemberBinding ( MemberMemberBinding binding ) : void | ||
EmitMethodAndAlso ( BinaryExpression b, CompilationFlags flags ) : void | ||
EmitMethodCall ( Expression obj, MethodInfo method, IArgumentProvider methodCallExpr ) : void | ||
EmitMethodCall ( Expression obj, MethodInfo method, IArgumentProvider methodCallExpr, CompilationFlags flags ) : void | ||
EmitMethodCall ( MethodInfo mi, IArgumentProvider args, Type objectType ) : void | ||
EmitMethodCall ( MethodInfo mi, IArgumentProvider args, Type objectType, CompilationFlags flags ) : void | ||
EmitMethodCallExpression ( Expression expr ) : void | ||
EmitMethodCallExpression ( Expression expr, CompilationFlags flags ) : void | ||
EmitMethodOrElse ( BinaryExpression b, CompilationFlags flags ) : void | ||
EmitNewArrayExpression ( Expression expr ) : void | ||
EmitNewExpression ( Expression expr ) : void | ||
EmitNullEquality ( ExpressionType op, Expression e, bool isLiftedToNull ) : void | ||
EmitNullableCoalesce ( BinaryExpression b ) : void | ||
EmitOrElseBinaryExpression ( Expression expr, CompilationFlags flags ) : void | ||
EmitParameterExpression ( Expression expr ) : void | ||
EmitQuote ( UnaryExpression quote ) : void | ||
EmitQuoteUnaryExpression ( Expression expr ) : void | ||
EmitReferenceCoalesceWithoutConversion ( BinaryExpression b ) : void | ||
EmitRuntimeVariablesExpression ( Expression expr ) : void | ||
EmitSaveExceptionOrPop ( CatchBlock cb ) : void | ||
EmitSetArrayElement ( Type arrayType ) : void | ||
EmitSetIndexCall ( IndexExpression node, Type objectType ) : void | ||
EmitShiftMask ( Type leftType ) : void | ||
EmitSwitchBucket ( SwitchInfo info, List |
||
EmitSwitchBuckets ( SwitchInfo info, List |
||
EmitSwitchCases ( SwitchExpression node, Label labels, bool isGoto, Label @default, Label end, CompilationFlags flags ) : void | ||
EmitSwitchExpression ( Expression expr, CompilationFlags flags ) : void | ||
EmitThrow ( UnaryExpression expr, CompilationFlags flags ) : void | ||
EmitThrowUnaryExpression ( Expression expr ) : void | ||
EmitTryExpression ( Expression expr ) : void | ||
EmitTypeBinaryExpression ( Expression expr ) : void | ||
EmitUnary ( UnaryExpression node, CompilationFlags flags ) : void | ||
EmitUnaryExpression ( Expression expr, CompilationFlags flags ) : void | ||
EmitUnaryMethod ( UnaryExpression node, CompilationFlags flags ) : void | ||
EmitUnaryOperator ( ExpressionType op, Type operandType, Type resultType ) : void | ||
EmitUnboxUnaryExpression ( Expression expr ) : void | ||
EmitUnliftedAndAlso ( BinaryExpression b ) : void | ||
EmitUnliftedBinaryOp ( ExpressionType op, Type leftType, Type rightType ) : void | ||
EmitUnliftedEquality ( ExpressionType op, Type type ) : void | ||
EmitUnliftedOrElse ( BinaryExpression b ) : void | ||
EmitUnreachable ( Expression node, CompilationFlags flags ) : void | ||
EmitVariableAssignment ( AssignBinaryExpression node, CompilationFlags flags ) : void | ||
EmitWriteBack ( List |
||
EnsureLabel ( LabelTarget node ) : |
||
EnterScope ( object node ) : void | ||
ExitScope ( object node ) : void | ||
FitsInBucket ( List |
||
GetEqualityOperand ( Expression expression ) : Expression | ||
GetInstanceLocal ( Type type ) : LocalBuilder | ||
GetMemberType ( MemberInfo member ) : Type | ||
GetTestValueType ( SwitchExpression node ) : Type |
Gets the common test value type of the SwitchExpression.
|
|
HasVariables ( object node ) : bool | ||
IsChecked ( ExpressionType op ) : bool | ||
MergeBuckets ( List |
||
MethodHasByRefParameter ( MethodInfo mi ) : bool | ||
NotEmpty ( Expression node ) : bool |
returns true if the expression is not empty, otherwise false.
|
|
PopLabelBlock ( LabelScopeKind kind ) : void | ||
PushLabelBlock ( LabelScopeKind type ) : void | ||
ReferenceLabel ( LabelTarget node ) : |
||
Significant ( Expression node ) : bool |
returns true if the expression is NOT empty and is not debug info, or a block that contains only insignificant expressions.
|
|
TryEmitHashtableSwitch ( SwitchExpression node, CompilationFlags flags ) : bool | ||
TryEmitSwitchInstruction ( SwitchExpression node, CompilationFlags flags ) : bool | ||
TryPushLabelBlock ( Expression node ) : bool | ||
UpdateEmitAsTailCallFlag ( CompilationFlags flags, CompilationFlags newValue ) : CompilationFlags |
Update the flag with a new EmitAsTailCall flag
|
|
UpdateEmitAsTypeFlag ( CompilationFlags flags, CompilationFlags newValue ) : CompilationFlags |
Update the flag with a new EmitAsType flag
|
|
UpdateEmitExpressionStartFlag ( CompilationFlags flags, CompilationFlags newValue ) : CompilationFlags |
Update the flag with a new EmitExpressionStart flag
|
|
UseVirtual ( MethodInfo mi ) : bool | ||
ValidateLift ( IReadOnlyList |