mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-11 21:57:55 +00:00
Enable partial and runtime loop unrolling for NVPTX.
Enable partial and runtime loop unrolling for NVPTX backend via TTI::UnrollingPreferences with a small threshold. This partially unrolls small loops which are often unrolled by the PTX to SASS compiler and unrolling earlier can be beneficial. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242049 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
8a9e01d606
commit
9be1720729
@ -117,3 +117,15 @@ unsigned NVPTXTTIImpl::getArithmeticInstrCost(
|
||||
Opd1PropInfo, Opd2PropInfo);
|
||||
}
|
||||
}
|
||||
|
||||
void NVPTXTTIImpl::getUnrollingPreferences(Loop *L,
|
||||
TTI::UnrollingPreferences &UP) {
|
||||
BaseT::getUnrollingPreferences(L, UP);
|
||||
|
||||
// Enable partial unrolling and runtime unrolling, but reduce the
|
||||
// threshold. This partially unrolls small loops which are often
|
||||
// unrolled by the PTX to SASS compiler and unrolling earlier can be
|
||||
// beneficial.
|
||||
UP.Partial = UP.Runtime = true;
|
||||
UP.PartialThreshold = UP.Threshold / 4;
|
||||
}
|
||||
|
@ -58,6 +58,8 @@ public:
|
||||
TTI::OperandValueKind Opd2Info = TTI::OK_AnyValue,
|
||||
TTI::OperandValueProperties Opd1PropInfo = TTI::OP_None,
|
||||
TTI::OperandValueProperties Opd2PropInfo = TTI::OP_None);
|
||||
|
||||
void getUnrollingPreferences(Loop *L, TTI::UnrollingPreferences &UP);
|
||||
};
|
||||
|
||||
} // end namespace llvm
|
||||
|
Loading…
Reference in New Issue
Block a user