Skip to content

Commit c1c933f

Browse files
committed
Remove TargetTransformInfo::Model
1 parent 9efd798 commit c1c933f

25 files changed

+36
-921
lines changed

llvm/include/llvm/Analysis/TargetTransformInfo.h

Lines changed: 5 additions & 897 deletions
Large diffs are not rendered by default.

llvm/include/llvm/Analysis/TargetTransformInfoImpl.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class Function;
3131

3232
/// Base class for use as a mix-in that aids implementing
3333
/// a TargetTransformInfo-compatible class.
34-
class TargetTransformInfoImplBase {
34+
class TargetTransformInfoImplBase : public TTI::Concept {
3535

3636
protected:
3737
typedef TargetTransformInfo TTI;

llvm/lib/Analysis/TargetTransformInfo.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,9 @@ struct NoTTIImpl : TargetTransformInfoImplCRTPBase<NoTTIImpl> {
5757
};
5858
} // namespace
5959

60+
TargetTransformInfo::TargetTransformInfo(std::unique_ptr<Concept> Impl)
61+
: TTIImpl(std::move(Impl)) {}
62+
6063
bool HardwareLoopInfo::canAnalyze(LoopInfo &LI) {
6164
// If the loop has irreducible control flow, it can not be converted to
6265
// Hardware loop.
@@ -199,7 +202,7 @@ bool HardwareLoopInfo::isHardwareLoopCandidate(ScalarEvolution &SE,
199202
}
200203

201204
TargetTransformInfo::TargetTransformInfo(const DataLayout &DL)
202-
: TTIImpl(new Model<NoTTIImpl>(NoTTIImpl(DL))) {}
205+
: TTIImpl(std::make_unique<NoTTIImpl>(DL)) {}
203206

204207
TargetTransformInfo::~TargetTransformInfo() = default;
205208

llvm/lib/CodeGen/CodeGenTargetMachineImpl.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ CodeGenTargetMachineImpl::CodeGenTargetMachineImpl(
103103

104104
TargetTransformInfo
105105
CodeGenTargetMachineImpl::getTargetTransformInfo(const Function &F) const {
106-
return TargetTransformInfo(BasicTTIImpl(this, F));
106+
return TargetTransformInfo(std::make_unique<BasicTTIImpl>(this, F));
107107
}
108108

109109
/// addPassesToX helper drives creation and initialization of TargetPassConfig.

llvm/lib/Target/AArch64/AArch64TargetMachine.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -582,7 +582,7 @@ void AArch64TargetMachine::registerPassBuilderCallbacks(PassBuilder &PB) {
582582

583583
TargetTransformInfo
584584
AArch64TargetMachine::getTargetTransformInfo(const Function &F) const {
585-
return TargetTransformInfo(AArch64TTIImpl(this, F));
585+
return TargetTransformInfo(std::make_unique<AArch64TTIImpl>(this, F));
586586
}
587587

588588
TargetPassConfig *AArch64TargetMachine::createPassConfig(PassManagerBase &PM) {

llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1070,7 +1070,7 @@ GCNTargetMachine::getSubtargetImpl(const Function &F) const {
10701070

10711071
TargetTransformInfo
10721072
GCNTargetMachine::getTargetTransformInfo(const Function &F) const {
1073-
return TargetTransformInfo(GCNTTIImpl(this, F));
1073+
return TargetTransformInfo(std::make_unique<GCNTTIImpl>(this, F));
10741074
}
10751075

10761076
Error GCNTargetMachine::buildCodeGenPipeline(

llvm/lib/Target/AMDGPU/R600TargetMachine.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ R600TargetMachine::getSubtargetImpl(const Function &F) const {
8787

8888
TargetTransformInfo
8989
R600TargetMachine::getTargetTransformInfo(const Function &F) const {
90-
return TargetTransformInfo(R600TTIImpl(this, F));
90+
return TargetTransformInfo(std::make_unique<R600TTIImpl>(this, F));
9191
}
9292

9393
ScheduleDAGInstrs *

llvm/lib/Target/ARC/ARCTargetMachine.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,5 +103,5 @@ extern "C" LLVM_EXTERNAL_VISIBILITY void LLVMInitializeARCTarget() {
103103

104104
TargetTransformInfo
105105
ARCTargetMachine::getTargetTransformInfo(const Function &F) const {
106-
return TargetTransformInfo(ARCTTIImpl(this, F));
106+
return TargetTransformInfo(std::make_unique<ARCTTIImpl>(this, F));
107107
}

llvm/lib/Target/ARM/ARMTargetMachine.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,7 @@ ARMBaseTargetMachine::getSubtargetImpl(const Function &F) const {
322322

323323
TargetTransformInfo
324324
ARMBaseTargetMachine::getTargetTransformInfo(const Function &F) const {
325-
return TargetTransformInfo(ARMTTIImpl(this, F));
325+
return TargetTransformInfo(std::make_unique<ARMTTIImpl>(this, F));
326326
}
327327

328328
ScheduleDAGInstrs *

llvm/lib/Target/BPF/BPFTargetMachine.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ void BPFPassConfig::addIRPasses() {
154154

155155
TargetTransformInfo
156156
BPFTargetMachine::getTargetTransformInfo(const Function &F) const {
157-
return TargetTransformInfo(BPFTTIImpl(this, F));
157+
return TargetTransformInfo(std::make_unique<BPFTTIImpl>(this, F));
158158
}
159159

160160
// Install an instruction selector pass using

0 commit comments

Comments
 (0)