Registers Liveness::GetSetDiff(Registers& lhs, Registers& rhs) { struct myTempComp { bool operator () (myTemp lhs, myTemp rhs) { return Temp_getTempNum(lhs) < Temp_getTempNum(rhs); } } tempComparator; Registers result; set_difference( lhs.begin(), lhs.end(), rhs.begin(), rhs.end(), back_inserter(result), tempComparator); return result; }
unsigned int Node::calculateTotalSize(const Registers& regs)const{ unsigned int acum=0; for(Registers::iterator it=regs.begin();it!=regs.end();++it){ acum+=(*it)->getSize(); } return acum; }
void Liveness::SortOneRegisters(Registers& regs) { struct myTempComp { bool operator () (myTemp lhs, myTemp rhs) { return Temp_getTempNum(lhs) < Temp_getTempNum(rhs); } } tempComparator; sort(regs.begin(), regs.end(), tempComparator); }