diff options
author | Anton Korobeynikov <asl@math.spbu.ru> | 2009-11-03 18:46:11 +0000 |
---|---|---|
committer | Anton Korobeynikov <asl@math.spbu.ru> | 2009-11-03 18:46:11 +0000 |
commit | 76a4774a0dedaf0c71e260c7a61895501ca2cb99 (patch) | |
tree | 383daab3d7b402abd20b3ef55054d8d36df192db /llvm/lib | |
parent | 8d43a6ac3d368281072b9b7273d98660a2c0efcd (diff) | |
download | bcm5719-llvm-76a4774a0dedaf0c71e260c7a61895501ca2cb99.tar.gz bcm5719-llvm-76a4774a0dedaf0c71e260c7a61895501ca2cb99.zip |
Move subtarget check upper for NEON reg-reg fixup pass.
llvm-svn: 85914
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/ARM/ARMTargetMachine.cpp | 3 | ||||
-rw-r--r-- | llvm/lib/Target/ARM/NEONMoveFix.cpp | 7 |
2 files changed, 4 insertions, 6 deletions
diff --git a/llvm/lib/Target/ARM/ARMTargetMachine.cpp b/llvm/lib/Target/ARM/ARMTargetMachine.cpp index 29579db2e73..b4ce1d7760c 100644 --- a/llvm/lib/Target/ARM/ARMTargetMachine.cpp +++ b/llvm/lib/Target/ARM/ARMTargetMachine.cpp @@ -115,7 +115,8 @@ bool ARMBaseTargetMachine::addPreEmitPass(PassManagerBase &PM, if (OptLevel != CodeGenOpt::None) { if (!Subtarget.isThumb1Only()) PM.add(createIfConverterPass()); - PM.add(createNEONMoveFixPass()); + if (Subtarget.hasNEON()) + PM.add(createNEONMoveFixPass()); } if (Subtarget.isThumb2()) { diff --git a/llvm/lib/Target/ARM/NEONMoveFix.cpp b/llvm/lib/Target/ARM/NEONMoveFix.cpp index 3c3b9520ca1..f307e3b3108 100644 --- a/llvm/lib/Target/ARM/NEONMoveFix.cpp +++ b/llvm/lib/Target/ARM/NEONMoveFix.cpp @@ -35,7 +35,6 @@ namespace { private: const TargetRegisterInfo *TRI; const ARMBaseInstrInfo *TII; - const ARMSubtarget *Subtarget; typedef DenseMap<unsigned, const MachineInstr*> RegMap; @@ -71,7 +70,7 @@ bool NEONMoveFixPass::InsertMoves(MachineBasicBlock &MBB) { Domain = ARMII::DomainNEON; } - if ((Domain & ARMII::DomainNEON) && Subtarget->hasNEON()) { + if (Domain & ARMII::DomainNEON) { // Convert FCPYD to VMOVD. unsigned DestReg = MI->getOperand(0).getReg(); @@ -93,8 +92,7 @@ bool NEONMoveFixPass::InsertMoves(MachineBasicBlock &MBB) { Modified = true; ++NumVMovs; } else { - assert((Domain & ARMII::DomainVFP || - !Subtarget->hasNEON()) && "Invalid domain!"); + assert((Domain & ARMII::DomainVFP) && "Invalid domain!"); // Do nothing. } } @@ -124,7 +122,6 @@ bool NEONMoveFixPass::runOnMachineFunction(MachineFunction &Fn) { return false; TRI = TM.getRegisterInfo(); - Subtarget = &TM.getSubtarget<ARMSubtarget>(); TII = static_cast<const ARMBaseInstrInfo*>(TM.getInstrInfo()); bool Modified = false; |