bool AggressiveSpecPolicy::specializeOn(Function* F, std::vector<PrevirtType>::const_iterator begin, std::vector<PrevirtType>::const_iterator end, SmallBitVector& slice) const { bool specialize = false; for (int i = 0; begin != end; ++begin, ++i) { if (begin->isConcrete()) { specialize = true; slice.set(i); } } return specialize; }
static LLT getTypeToPrint(const MachineInstr &MI, unsigned OpIdx, SmallBitVector &PrintedTypes, const MachineRegisterInfo &MRI) { const MachineOperand &Op = MI.getOperand(OpIdx); if (!Op.isReg()) return LLT{}; if (MI.isVariadic() || OpIdx >= MI.getNumExplicitOperands()) return MRI.getType(Op.getReg()); auto &OpInfo = MI.getDesc().OpInfo[OpIdx]; if (!OpInfo.isGenericType()) return MRI.getType(Op.getReg()); if (PrintedTypes[OpInfo.getGenericTypeIndex()]) return LLT{}; PrintedTypes.set(OpInfo.getGenericTypeIndex()); return MRI.getType(Op.getReg()); }
void BlockState::startTrackingLocation(SmallBitVector &BV, unsigned i) { BV.set(i); }