Added an ocl internal option

-cl-intel-vector-coalesing=<0-5>
to control vector coalescing (extract/insert coalescing)

Remove unused driverInfo function : EnableVecAliasing()

Change-Id: Ib721bb431bd7e37a9611ada78c017d9985af7fba
This commit is contained in:
Gu, Junjie
2020-02-25 16:46:20 -08:00
committed by sys_zuul
parent 637df03f5a
commit 51c3732659
9 changed files with 47 additions and 24 deletions

View File

@ -365,7 +365,7 @@ void VariableReuseAnalysis::postProcessing()
// BlockCoalescing : check if a BB is a to-be-skipped empty BB.
// It is used for selecting BB to add lifetime start
BlockCoalescing* theBC = &getAnalysis<BlockCoalescing>();
if (!m_DeSSA || IGC_GET_FLAG_VALUE(VATemp) < 3)
if (!m_DeSSA || m_pCtx->getVectorCoalescingControl() < 3)
return;
DenseMap<Value*, int> dessaRootVisited;
@ -415,7 +415,7 @@ void VariableReuseAnalysis::postProcessing()
}
// For other vector values
if (IGC_GET_FLAG_VALUE(VATemp) < 4)
if (m_pCtx->getVectorCoalescingControl() < 4)
return;
for (auto II = inst_begin(*m_F), IE = inst_end(*m_F); II != IE; ++II)
@ -495,17 +495,10 @@ bool VariableReuseAnalysis::getVectorIndicesIfConstant(
void VariableReuseAnalysis::visitExtractElementInst(ExtractElementInst& I)
{
if (IGC_GET_FLAG_VALUE(VATemp) == 0) {
if (m_pCtx->getVectorCoalescingControl() == 0) {
return;
}
// Do it for OCL only (todo enable it for other api)
if (!m_pCtx->m_DriverInfo.EnableVecAliasing())
{
return;
}
ExtractElementInst* EEI = &I;
Value* vecVal = EEI->getVectorOperand();
@ -917,8 +910,7 @@ bool VariableReuseAnalysis::getElementValue(
void VariableReuseAnalysis::InsertElementAliasing(Function* F)
{
// Do it if VATemp >= 2 and for ocl only for now
if (IGC_GET_FLAG_VALUE(VATemp) < 2 ||
!m_pCtx->m_DriverInfo.EnableVecAliasing()) {
if (m_pCtx->getVectorCoalescingControl() < 2) {
return;
}