Switch the NEON register class from QPR to DPair.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Tue, 14 Jan 2014 06:18:34 +0000 (06:18 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Tue, 14 Jan 2014 06:18:34 +0000 (06:18 +0000)
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199186 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMISelLowering.cpp

index 8b2366336dbfbce2f9ed6b92adbf4e7969745313..1d2236f2c9f01c51d3426d8b993c41105d1c7793 100644 (file)
@@ -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);
 }