llvm-6502/lib/Analysis/LiveVar/LiveVarSet.cpp

21 lines
731 B
C++
Raw Normal View History

#include "llvm/Analysis/LiveVar/LiveVarSet.h"
// This function applies an instruction to a live var set (accepts OutSet) and
// makes necessary changes to it (produces InSet)
void LiveVarSet::applyTranferFuncForInst(const Instruction *const Inst)
{
if( Inst->isDefinition() ) { // add to Defs iff this instr is a definition
remove(Inst); // this definition kills any uses
}
Instruction::op_const_iterator OpI = Inst->op_begin(); // get operand iterat
for( ; OpI != Inst->op_end() ; OpI++) { // iterate over operands
if ( ((*OpI)->getType())->isLabelType()) continue; // don't process labels
add( *OpI ); // An operand is a use - so add to use set
}
}