Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
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());
}
Ejemplo n.º 3
0
void BlockState::startTrackingLocation(SmallBitVector &BV, unsigned i) {
  BV.set(i);
}