150 references to CompilationFlags
System.Core (150)
Microsoft\Scripting\Compiler\LambdaCompiler.Address.cs (11)
30EmitAddress(node, type, CompilationFlags.EmitExpressionStart); 37private void EmitAddress(Expression node, Type type, CompilationFlags flags) { 39bool emitStart = (flags & CompilationFlags.EmitExpressionStartMask) == CompilationFlags.EmitExpressionStart; 40CompilationFlags startEmitted = emitStart ? EmitExpressionStart(node) : CompilationFlags.EmitNoExpressionStart; 209EmitExpression(node, CompilationFlags.EmitAsNoTail | CompilationFlags.EmitNoExpressionStart); 221CompilationFlags startEmitted = EmitExpressionStart(node); 235EmitAddress(node, type, CompilationFlags.EmitAsNoTail | CompilationFlags.EmitNoExpressionStart);
Microsoft\Scripting\Compiler\LambdaCompiler.Binary.cs (3)
35EmitBinaryExpression(expr, CompilationFlags.EmitAsNoTail); 38private void EmitBinaryExpression(Expression expr, CompilationFlags flags) { 100private void EmitBinaryMethod(BinaryExpression b, CompilationFlags flags) {
Microsoft\Scripting\Compiler\LambdaCompiler.ControlFlow.cs (11)
62private void EmitLabelExpression(Expression expr, CompilationFlags flags) { 91flags = UpdateEmitExpressionStartFlag(flags, CompilationFlags.EmitExpressionStart); 99private void EmitGotoExpression(Expression expr, CompilationFlags flags) { 103var tailCall = flags & CompilationFlags.EmitAsTailCallMask; 104if (tailCall != CompilationFlags.EmitAsNoTail) { 109tailCall = labelInfo.CanReturn ? CompilationFlags.EmitAsTail : CompilationFlags.EmitAsNoTail; 117flags = UpdateEmitExpressionStartFlag(flags, CompilationFlags.EmitExpressionStart); 131private void EmitUnreachable(Expression node, CompilationFlags flags) { 132if (node.Type != typeof(void) && (flags & CompilationFlags.EmitAsVoidType) == 0) {
Microsoft\Scripting\Compiler\LambdaCompiler.Expressions.cs (69)
53private static CompilationFlags UpdateEmitAsTailCallFlag(CompilationFlags flags, CompilationFlags newValue) { 54Debug.Assert(newValue == CompilationFlags.EmitAsTail || newValue == CompilationFlags.EmitAsMiddle || newValue == CompilationFlags.EmitAsNoTail); 55var oldValue = flags & CompilationFlags.EmitAsTailCallMask; 62private static CompilationFlags UpdateEmitExpressionStartFlag(CompilationFlags flags, CompilationFlags newValue) { 63Debug.Assert(newValue == CompilationFlags.EmitExpressionStart || newValue == CompilationFlags.EmitNoExpressionStart); 64var oldValue = flags & CompilationFlags.EmitExpressionStartMask; 71private static CompilationFlags UpdateEmitAsTypeFlag(CompilationFlags flags, CompilationFlags newValue) { 72Debug.Assert(newValue == CompilationFlags.EmitAsDefaultType || newValue == CompilationFlags.EmitAsVoidType); 73var oldValue = flags & CompilationFlags.EmitAsTypeMask; 83EmitExpression(node, CompilationFlags.EmitAsNoTail | CompilationFlags.EmitExpressionStart); 91EmitExpressionAsVoid(node, CompilationFlags.EmitAsNoTail); 94private void EmitExpressionAsVoid(Expression node, CompilationFlags flags) { 97CompilationFlags startEmitted = EmitExpressionStart(node); 101EmitAssign((BinaryExpression)node, CompilationFlags.EmitAsVoidType); 104Emit((BlockExpression)node, UpdateEmitAsTypeFlag(flags, CompilationFlags.EmitAsVoidType)); 107EmitThrow((UnaryExpression)node, CompilationFlags.EmitAsVoidType); 110EmitGotoExpression(node, UpdateEmitAsTypeFlag(flags, CompilationFlags.EmitAsVoidType)); 119EmitExpression(node, UpdateEmitExpressionStartFlag(flags, CompilationFlags.EmitNoExpressionStart)); 121EmitExpression(node, CompilationFlags.EmitAsNoTail | CompilationFlags.EmitNoExpressionStart); 129private void EmitExpressionAsType(Expression node, Type type, CompilationFlags flags) { 142EmitExpression(node, UpdateEmitExpressionStartFlag(flags, CompilationFlags.EmitExpressionStart)); 149private CompilationFlags EmitExpressionStart(Expression node) { 151return CompilationFlags.EmitExpressionStart; 153return CompilationFlags.EmitNoExpressionStart; 156private void EmitExpressionEnd(CompilationFlags flags) { 157if ((flags & CompilationFlags.EmitExpressionStartMask) == CompilationFlags.EmitExpressionStart) { 166private void EmitInvocationExpression(Expression expr, CompilationFlags flags) { 189private void EmitInlinedInvoke(InvocationExpression invoke, CompilationFlags flags) { 206flags = UpdateEmitAsTailCallFlag(flags, CompilationFlags.EmitAsNoTail); 236private void EmitIndexAssignment(BinaryExpression node, CompilationFlags flags) { 239var emitAs = flags & CompilationFlags.EmitAsTypeMask; 258if (emitAs != CompilationFlags.EmitAsVoidType) { 266if (emitAs != CompilationFlags.EmitAsVoidType) { 304private void EmitMethodCallExpression(Expression expr, CompilationFlags flags) { 311EmitMethodCallExpression(expr, CompilationFlags.EmitAsNoTail); 315EmitMethodCall(obj, method, methodCallExpr, CompilationFlags.EmitAsNoTail); 318private void EmitMethodCall(Expression obj, MethodInfo method, IArgumentProvider methodCallExpr, CompilationFlags flags) { 335EmitMethodCall(mi, args, objectType, CompilationFlags.EmitAsNoTail); 339private void EmitMethodCall(MethodInfo mi, IArgumentProvider args, Type objectType, CompilationFlags flags) { 355if ((flags & CompilationFlags.EmitAsTailCallMask) == CompilationFlags.EmitAsTail && !MethodHasByRefParameter(mi)) { 584private void EmitVariableAssignment(BinaryExpression node, CompilationFlags flags) { 586var emitAs = flags & CompilationFlags.EmitAsTypeMask; 589if (emitAs != CompilationFlags.EmitAsVoidType) { 611EmitAssign((BinaryExpression)expr, CompilationFlags.EmitAsDefaultType); 614private void EmitAssign(BinaryExpression node, CompilationFlags emitAs) { 648private void EmitMemberAssignment(BinaryExpression node, CompilationFlags flags) { 662var emitAs = flags & CompilationFlags.EmitAsTypeMask; 663if (emitAs != CompilationFlags.EmitAsVoidType) { 680if (emitAs != CompilationFlags.EmitAsVoidType) {
Microsoft\Scripting\Compiler\LambdaCompiler.Generated.cs (7)
28private void EmitExpression(Expression node, CompilationFlags flags) { 34_guard.RunOnEmptyStack((LambdaCompiler @this, Expression n, CompilationFlags f) => @this.EmitExpression(n, f), this, node, flags); 40bool emitStart = (flags & CompilationFlags.EmitExpressionStartMask) == CompilationFlags.EmitExpressionStart; 42CompilationFlags startEmitted = emitStart ? EmitExpressionStart(node) : CompilationFlags.EmitNoExpressionStart; 44flags = flags & CompilationFlags.EmitAsTailCallMask;
Microsoft\Scripting\Compiler\LambdaCompiler.Lambda.cs (6)
135impl.EmitLambdaBody(_scope, false, CompilationFlags.EmitAsNoTail); 151CompilationFlags tailCallFlag = _lambda.TailCall ? CompilationFlags.EmitAsTail : CompilationFlags.EmitAsNoTail; 164private void EmitLambdaBody(CompilerScope parent, bool inlined, CompilationFlags flags) { 179flags = UpdateEmitExpressionStartFlag(flags, CompilationFlags.EmitExpressionStart);
Microsoft\Scripting\Compiler\LambdaCompiler.Logical.cs (17)
36private void EmitConditionalExpression(Expression expr, CompilationFlags flags) { 45if ((flags & CompilationFlags.EmitAsTailCallMask) == CompilationFlags.EmitAsTail) { 279private void EmitMethodAndAlso(BinaryExpression b, CompilationFlags flags) { 300if ((flags & CompilationFlags.EmitAsTailCallMask) == CompilationFlags.EmitAsTail) { 320private void EmitAndAlsoBinaryExpression(Expression expr, CompilationFlags flags) { 406private void EmitMethodOrElse(BinaryExpression b, CompilationFlags flags) { 427if ((flags & CompilationFlags.EmitAsTailCallMask) == CompilationFlags.EmitAsTail) { 436private void EmitOrElseBinaryExpression(Expression expr, CompilationFlags flags) { 479CompilationFlags startEmitted = EmitExpressionStart(node); 499EmitExpression(node, CompilationFlags.EmitAsNoTail | CompilationFlags.EmitNoExpressionStart); 512EmitExpression(node, CompilationFlags.EmitAsNoTail | CompilationFlags.EmitNoExpressionStart); 527EmitBinaryMethod(node, CompilationFlags.EmitAsNoTail);
Microsoft\Scripting\Compiler\LambdaCompiler.Statements.cs (19)
34private void EmitBlockExpression(Expression expr, CompilationFlags flags) { 36Emit((BlockExpression)expr, UpdateEmitAsTypeFlag(flags, CompilationFlags.EmitAsDefaultType)); 39private void Emit(BlockExpression node, CompilationFlags flags) { 42CompilationFlags emitAs = flags & CompilationFlags.EmitAsTypeMask; 45CompilationFlags tailCall = flags & CompilationFlags.EmitAsTailCallMask; 59CompilationFlags tailCallFlag; 60if (tailCall != CompilationFlags.EmitAsNoTail) { 65tailCallFlag = CompilationFlags.EmitAsTail; 69tailCallFlag = CompilationFlags.EmitAsMiddle; 72tailCallFlag = CompilationFlags.EmitAsNoTail; 83if (emitAs == CompilationFlags.EmitAsVoidType || node.Type == typeof(void)) { 159private void EmitSwitchExpression(Expression expr, CompilationFlags flags) { 319private bool TryEmitSwitchInstruction(SwitchExpression node, CompilationFlags flags) { 430private void EmitSwitchCases(SwitchExpression node, Label[] labels, bool[] isGoto, Label @default, Label end, CompilationFlags flags) { 447if ((flags & CompilationFlags.EmitAsTailCallMask) == CompilationFlags.EmitAsTail) { 556private bool TryEmitHashtableSwitch(SwitchExpression node, CompilationFlags flags) {
Microsoft\Scripting\Compiler\LambdaCompiler.Unary.cs (7)
58EmitThrow((UnaryExpression)expr, CompilationFlags.EmitAsDefaultType); 61private void EmitThrow(UnaryExpression expr, CompilationFlags flags) { 74private void EmitUnaryExpression(Expression expr, CompilationFlags flags) { 78private void EmitUnary(UnaryExpression node, CompilationFlags flags) { 279private void EmitConvertUnaryExpression(Expression expr, CompilationFlags flags) { 283private void EmitConvert(UnaryExpression node, CompilationFlags flags) { 335private void EmitUnaryMethod(UnaryExpression node, CompilationFlags flags) {