@@ -1551,9 +1551,15 @@ void OptimizeIR(CodeGenContext* const pContext)
1551
1551
{
1552
1552
LoopUnrollThreshold = IGC_GET_FLAG_VALUE (SetLoopUnrollThreshold);
1553
1553
}
1554
+ else if (pContext->getModuleMetaData ()->compOpt .SetLoopUnrollThreshold > 0 )
1555
+ {
1556
+ LoopUnrollThreshold = pContext->getModuleMetaData ()->compOpt .SetLoopUnrollThreshold ;
1557
+ }
1554
1558
1555
1559
// if the shader contains indexable_temp, we'll keep unroll
1556
- bool unroll = IGC_IS_FLAG_DISABLED (DisableLoopUnroll);
1560
+ bool unroll =
1561
+ !pContext->getModuleMetaData ()->compOpt .DisableLoopUnroll &&
1562
+ IGC_IS_FLAG_DISABLED (DisableLoopUnroll);
1557
1563
bool hasIndexTemp = (pContext->m_indexableTempSize [0 ] > 0 );
1558
1564
bool disableLoopUnrollStage1 =
1559
1565
IsStage1FastestCompile (pContext->m_CgFlag , pContext->m_StagingCtx ) &&
@@ -1579,7 +1585,10 @@ void OptimizeIR(CodeGenContext* const pContext)
1579
1585
}
1580
1586
1581
1587
// Second unrolling with the same threshold.
1582
- if (LoopUnrollThreshold > 0 && !IGC_IS_FLAG_ENABLED (DisableLoopUnroll))
1588
+ unroll =
1589
+ !pContext->getModuleMetaData ()->compOpt .DisableLoopUnroll &&
1590
+ IGC_IS_FLAG_DISABLED (DisableLoopUnroll);
1591
+ if (LoopUnrollThreshold > 0 && unroll)
1583
1592
{
1584
1593
mpm.add (llvm::createLoopUnrollPass (2 , false , false , -1 , -1 ,
1585
1594
-1 , -1 , -1 , -1 ));
@@ -1757,9 +1766,15 @@ void OptimizeIR(CodeGenContext* const pContext)
1757
1766
{
1758
1767
LoopUnrollThreshold = IGC_GET_FLAG_VALUE (SetLoopUnrollThreshold);
1759
1768
}
1769
+ else if (pContext->getModuleMetaData ()->compOpt .SetLoopUnrollThreshold > 0 )
1770
+ {
1771
+ LoopUnrollThreshold = pContext->getModuleMetaData ()->compOpt .SetLoopUnrollThreshold ;
1772
+ }
1760
1773
1761
1774
// if the shader contains indexable_temp, we'll keep unroll
1762
- bool unroll = IGC_IS_FLAG_DISABLED (DisableLoopUnroll);
1775
+ bool unroll =
1776
+ !pContext->getModuleMetaData ()->compOpt .DisableLoopUnroll &&
1777
+ IGC_IS_FLAG_DISABLED (DisableLoopUnroll);
1763
1778
bool hasIndexTemp = (pContext->m_indexableTempSize [0 ] > 0 );
1764
1779
// Enable loop unrolling for stage 1 for now due to persisting regressions
1765
1780
bool disableLoopUnrollStage1 =
0 commit comments