diff options
Diffstat (limited to 'lib/Target/ARM/ARMSubtarget.cpp')
| -rw-r--r-- | lib/Target/ARM/ARMSubtarget.cpp | 10 | 
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/Target/ARM/ARMSubtarget.cpp b/lib/Target/ARM/ARMSubtarget.cpp index cf1ee3f029532..5af95c33b930c 100644 --- a/lib/Target/ARM/ARMSubtarget.cpp +++ b/lib/Target/ARM/ARMSubtarget.cpp @@ -27,11 +27,11 @@ UseNEONFP("arm-use-neon-fp",            cl::init(false), cl::Hidden);  ARMSubtarget::ARMSubtarget(const std::string &TT, const std::string &FS, -                           bool isThumb) +                           bool isT)    : ARMArchVersion(V4T)    , ARMFPUType(None)    , UseNEONForSinglePrecisionFP(UseNEONFP) -  , IsThumb(isThumb) +  , IsThumb(isT)    , ThumbMode(Thumb1)    , PostRAScheduler(false)    , IsR9Reserved(ReserveR9) @@ -98,9 +98,13 @@ ARMSubtarget::ARMSubtarget(const std::string &TT, const std::string &FS,    if (isTargetDarwin())      IsR9Reserved = ReserveR9 | (ARMArchVersion < V6); +  if (!isThumb() || hasThumb2()) +    PostRAScheduler = true; +    // Set CPU specific features.    if (CPUString == "cortex-a8") { -    PostRAScheduler = true; +    // On Cortex-a8, it's faster to perform some single-precision FP +    // operations with NEON instructions.      if (UseNEONFP.getPosition() == 0)        UseNEONForSinglePrecisionFP = true;    }  | 
