1 struct DataLayout; 2 struct TargetLoweringBase { 3 void getTypeLegalizationCost(const DataLayout &DL) const; 4 }; 5 struct TargetTransformInfoImplBase { 6 const DataLayout &DL; 7 }; 8 template <typename T> 9 struct TargetTransformInfoImplCRTPBase : public TargetTransformInfoImplBase {}; 10 template <typename T> 11 struct BasicTTIImplBase : public TargetTransformInfoImplCRTPBase<T> { 12 const TargetLoweringBase *getTLI() const; 13 using TargetTransformInfoImplBase::DL; getArithmeticInstrCostBasicTTIImplBase14 void getArithmeticInstrCost() { 15 const TargetLoweringBase *TLI = getTLI(); 16 TLI->getTypeLegalizationCost(DL); 17 } 18 }; 19