control_flow_graph library
Library for creating and manipulating control flow graphs and SSA form.
Classes
- AllocatedSSA
-
AssembleContext<
T> -
AssemblerConfig<
C> - Configuration object passed to ControlFlowGraph.assembleToInstructions.
- Assign
-
BasicBlock<
T extends Operation> - A basic block is a sequence of operations that are always executed together. Only the last operation may perform control flow (e.g. a branch or jump).
- BasicBlockBuilder
- ControlFlowGraph
- Represents a control flow graph operating on basic blocks of SSA operations.
-
Creator<
T extends Operation, C> - ImmediateSSA
- Instruction
- Represents a machine code instruction
-
InstructionCreator<
T extends Operation, C> - Noop
- An operation type that does nothing.
- Operation
- Defines an SSA operation in a program's BasicBlock. The operation must specify which variables it reads from and writes to.
- OpType
- Represents the basic types of operations that can be performed in a program. These types are used for various optimizations and transformations.
- ParallelCopy
- PhiNode
- A phi node operation in a program's BasicBlock. Phi nodes are used to resolve variable assignments in control flow graphs. Typically you should not create phi nodes directly, but use the ControlFlowGraph.insertPhiNodes method instead.
- SSA
- A static single assignment (SSA) form variable.
- SwapOp
-
Swaps the physical register contents of two SSA variables in place.
Both variables must share at least one
RegisterGroupparent (i.e. belong to the sameRegType) for a swap to be legal. - UnknownOp
- Variant
Enums
- ArithmeticOp
- An operation type that represents arithmetic operations.
- AssignmentOp
- An operation type that represents assignment operations.
- BitwiseOp
- An operation type that represents bitwise operations.
- CallOp
- CollectionOp
- ComparisonOp
- An operation type that represents comparison operations.
- LogicalOp
- An operation type that represents logical operations.
- UnaryOp
- An operation type that represents unary operations.
Constants
Typedefs
-
MoveCallback<
C> = Instruction Function(AllocatedSSA target, AllocatedSSA source, AssembleContext< C> context) - Callback type for emitting a register-to-register move instruction.
-
ReloadCallback<
C> = Instruction Function(AllocatedSSA variable, int slotIndex, AssembleContext< C> context) - Callback type for emitting a reload (load from local slot) instruction.
-
SpillCallback<
C> = Instruction Function(AllocatedSSA variable, int slotIndex, AssembleContext< C> context) - Callback type for emitting a spill (store to local slot) instruction.
-
SwapCallback<
C> = Instruction Function(AllocatedSSA a, AllocatedSSA b, AssembleContext< C> context) - Callback type for emitting a register swap instruction.