// Do all the real work of allocate virtualvoid Register_Allocate() = 0;
// notify the register allocator that "node" is a new reference // to the value produced by "old_node" virtualvoid add_reference( const Node *node, const Node *old_node) = 0;
// Convert a register number to a stack offset int reg2offset ( OptoReg::Name reg ) const; int reg2offset_unchecked( OptoReg::Name reg ) const;
// Convert a stack offset to a register number
OptoReg::Name offset2reg( int stk_offset ) const;
// Get the register encoding associated with the Node int get_encode(const Node *n) const {
assert( n->_idx < _node_regs_max_index, "Exceeded _node_regs array");
OptoReg::Name first = _node_regs[n->_idx].first();
OptoReg::Name second = _node_regs[n->_idx].second();
assert( !OptoReg::is_valid(second) || second == first+1, "" );
assert(OptoReg::is_reg(first), "out of range"); return Matcher::_regEncode[first];
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.