Class OpenCLStructuredControlflowCodeGenerator
java.lang.Object
de.mirkosertic.bytecoder.core.backend.opencl.OpenCLStructuredControlflowCodeGenerator
- All Implemented Interfaces:
StructuredControlflowCodeGenerator
public class OpenCLStructuredControlflowCodeGenerator
extends Object
implements StructuredControlflowCodeGenerator
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final ResolvedClass
private final CompileUnit
private final OpenCLInputOutputs
(package private) int
private final PrintWriter
private final Map
<AbstractVar, String> -
Constructor Summary
ConstructorsConstructorDescriptionOpenCLStructuredControlflowCodeGenerator
(CompileUnit compileUnit, ResolvedClass cl, PrintWriter pw, OpenCLInputOutputs inputOutputs) -
Method Summary
Modifier and TypeMethodDescriptionvoid
finishBlock
(Sequencer.Block block, boolean stackEmpty) void
void
void
void
void
void
void
void
void
registerVariables
(List<AbstractVar> variables) void
startBlock
(Sequencer.Block block) void
void
startCatchHandler
(org.objectweb.asm.Type type) void
startIfElseBlock
(If node) void
startIfWithTrueBlock
(If node) void
void
startTableSwitch
(TableSwitch node) void
void
startTryCatch
(String label) void
write
(ArrayStore node) void
write
(ClassInitialization node) void
void
write
(FrameDebugInfo node) void
void
write
(LineNumberDebugInfo node) void
write
(MethodInvocation invocation) void
write
(MonitorEnter node) void
write
(MonitorExit node) void
void
write
(ReturnValue node) void
write
(SetClassField node) void
write
(SetInstanceField node) void
void
writeBreakTo
(String label) void
writeContinueTo
(String label) private void
private void
writeDirect
(MethodInvocation node) private void
writeExpression
(AbstractVar node) private void
writeExpression
(Add node) private void
writeExpression
(And node) private void
writeExpression
(ArrayLength node) private void
writeExpression
(ArrayLoad node) private void
writeExpression
(Cast node) private void
writeExpression
(CMP node) private void
writeExpression
(Div node) private void
private void
private void
writeExpression
(Mul node) private void
writeExpression
(Neg node) private void
writeExpression
(New node) private void
writeExpression
(Node node) private void
writeExpression
(NullReference node) private void
writeExpression
(NullTest node) private void
writeExpression
(NumericalTest node) private void
writeExpression
(Or node) private void
private void
private void
writeExpression
(PrimitiveInt node) private void
writeExpression
(PrimitiveLong node) private void
private void
private void
private void
writeExpression
(ReferenceTest node) private void
writeExpression
(Rem node) private void
writeExpression
(SHL node) private void
writeExpression
(SHR node) private void
writeExpression
(Sub node) private void
writeExpression
(This node) private void
private void
writeExpression
(USHR node) private void
writeExpression
(XOr node) private void
private void
private void
private void
private void
void
private void
writeStatic
(MethodInvocation node) void
writeSwitchCase
(int index) void
private void
writeVirtual
(MethodInvocation node)
-
Field Details
-
level
int level -
variableToName
-
pw
-
cl
-
compileUnit
-
inputOutputs
-
-
Constructor Details
-
OpenCLStructuredControlflowCodeGenerator
public OpenCLStructuredControlflowCodeGenerator(CompileUnit compileUnit, ResolvedClass cl, PrintWriter pw, OpenCLInputOutputs inputOutputs)
-
-
Method Details
-
registerVariables
- Specified by:
registerVariables
in interfaceStructuredControlflowCodeGenerator
-
writeIndent
private void writeIndent() -
write
- Specified by:
write
in interfaceStructuredControlflowCodeGenerator
-
write
- Specified by:
write
in interfaceStructuredControlflowCodeGenerator
-
write
- Specified by:
write
in interfaceStructuredControlflowCodeGenerator
-
write
- Specified by:
write
in interfaceStructuredControlflowCodeGenerator
-
write
- Specified by:
write
in interfaceStructuredControlflowCodeGenerator
-
write
- Specified by:
write
in interfaceStructuredControlflowCodeGenerator
-
write
- Specified by:
write
in interfaceStructuredControlflowCodeGenerator
-
writeDirect
-
writeExpression
-
writeExpressionDirectInvocation
-
writeExpression
-
write
- Specified by:
write
in interfaceStructuredControlflowCodeGenerator
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
write
- Specified by:
write
in interfaceStructuredControlflowCodeGenerator
-
write
- Specified by:
write
in interfaceStructuredControlflowCodeGenerator
-
write
- Specified by:
write
in interfaceStructuredControlflowCodeGenerator
-
writeDelegateInputOutputs
private void writeDelegateInputOutputs() -
writeVirtual
-
writeExpressionVirtualInvocation
-
writeInterface
-
writeStatic
-
writeExpressionStaticInvocation
-
write
- Specified by:
write
in interfaceStructuredControlflowCodeGenerator
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
writeExpression
-
startIfWithTrueBlock
- Specified by:
startIfWithTrueBlock
in interfaceStructuredControlflowCodeGenerator
-
startIfElseBlock
- Specified by:
startIfElseBlock
in interfaceStructuredControlflowCodeGenerator
-
finishIfBlock
public void finishIfBlock()- Specified by:
finishIfBlock
in interfaceStructuredControlflowCodeGenerator
-
startBlock
- Specified by:
startBlock
in interfaceStructuredControlflowCodeGenerator
-
finishBlock
- Specified by:
finishBlock
in interfaceStructuredControlflowCodeGenerator
-
startTryCatch
- Specified by:
startTryCatch
in interfaceStructuredControlflowCodeGenerator
-
startCatchBlock
public void startCatchBlock()- Specified by:
startCatchBlock
in interfaceStructuredControlflowCodeGenerator
-
startCatchHandler
public void startCatchHandler(org.objectweb.asm.Type type) - Specified by:
startCatchHandler
in interfaceStructuredControlflowCodeGenerator
-
finishCatchHandler
public void finishCatchHandler()- Specified by:
finishCatchHandler
in interfaceStructuredControlflowCodeGenerator
-
writeRethrowException
public void writeRethrowException()- Specified by:
writeRethrowException
in interfaceStructuredControlflowCodeGenerator
-
finishTryCatch
public void finishTryCatch()- Specified by:
finishTryCatch
in interfaceStructuredControlflowCodeGenerator
-
write
- Specified by:
write
in interfaceStructuredControlflowCodeGenerator
-
write
- Specified by:
write
in interfaceStructuredControlflowCodeGenerator
-
writeBreakTo
- Specified by:
writeBreakTo
in interfaceStructuredControlflowCodeGenerator
-
writeContinueTo
- Specified by:
writeContinueTo
in interfaceStructuredControlflowCodeGenerator
-
startTableSwitch
- Specified by:
startTableSwitch
in interfaceStructuredControlflowCodeGenerator
-
startTableSwitchDefaultBlock
public void startTableSwitchDefaultBlock()- Specified by:
startTableSwitchDefaultBlock
in interfaceStructuredControlflowCodeGenerator
-
finishTableSwitchDefaultBlock
public void finishTableSwitchDefaultBlock()- Specified by:
finishTableSwitchDefaultBlock
in interfaceStructuredControlflowCodeGenerator
-
startLookupSwitch
- Specified by:
startLookupSwitch
in interfaceStructuredControlflowCodeGenerator
-
writeSwitchCase
public void writeSwitchCase(int index) - Specified by:
writeSwitchCase
in interfaceStructuredControlflowCodeGenerator
-
writeSwitchDefaultCase
public void writeSwitchDefaultCase()- Specified by:
writeSwitchDefaultCase
in interfaceStructuredControlflowCodeGenerator
-
finishSwitchDefault
public void finishSwitchDefault()- Specified by:
finishSwitchDefault
in interfaceStructuredControlflowCodeGenerator
-
finishSwitchCase
public void finishSwitchCase()- Specified by:
finishSwitchCase
in interfaceStructuredControlflowCodeGenerator
-
finishLookupSwitch
public void finishLookupSwitch()- Specified by:
finishLookupSwitch
in interfaceStructuredControlflowCodeGenerator
-
finishTableSwitch
public void finishTableSwitch()- Specified by:
finishTableSwitch
in interfaceStructuredControlflowCodeGenerator
-