projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Revert r110396 to fix buildbots.
[oota-llvm.git]
/
lib
/
Target
/
ARM
/
NEONMoveFix.cpp
diff --git
a/lib/Target/ARM/NEONMoveFix.cpp
b/lib/Target/ARM/NEONMoveFix.cpp
index f307e3b3108b3c5628087b9b86254d259a6f7993..bbdd3c7f7c3e09553a1c72b4827fd11d90f95d64 100644
(file)
--- a/
lib/Target/ARM/NEONMoveFix.cpp
+++ b/
lib/Target/ARM/NEONMoveFix.cpp
@@
-51,13
+51,13
@@
bool NEONMoveFixPass::InsertMoves(MachineBasicBlock &MBB) {
MachineBasicBlock::iterator MII = MBB.begin(), E = MBB.end();
MachineBasicBlock::iterator NextMII;
for (; MII != E; MII = NextMII) {
MachineBasicBlock::iterator MII = MBB.begin(), E = MBB.end();
MachineBasicBlock::iterator NextMII;
for (; MII != E; MII = NextMII) {
- NextMII = next(MII);
+ NextMII =
llvm::
next(MII);
MachineInstr *MI = &*MII;
MachineInstr *MI = &*MII;
- if (MI->getOpcode() == ARM::
FCPY
D &&
+ if (MI->getOpcode() == ARM::
VMOV
D &&
!TII->isPredicated(MI)) {
unsigned SrcReg = MI->getOperand(1).getReg();
!TII->isPredicated(MI)) {
unsigned SrcReg = MI->getOperand(1).getReg();
- // If we do not f
ou
nd an instruction defining the reg, this means the
+ // If we do not f
i
nd an instruction defining the reg, this means the
// register should be live-in for this BB. It's always to better to use
// NEON reg-reg moves.
unsigned Domain = ARMII::DomainNEON;
// register should be live-in for this BB. It's always to better to use
// NEON reg-reg moves.
unsigned Domain = ARMII::DomainNEON;
@@
-71,7
+71,7
@@
bool NEONMoveFixPass::InsertMoves(MachineBasicBlock &MBB) {
}
if (Domain & ARMII::DomainNEON) {
}
if (Domain & ARMII::DomainNEON) {
- // Convert
FCPYD to VMOVD.
+ // Convert
VMOVD to VMOVDneon
unsigned DestReg = MI->getOperand(0).getReg();
DEBUG({errs() << "vmov convert: "; MI->dump();});
unsigned DestReg = MI->getOperand(0).getReg();
DEBUG({errs() << "vmov convert: "; MI->dump();});
@@
-81,8
+81,8
@@
bool NEONMoveFixPass::InsertMoves(MachineBasicBlock &MBB) {
// afterwards
// - The imp-defs / imp-uses are superregs only, we don't care about
// them.
// afterwards
// - The imp-defs / imp-uses are superregs only, we don't care about
// them.
- BuildMI(MBB, *MI, MI->getDebugLoc(),
-
TII->get(ARM::VMOVD), DestReg).addReg(SrcReg
);
+
AddDefaultPred(
BuildMI(MBB, *MI, MI->getDebugLoc(),
+
TII->get(ARM::VMOVDneon), DestReg).addReg(SrcReg)
);
MBB.erase(MI);
MachineBasicBlock::iterator I = prior(NextMII);
MI = &*I;
MBB.erase(MI);
MachineBasicBlock::iterator I = prior(NextMII);
MI = &*I;
@@
-105,8
+105,8
@@
bool NEONMoveFixPass::InsertMoves(MachineBasicBlock &MBB) {
unsigned MOReg = MO.getReg();
Defs[MOReg] = MI;
unsigned MOReg = MO.getReg();
Defs[MOReg] = MI;
- // Catch
subreg
s as well.
- for (const unsigned *R = TRI->get
SubRegisters
(MOReg); *R; ++R)
+ // Catch
aliase
s as well.
+ for (const unsigned *R = TRI->get
AliasSet
(MOReg); *R; ++R)
Defs[*R] = MI;
}
}
Defs[*R] = MI;
}
}
@@
-118,7
+118,7
@@
bool NEONMoveFixPass::runOnMachineFunction(MachineFunction &Fn) {
ARMFunctionInfo *AFI = Fn.getInfo<ARMFunctionInfo>();
const TargetMachine &TM = Fn.getTarget();
ARMFunctionInfo *AFI = Fn.getInfo<ARMFunctionInfo>();
const TargetMachine &TM = Fn.getTarget();
- if (AFI->isThumbFunction())
+ if (AFI->isThumb
1Only
Function())
return false;
TRI = TM.getRegisterInfo();
return false;
TRI = TM.getRegisterInfo();