@@ -38,6 +38,7 @@ namespace IGC {
38
38
LSC_L1_L3_CC RTStackStorePolicy ()
39
39
{
40
40
LSC_L1_L3_CC cacheOpts = LSC_L1IAR_WB_L3C_WB;
41
+ // Ctx.platform.preferLSCCache() also prefers LSC_L1IAR_WB_L3C_WB
41
42
42
43
if (IGC_IS_FLAG_ENABLED (ForceRTStackStoreCacheCtrl))
43
44
{
@@ -73,7 +74,7 @@ LSC_L1_L3_CC SWStackStorePolicy(const CodeGenContext &Ctx)
73
74
{
74
75
LSC_L1_L3_CC cacheOpts = Ctx.platform .NeedsLSCFenceUGMBeforeEOT () ?
75
76
LSC_L1S_L3C_WB :
76
- LSC_L1UC_L3C_WB;
77
+ (Ctx. platform . preferLSCCache () ? LSC_L1IAR_WB_L3C_WB : LSC_L1UC_L3C_WB) ;
77
78
78
79
if (IGC_IS_FLAG_ENABLED (ForceSWStackStoreCacheCtrl))
79
80
{
@@ -91,6 +92,7 @@ LSC_L1_L3_CC SWStackStorePolicy(const CodeGenContext &Ctx)
91
92
LSC_L1_L3_CC RTStackLoadPolicy ()
92
93
{
93
94
LSC_L1_L3_CC cacheOpts = LSC_L1C_WT_L3C_WB;
95
+ // Ctx.platform.preferLSCCache() also prefers LSC_L1C_WT_L3C_WB
94
96
95
97
if (IGC_IS_FLAG_ENABLED (ForceRTStackLoadCacheCtrl))
96
98
{
@@ -122,9 +124,9 @@ LSC_L1_L3_CC SWHotZoneLoadPolicy()
122
124
/* *
123
125
* @return the load cache policy for the SWStack
124
126
*/
125
- LSC_L1_L3_CC SWStackLoadPolicy ()
127
+ LSC_L1_L3_CC SWStackLoadPolicy (const CodeGenContext& Ctx )
126
128
{
127
- LSC_L1_L3_CC cacheOpts = LSC_L1UC_L3C_WB;
129
+ LSC_L1_L3_CC cacheOpts = Ctx. platform . preferLSCCache () ? LSC_L1C_WT_L3C_WB : LSC_L1UC_L3C_WB;
128
130
129
131
if (IGC_IS_FLAG_ENABLED (ForceSWStackLoadCacheCtrl))
130
132
{
@@ -191,7 +193,7 @@ Optional<LSC_L1_L3_CC> getCacheOptsLoadPolicy(
191
193
cacheOpts = RTStackLoadPolicy ();
192
194
break ;
193
195
case RTMemRegion::SWStack:
194
- cacheOpts = SWStackLoadPolicy ();
196
+ cacheOpts = SWStackLoadPolicy (Ctx );
195
197
break ;
196
198
case RTMemRegion::SWHotZone:
197
199
cacheOpts = SWHotZoneLoadPolicy ();
0 commit comments