Class WasmGCGenerationVisitor
java.lang.Object
org.teavm.backend.wasm.generate.common.methods.BaseWasmGenerationVisitor
org.teavm.backend.wasm.generate.gc.methods.WasmGCGenerationVisitor
- All Implemented Interfaces:
ExprVisitor,StatementVisitor
-
Nested Class Summary
Nested classes/interfaces inherited from class org.teavm.backend.wasm.generate.common.methods.BaseWasmGenerationVisitor
BaseWasmGenerationVisitor.CallSiteIdentifier -
Field Summary
Fields inherited from class org.teavm.backend.wasm.generate.common.methods.BaseWasmGenerationVisitor
blockLevel, currentMethod, exprCache, function, result, resultConsumer, tempVars, typeInference -
Constructor Summary
ConstructorsConstructorDescriptionWasmGCGenerationVisitor(WasmGCGenerationContext context, MethodReference currentMethod, WasmFunction function, int firstVariable, boolean async, PreciseTypeInference types, Set<MethodReference> asyncSplitMethods) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidprotected voidprotected voidacceptWithType(Expr expr, ValueType type) protected WasmExpressionallocateMultiArray(List<WasmExpression> target, ValueType arrayType, Supplier<List<WasmExpression>> dimensions, TextLocation location) protected voidallocateObject(String className, TextLocation location, WasmLocal local, List<WasmExpression> target) protected voidcheckExceptionType(TryCatchStatement tryCatch, WasmLocal exceptionVar, List<WasmExpression> target, WasmBlock targetBlock) protected WasmExpressionclassLiteral(ValueType type) protected WasmTypecondBlockType(WasmType thenType, WasmType elseType, ConditionalExpr conditional) protected WasmExpressionforceType(WasmExpression expression, ValueType type) protected WasmExpressiongenerateCallSiteId(TextLocation location) protected WasmExpressiongenerateClassInitializer(String className, TextLocation location) protected WasmExpressiongenerateInstanceOf(WasmExpression expression, ValueType type) protected voidgenerateThrow(WasmExpression expression, TextLocation location, List<WasmExpression> target) protected voidgenerateThrowAIOOBE(TextLocation location, List<WasmExpression> target) protected voidgenerateThrowCCE(TextLocation location, List<WasmExpression> target) protected voidgenerateThrowNPE(TextLocation location, List<WasmExpression> target) protected WasmExpressiongenerateVirtualCall(WasmLocal instance, MethodReference method, List<WasmExpression> arguments) protected WasmExpressiongenIsNull(WasmExpression value) protected WasmExpressioninvocation(InvocationExpr expr, List<WasmExpression> resultConsumer, boolean willDrop) protected booleanisAsyncSplit(MethodReference methodRef) protected booleanprotected booleanisManagedCall(MethodReference method) protected WasmExpressionmapFirstArgumentForCall(WasmExpression argument, WasmFunction function, MethodReference method) protected WasmTypeprotected booleanprotected booleanneedsClassInitializer(String className) protected WasmExpressionnullCheck(Expr value, TextLocation location) protected WasmExpressionnullLiteral(Expr expr) protected WasmExpressionnullLiteral(WasmType type) protected voidprocessCallArguments(InvocationExpr expr, List<WasmExpression> arguments) voidsetCompactMode(boolean compactMode) protected WasmExpressionstoreArrayItem(WasmExpression array, WasmExpression index, Expr value, ArrayType type) protected voidstoreField(Expr qualified, FieldReference field, Expr value, TextLocation location) protected WasmExpressionprotected WasmExpressionunwrapArray(WasmExpression array) voidvisit(ArrayFromDataExpr expr) voidvisit(BinaryExpr expr) voidvoidvisit(InstanceOfExpr expr) voidvisit(InvocationExpr expr) voidvisit(NewArrayExpr expr) voidvisit(QualificationExpr expr) voidvisit(SubscriptExpr expr) voidvisit(VariableExpr expr) Methods inherited from class org.teavm.backend.wasm.generate.common.methods.BaseWasmGenerationVisitor
accept, generate, generateInvocation, generateTry, isAsync, localVar, mapTypeToBlock, monitorEnter, monitorExit, setReturnBlock, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit
-
Constructor Details
-
WasmGCGenerationVisitor
public WasmGCGenerationVisitor(WasmGCGenerationContext context, MethodReference currentMethod, WasmFunction function, int firstVariable, boolean async, PreciseTypeInference types, Set<MethodReference> asyncSplitMethods)
-
-
Method Details
-
setCompactMode
public void setCompactMode(boolean compactMode) -
accept
- Overrides:
acceptin classBaseWasmGenerationVisitor
-
accept
- Overrides:
acceptin classBaseWasmGenerationVisitor
-
acceptWithType
- Overrides:
acceptWithTypein classBaseWasmGenerationVisitor
-
isManaged
protected boolean isManaged()- Specified by:
isManagedin classBaseWasmGenerationVisitor
-
needsCallSiteId
protected boolean needsCallSiteId()- Overrides:
needsCallSiteIdin classBaseWasmGenerationVisitor
-
isManagedCall
- Specified by:
isManagedCallin classBaseWasmGenerationVisitor
-
visit
- Specified by:
visitin interfaceExprVisitor- Overrides:
visitin classBaseWasmGenerationVisitor
-
generateThrowNPE
- Specified by:
generateThrowNPEin classBaseWasmGenerationVisitor
-
generateThrowAIOOBE
- Specified by:
generateThrowAIOOBEin classBaseWasmGenerationVisitor
-
generateThrowCCE
- Specified by:
generateThrowCCEin classBaseWasmGenerationVisitor
-
generateThrow
protected void generateThrow(WasmExpression expression, TextLocation location, List<WasmExpression> target) - Specified by:
generateThrowin classBaseWasmGenerationVisitor
-
unwrapArray
- Overrides:
unwrapArrayin classBaseWasmGenerationVisitor
-
generateArrayLength
- Specified by:
generateArrayLengthin classBaseWasmGenerationVisitor
-
storeArrayItem
protected WasmExpression storeArrayItem(WasmExpression array, WasmExpression index, Expr value, ArrayType type) - Specified by:
storeArrayItemin classBaseWasmGenerationVisitor
-
storeField
- Specified by:
storeFieldin classBaseWasmGenerationVisitor
-
stringLiteral
- Specified by:
stringLiteralin classBaseWasmGenerationVisitor
-
classLiteral
- Specified by:
classLiteralin classBaseWasmGenerationVisitor
-
nullLiteral
- Specified by:
nullLiteralin classBaseWasmGenerationVisitor
-
nullLiteral
- Specified by:
nullLiteralin classBaseWasmGenerationVisitor
-
genIsNull
- Specified by:
genIsNullin classBaseWasmGenerationVisitor
-
nullCheck
- Overrides:
nullCheckin classBaseWasmGenerationVisitor
-
generateCallSiteId
- Specified by:
generateCallSiteIdin classBaseWasmGenerationVisitor
-
visit
- Specified by:
visitin interfaceExprVisitor- Overrides:
visitin classBaseWasmGenerationVisitor
-
generateVirtualCall
protected WasmExpression generateVirtualCall(WasmLocal instance, MethodReference method, List<WasmExpression> arguments) - Specified by:
generateVirtualCallin classBaseWasmGenerationVisitor
-
allocateObject
protected void allocateObject(String className, TextLocation location, WasmLocal local, List<WasmExpression> target) - Specified by:
allocateObjectin classBaseWasmGenerationVisitor
-
visit
-
visit
-
allocateMultiArray
protected WasmExpression allocateMultiArray(List<WasmExpression> target, ValueType arrayType, Supplier<List<WasmExpression>> dimensions, TextLocation location) - Specified by:
allocateMultiArrayin classBaseWasmGenerationVisitor
-
generateInstanceOf
- Specified by:
generateInstanceOfin classBaseWasmGenerationVisitor
-
visit
- Specified by:
visitin interfaceExprVisitor- Overrides:
visitin classBaseWasmGenerationVisitor
-
visit
- Specified by:
visitin interfaceExprVisitor- Overrides:
visitin classBaseWasmGenerationVisitor
-
needsClassInitializer
- Specified by:
needsClassInitializerin classBaseWasmGenerationVisitor
-
generateClassInitializer
- Specified by:
generateClassInitializerin classBaseWasmGenerationVisitor
-
checkExceptionType
protected void checkExceptionType(TryCatchStatement tryCatch, WasmLocal exceptionVar, List<WasmExpression> target, WasmBlock targetBlock) - Overrides:
checkExceptionTypein classBaseWasmGenerationVisitor
-
mapType
- Specified by:
mapTypein classBaseWasmGenerationVisitor
-
visit
-
visit
-
invocation
protected WasmExpression invocation(InvocationExpr expr, List<WasmExpression> resultConsumer, boolean willDrop) - Overrides:
invocationin classBaseWasmGenerationVisitor
-
processCallArguments
- Overrides:
processCallArgumentsin classBaseWasmGenerationVisitor
-
mapFirstArgumentForCall
protected WasmExpression mapFirstArgumentForCall(WasmExpression argument, WasmFunction function, MethodReference method) - Overrides:
mapFirstArgumentForCallin classBaseWasmGenerationVisitor
-
forceType
- Overrides:
forceTypein classBaseWasmGenerationVisitor
-
visit
-
condBlockType
- Overrides:
condBlockTypein classBaseWasmGenerationVisitor
-
isAsyncSplit
- Overrides:
isAsyncSplitin classBaseWasmGenerationVisitor
-