forked from OSchip/llvm-project
[TTI] Expose isNoopAddrSpaceCast in TTI.
Reviewers: arsenm Subscribers: wdng, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D82025
This commit is contained in:
parent
4976771e11
commit
2defe55722
|
@ -377,6 +377,8 @@ public:
|
|||
bool collectFlatAddressOperands(SmallVectorImpl<int> &OpIndexes,
|
||||
Intrinsic::ID IID) const;
|
||||
|
||||
bool isNoopAddrSpaceCast(unsigned FromAS, unsigned ToAS) const;
|
||||
|
||||
/// Rewrite intrinsic call \p II such that \p OldV will be replaced with \p
|
||||
/// NewV, which has a different address space. This should happen for every
|
||||
/// operand index that collectFlatAddressOperands returned for the intrinsic.
|
||||
|
@ -1275,6 +1277,7 @@ public:
|
|||
virtual unsigned getFlatAddressSpace() = 0;
|
||||
virtual bool collectFlatAddressOperands(SmallVectorImpl<int> &OpIndexes,
|
||||
Intrinsic::ID IID) const = 0;
|
||||
virtual bool isNoopAddrSpaceCast(unsigned FromAS, unsigned ToAS) const = 0;
|
||||
virtual Value *rewriteIntrinsicWithAddressSpace(IntrinsicInst *II,
|
||||
Value *OldV,
|
||||
Value *NewV) const = 0;
|
||||
|
@ -1546,6 +1549,10 @@ public:
|
|||
return Impl.collectFlatAddressOperands(OpIndexes, IID);
|
||||
}
|
||||
|
||||
bool isNoopAddrSpaceCast(unsigned FromAS, unsigned ToAS) const override {
|
||||
return Impl.isNoopAddrSpaceCast(FromAS, ToAS);
|
||||
}
|
||||
|
||||
Value *rewriteIntrinsicWithAddressSpace(IntrinsicInst *II, Value *OldV,
|
||||
Value *NewV) const override {
|
||||
return Impl.rewriteIntrinsicWithAddressSpace(II, OldV, NewV);
|
||||
|
|
|
@ -87,6 +87,8 @@ public:
|
|||
return false;
|
||||
}
|
||||
|
||||
bool isNoopAddrSpaceCast(unsigned, unsigned) const { return false; }
|
||||
|
||||
Value *rewriteIntrinsicWithAddressSpace(IntrinsicInst *II, Value *OldV,
|
||||
Value *NewV) const {
|
||||
return nullptr;
|
||||
|
|
|
@ -222,6 +222,10 @@ public:
|
|||
return false;
|
||||
}
|
||||
|
||||
bool isNoopAddrSpaceCast(unsigned FromAS, unsigned ToAS) const {
|
||||
return getTLI()->isNoopAddrSpaceCast(FromAS, ToAS);
|
||||
}
|
||||
|
||||
Value *rewriteIntrinsicWithAddressSpace(IntrinsicInst *II, Value *OldV,
|
||||
Value *NewV) const {
|
||||
return nullptr;
|
||||
|
|
|
@ -291,6 +291,11 @@ bool TargetTransformInfo::collectFlatAddressOperands(
|
|||
return TTIImpl->collectFlatAddressOperands(OpIndexes, IID);
|
||||
}
|
||||
|
||||
bool TargetTransformInfo::isNoopAddrSpaceCast(unsigned FromAS,
|
||||
unsigned ToAS) const {
|
||||
return TTIImpl->isNoopAddrSpaceCast(FromAS, ToAS);
|
||||
}
|
||||
|
||||
Value *TargetTransformInfo::rewriteIntrinsicWithAddressSpace(
|
||||
IntrinsicInst *II, Value *OldV, Value *NewV) const {
|
||||
return TTIImpl->rewriteIntrinsicWithAddressSpace(II, OldV, NewV);
|
||||
|
|
Loading…
Reference in New Issue