2014-03-18 22:07:45 +00:00
|
|
|
Pull in r199186 from upstream llvm trunk (by Jakob Stoklund Olesen):
|
|
|
|
|
|
|
|
Switch the NEON register class from QPR to DPair.
|
|
|
|
|
|
|
|
The already allocatable DPair superclass contains odd-even D register
|
|
|
|
pair in addition to the even-odd pairs in the QPR register class. There
|
|
|
|
is no reason to constrain the set of D register pairs that can be used
|
|
|
|
for NEON values. Any NEON instructions that require a Q register will
|
|
|
|
automatically constrain the register class to QPR.
|
|
|
|
|
|
|
|
The allocation order for DPair begins with the QPR registers, so
|
|
|
|
register allocation is unlikely to change much.
|
|
|
|
|
2014-05-24 22:27:31 +00:00
|
|
|
Introduced here: http://svnweb.freebsd.org/changeset/base/262261
|
2014-03-18 22:07:45 +00:00
|
|
|
|
|
|
|
Index: lib/Target/ARM/ARMISelLowering.cpp
|
|
|
|
===================================================================
|
|
|
|
--- lib/Target/ARM/ARMISelLowering.cpp
|
|
|
|
+++ lib/Target/ARM/ARMISelLowering.cpp
|
|
|
|
@@ -156,7 +156,7 @@ void ARMTargetLowering::addDRTypeForNEON(MVT VT) {
|
|
|
|
}
|
|
|
|
|
|
|
|
void ARMTargetLowering::addQRTypeForNEON(MVT VT) {
|
|
|
|
- addRegisterClass(VT, &ARM::QPRRegClass);
|
|
|
|
+ addRegisterClass(VT, &ARM::DPairRegClass);
|
|
|
|
addTypeForNEON(VT, MVT::v2f64, MVT::v4i32);
|
|
|
|
}
|
|
|
|
|