if (OptLevel != CodeGenOpt::None) {
if (!Subtarget.isThumb1Only())
PM.add(createIfConverterPass());
- PM.add(createNEONMoveFixPass());
+ if (Subtarget.hasNEON())
+ PM.add(createNEONMoveFixPass());
}
if (Subtarget.isThumb2()) {
private:
const TargetRegisterInfo *TRI;
const ARMBaseInstrInfo *TII;
- const ARMSubtarget *Subtarget;
typedef DenseMap<unsigned, const MachineInstr*> RegMap;
Domain = ARMII::DomainNEON;
}
- if ((Domain & ARMII::DomainNEON) && Subtarget->hasNEON()) {
+ if (Domain & ARMII::DomainNEON) {
// Convert FCPYD to VMOVD.
unsigned DestReg = MI->getOperand(0).getReg();
Modified = true;
++NumVMovs;
} else {
- assert((Domain & ARMII::DomainVFP ||
- !Subtarget->hasNEON()) && "Invalid domain!");
+ assert((Domain & ARMII::DomainVFP) && "Invalid domain!");
// Do nothing.
}
}
return false;
TRI = TM.getRegisterInfo();
- Subtarget = &TM.getSubtarget<ARMSubtarget>();
TII = static_cast<const ARMBaseInstrInfo*>(TM.getInstrInfo());
bool Modified = false;