MoveSolver

Reorders a set of moves, to produce correct behavior Nodes can be in 3 states: RO - value is only read. Those are not added to writtenNodes array. RW - value is read 1 or more times and written 1 time. Indices of these nodes are at the beginning of writtenNodes WO - value is only written. Indices are at the end of writtenNodes.

Members

Functions

addMove
void addMove(IrIndex fromIndex, IrIndex toIndex, IrArgSize argSize, FromValue fromIsValue)
Undocumented in source. Be warned that the author may not have intended to support it.
getInfo
ValueInfo getInfo(IrIndex index)
Undocumented in source. Be warned that the author may not have intended to support it.
placeMovesBeforeInstr
void placeMovesBeforeInstr(IrBuilder* builder, IrIndex beforeInstr, IrIndex delegate() getScratchSpillSlot)
Undocumented in source. Be warned that the author may not have intended to support it.
print
void print()
Undocumented in source. Be warned that the author may not have intended to support it.
release
void release()
Undocumented in source. Be warned that the author may not have intended to support it.
removeItem
void removeItem(ValueInfo* item)
Undocumented in source. Be warned that the author may not have intended to support it.
reset
void reset()
Undocumented in source. Be warned that the author may not have intended to support it.
rw_to_wo
void rw_to_wo(uint arrayPos)
Undocumented in source. Be warned that the author may not have intended to support it.
setup
void setup(IrFunction* ir)
Undocumented in source. Be warned that the author may not have intended to support it.
wo_to_rw
void wo_to_rw(uint arrayPos)
Undocumented in source. Be warned that the author may not have intended to support it.

Variables

anyConstant
ValueInfo anyConstant;
Undocumented in source.
context
CompilationContext* context;
Undocumented in source.
ir
IrFunction* ir;
Undocumented in source.
numWriteOnlyValues
uint numWriteOnlyValues;
Undocumented in source.
numWrittenNodes
uint numWrittenNodes;
Undocumented in source.
registers
ValueInfo[NUM_REGS_PER_CLASS][NUM_REG_CLASSES] registers;
Undocumented in source.
savedBufLength
size_t savedBufLength;
Undocumented in source.
stackSlots
ValueInfo[] stackSlots;
Undocumented in source.
writtenNodesPtr
IrIndex* writtenNodesPtr;
Undocumented in source.

Meta