@@ -155,7 +155,7 @@ std::optional<Instruction *>
155155InstCombiner::targetInstCombineIntrinsic (IntrinsicInst &II) {
156156 // Handle target specific intrinsics
157157 if (II.getCalledFunction ()->isTargetIntrinsic ()) {
158- return TTI .instCombineIntrinsic (*this , II);
158+ return TTIForTargetIntrinsicsOnly .instCombineIntrinsic (*this , II);
159159 }
160160 return std::nullopt ;
161161}
@@ -165,8 +165,8 @@ std::optional<Value *> InstCombiner::targetSimplifyDemandedUseBitsIntrinsic(
165165 bool &KnownBitsComputed) {
166166 // Handle target specific intrinsics
167167 if (II.getCalledFunction ()->isTargetIntrinsic ()) {
168- return TTI .simplifyDemandedUseBitsIntrinsic (* this , II, DemandedMask, Known,
169- KnownBitsComputed);
168+ return TTIForTargetIntrinsicsOnly .simplifyDemandedUseBitsIntrinsic (
169+ * this , II, DemandedMask, Known, KnownBitsComputed);
170170 }
171171 return std::nullopt ;
172172}
@@ -178,15 +178,18 @@ std::optional<Value *> InstCombiner::targetSimplifyDemandedVectorEltsIntrinsic(
178178 SimplifyAndSetOp) {
179179 // Handle target specific intrinsics
180180 if (II.getCalledFunction ()->isTargetIntrinsic ()) {
181- return TTI .simplifyDemandedVectorEltsIntrinsic (
181+ return TTIForTargetIntrinsicsOnly .simplifyDemandedVectorEltsIntrinsic (
182182 *this , II, DemandedElts, PoisonElts, PoisonElts2, PoisonElts3,
183183 SimplifyAndSetOp);
184184 }
185185 return std::nullopt ;
186186}
187187
188188bool InstCombiner::isValidAddrSpaceCast (unsigned FromAS, unsigned ToAS) const {
189- return TTI.isValidAddrSpaceCast (FromAS, ToAS);
189+ // Approved exception for TTI use: This queries a legality property of the
190+ // target, not an profitability heuristic. Ideally this should be part of
191+ // DataLayout instead.
192+ return TTIForTargetIntrinsicsOnly.isValidAddrSpaceCast (FromAS, ToAS);
190193}
191194
192195Value *InstCombinerImpl::EmitGEPOffset (GEPOperator *GEP, bool RewriteGEP) {
0 commit comments