diff options
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/ARM/ARMISelLowering.cpp | 8 | ||||
| -rw-r--r-- | llvm/lib/Target/ARM/ARMISelLowering.h | 3 | 
2 files changed, 11 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMISelLowering.cpp b/llvm/lib/Target/ARM/ARMISelLowering.cpp index b83d3f78a34..01c8d7534ee 100644 --- a/llvm/lib/Target/ARM/ARMISelLowering.cpp +++ b/llvm/lib/Target/ARM/ARMISelLowering.cpp @@ -11841,6 +11841,14 @@ bool ARMTargetLowering::canCombineStoreAndExtract(Type *VectorTy, Value *Idx,    return false;  } +bool ARMTargetLowering::isCheapToSpeculateCttz() const { +  return Subtarget->hasV6T2Ops(); +} + +bool ARMTargetLowering::isCheapToSpeculateCtlz() const { +  return Subtarget->hasV6T2Ops(); +} +  Value *ARMTargetLowering::emitLoadLinked(IRBuilder<> &Builder, Value *Addr,                                           AtomicOrdering Ord) const {    Module *M = Builder.GetInsertBlock()->getParent()->getParent(); diff --git a/llvm/lib/Target/ARM/ARMISelLowering.h b/llvm/lib/Target/ARM/ARMISelLowering.h index 534f92b941c..b0881c2df88 100644 --- a/llvm/lib/Target/ARM/ARMISelLowering.h +++ b/llvm/lib/Target/ARM/ARMISelLowering.h @@ -467,6 +467,9 @@ namespace llvm {      bool canCombineStoreAndExtract(Type *VectorTy, Value *Idx,                                     unsigned &Cost) const override; +    bool isCheapToSpeculateCttz() const override; +    bool isCheapToSpeculateCtlz() const override; +    protected:      std::pair<const TargetRegisterClass *, uint8_t>      findRepresentativeClass(const TargetRegisterInfo *TRI,  | 

