mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 19:23:23 +01:00
[TTI] Refactor emitGetActiveLaneMask
Refactor TTI hook emitGetActiveLaneMask and remove the unused arguments as suggested in D79100.
This commit is contained in:
parent
35f60171c5
commit
951872bd3c
@ -529,9 +529,8 @@ public:
|
||||
const LoopAccessInfo *LAI) const;
|
||||
|
||||
/// Query the target whether lowering of the llvm.get.active.lane.mask
|
||||
/// intrinsic is supported and if emitting it is desired for this loop.
|
||||
bool emitGetActiveLaneMask(Loop *L, LoopInfo *LI, ScalarEvolution &SE,
|
||||
bool TailFolded) const;
|
||||
/// intrinsic is supported.
|
||||
bool emitGetActiveLaneMask() const;
|
||||
|
||||
/// @}
|
||||
|
||||
@ -1290,8 +1289,7 @@ public:
|
||||
preferPredicateOverEpilogue(Loop *L, LoopInfo *LI, ScalarEvolution &SE,
|
||||
AssumptionCache &AC, TargetLibraryInfo *TLI,
|
||||
DominatorTree *DT, const LoopAccessInfo *LAI) = 0;
|
||||
virtual bool emitGetActiveLaneMask(Loop *L, LoopInfo *LI, ScalarEvolution &SE,
|
||||
bool TailFolded) = 0;
|
||||
virtual bool emitGetActiveLaneMask() = 0;
|
||||
virtual bool isLegalAddImmediate(int64_t Imm) = 0;
|
||||
virtual bool isLegalICmpImmediate(int64_t Imm) = 0;
|
||||
virtual bool isLegalAddressingMode(Type *Ty, GlobalValue *BaseGV,
|
||||
@ -1571,9 +1569,8 @@ public:
|
||||
const LoopAccessInfo *LAI) override {
|
||||
return Impl.preferPredicateOverEpilogue(L, LI, SE, AC, TLI, DT, LAI);
|
||||
}
|
||||
bool emitGetActiveLaneMask(Loop *L, LoopInfo *LI, ScalarEvolution &SE,
|
||||
bool TailFolded) override {
|
||||
return Impl.emitGetActiveLaneMask(L, LI, SE, TailFolded);
|
||||
bool emitGetActiveLaneMask() override {
|
||||
return Impl.emitGetActiveLaneMask();
|
||||
}
|
||||
bool isLegalAddImmediate(int64_t Imm) override {
|
||||
return Impl.isLegalAddImmediate(Imm);
|
||||
|
@ -141,8 +141,7 @@ public:
|
||||
return false;
|
||||
}
|
||||
|
||||
bool emitGetActiveLaneMask(Loop *L, LoopInfo *LI, ScalarEvolution &SE,
|
||||
bool TailFold) const {
|
||||
bool emitGetActiveLaneMask() const {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -462,9 +462,8 @@ public:
|
||||
return BaseT::preferPredicateOverEpilogue(L, LI, SE, AC, TLI, DT, LAI);
|
||||
}
|
||||
|
||||
bool emitGetActiveLaneMask(Loop *L, LoopInfo *LI, ScalarEvolution &SE,
|
||||
bool TailFold) {
|
||||
return BaseT::emitGetActiveLaneMask(L, LI, SE, TailFold);
|
||||
bool emitGetActiveLaneMask() {
|
||||
return BaseT::emitGetActiveLaneMask();
|
||||
}
|
||||
|
||||
int getInstructionLatency(const Instruction *I) {
|
||||
|
@ -313,9 +313,8 @@ bool TargetTransformInfo::preferPredicateOverEpilogue(
|
||||
return TTIImpl->preferPredicateOverEpilogue(L, LI, SE, AC, TLI, DT, LAI);
|
||||
}
|
||||
|
||||
bool TargetTransformInfo::emitGetActiveLaneMask(Loop *L, LoopInfo *LI,
|
||||
ScalarEvolution &SE, bool TailFolded) const {
|
||||
return TTIImpl->emitGetActiveLaneMask(L, LI, SE, TailFolded);
|
||||
bool TargetTransformInfo::emitGetActiveLaneMask() const {
|
||||
return TTIImpl->emitGetActiveLaneMask();
|
||||
}
|
||||
|
||||
void TargetTransformInfo::getUnrollingPreferences(
|
||||
|
@ -1412,12 +1412,14 @@ bool ARMTTIImpl::preferPredicateOverEpilogue(Loop *L, LoopInfo *LI,
|
||||
return canTailPredicateLoop(L, LI, SE, DL, LAI);
|
||||
}
|
||||
|
||||
bool ARMTTIImpl::emitGetActiveLaneMask(Loop *L, LoopInfo *LI,
|
||||
ScalarEvolution &SE, bool TailFolded) const {
|
||||
// TODO: if this loop is tail-folded, we want to emit the
|
||||
// llvm.get.active.lane.mask intrinsic so that this can be picked up in the
|
||||
// MVETailPredication pass that needs to know the number of elements
|
||||
// processed by this vector loop.
|
||||
bool ARMTTIImpl::emitGetActiveLaneMask() const {
|
||||
if (!ST->hasMVEIntegerOps())
|
||||
return false;
|
||||
|
||||
// TODO: Intrinsic @llvm.get.active.lane.mask is supported.
|
||||
// It is used in the MVETailPredication pass, which requires the number of
|
||||
// elements processed by this vector loop to setup the tail-predicated
|
||||
// loop.
|
||||
return false;
|
||||
}
|
||||
void ARMTTIImpl::getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
|
||||
|
@ -250,8 +250,7 @@ public:
|
||||
void getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
|
||||
TTI::UnrollingPreferences &UP);
|
||||
|
||||
bool emitGetActiveLaneMask(Loop *L, LoopInfo *LI, ScalarEvolution &SE,
|
||||
bool TailFolded) const;
|
||||
bool emitGetActiveLaneMask() const;
|
||||
|
||||
bool shouldBuildLookupTablesForConstant(Constant *C) const {
|
||||
// In the ROPI and RWPI relocation models we can't have pointers to global
|
||||
|
Loading…
Reference in New Issue
Block a user