C# Class System.Linq.Expressions.Compiler.StackSpiller

ファイルを表示 Open project: dotnet/corefx Class Usage Examples

Private Methods

Method Description
Free ( int mark ) : void

Frees temporaries created since the last marking using Mark.

This is a performance optimization to lower the overall number of temporaries needed.

MakeBlock ( ) : Expression

Creates a special block that is marked as not allowing jumps in. This should not be used for rewriting BlockExpression itself, or anything else that supports jumping.

MakeBlock ( ArrayBuilder expressions ) : Expression

Creates a special block that is marked as not allowing jumps in. This should not be used for rewriting BlockExpression itself, or anything else that supports jumping.

MakeBlock ( IReadOnlyList expressions ) : Expression

Creates a special block that is marked as not allowing jumps in. This should not be used for rewriting BlockExpression itself, or anything else that supports jumping.

MakeTemp ( Type type ) : ParameterExpression

Creates a temporary variable of the specified type.

Mark ( ) : int

Gets a watermark into the stack of used temporary variables. The returned watermark value can be passed to Free to free all variables below the watermark value, allowing them to be reused.

This is a performance optimization to lower the overall number of temporaries needed.

RewriteExpression ( Expression node, Stack stack ) : System.Result
ToTemp ( Expression expression, Expression &save, bool byRef ) : ParameterExpression

Creates and returns a temporary variable to store the result of evaluating the specified expression.

VerifyTemps ( ) : void