Class Sequencer
- java.lang.Object
-
- de.mirkosertic.bytecoder.core.backend.sequencer.Sequencer
-
public class Sequencer extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Sequencer.Block
-
Field Summary
Fields Modifier and Type Field Description private StructuredControlflowCodeGenerator
codegenerator
private DominatorTree
dominatorTree
private Graph
graph
(package private) int
tryCatchCounter
-
Constructor Summary
Constructors Constructor Description Sequencer(Graph g, DominatorTree dominatorTree, StructuredControlflowCodeGenerator codegenerator)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
generateGOTO(ControlTokenConsumer currentToken, ControlTokenConsumer target, java.util.Stack<Sequencer.Block> activeStack)
private void
visit(If node, java.util.Stack<Sequencer.Block> activeStack)
private void
visit(LookupSwitch node, java.util.Stack<Sequencer.Block> as)
private void
visit(Region node, java.util.Stack<Sequencer.Block> activeStack)
private void
visit(TableSwitch node, java.util.Stack<Sequencer.Block> as)
private void
visit(TryCatch node, java.util.Stack<Sequencer.Block> as)
private void
visitBranchingNodeTemplate(ControlTokenConsumer node, java.util.Stack<Sequencer.Block> activeStack, java.util.function.Consumer<java.util.Stack<Sequencer.Block>> nodeCallback)
private void
visitDominationTreeOf(ControlTokenConsumer startNode, java.util.Stack<Sequencer.Block> activeStack)
-
-
-
Field Detail
-
dominatorTree
private final DominatorTree dominatorTree
-
graph
private final Graph graph
-
codegenerator
private final StructuredControlflowCodeGenerator codegenerator
-
tryCatchCounter
int tryCatchCounter
-
-
Constructor Detail
-
Sequencer
public Sequencer(Graph g, DominatorTree dominatorTree, StructuredControlflowCodeGenerator codegenerator)
-
-
Method Detail
-
visitDominationTreeOf
private void visitDominationTreeOf(ControlTokenConsumer startNode, java.util.Stack<Sequencer.Block> activeStack)
-
generateGOTO
private void generateGOTO(ControlTokenConsumer currentToken, ControlTokenConsumer target, java.util.Stack<Sequencer.Block> activeStack)
-
visitBranchingNodeTemplate
private void visitBranchingNodeTemplate(ControlTokenConsumer node, java.util.Stack<Sequencer.Block> activeStack, java.util.function.Consumer<java.util.Stack<Sequencer.Block>> nodeCallback)
-
visit
private void visit(If node, java.util.Stack<Sequencer.Block> activeStack)
-
visit
private void visit(TableSwitch node, java.util.Stack<Sequencer.Block> as)
-
visit
private void visit(LookupSwitch node, java.util.Stack<Sequencer.Block> as)
-
visit
private void visit(TryCatch node, java.util.Stack<Sequencer.Block> as)
-
visit
private void visit(Region node, java.util.Stack<Sequencer.Block> activeStack)
-
-