Skip to content

Commit 582b399

Browse files
committed
Optimization on LinearScan::buildPhysRegRecords by skipping non-AVX512 register if AVX512 not available.
1 parent d2dabe7 commit 582b399

File tree

2 files changed

+18
-3
lines changed

2 files changed

+18
-3
lines changed

src/coreclr/jit/lsrabuild.cpp

+12
Original file line numberDiff line numberDiff line change
@@ -1899,6 +1899,18 @@ void LinearScan::buildPhysRegRecords()
18991899
RegRecord* curr = &physRegs[reg];
19001900
curr->regOrder = (unsigned char)i;
19011901
}
1902+
#if defined(TARGET_AMD64)
1903+
if (compiler->DoJitStressEvexEncoding())
1904+
{
1905+
for (unsigned int i = 0; i < lsraRegOrderFltSize; i++)
1906+
{
1907+
const regNumber lsraRegOrderFltUpper[] = {REG_VAR_ORDER_FLT_UPPER};
1908+
regNumber reg = lsraRegOrderFltUpper[i];
1909+
RegRecord* curr = &physRegs[reg];
1910+
curr->regOrder = (unsigned char)(i + lsraRegOrderFltSize);
1911+
}
1912+
}
1913+
#endif // TARGET_AMD64
19021914
}
19031915

19041916
//------------------------------------------------------------------------

src/coreclr/jit/targetamd64.h

+6-3
Original file line numberDiff line numberDiff line change
@@ -227,9 +227,12 @@
227227
#endif
228228

229229
#define REG_VAR_ORDER_FLT REG_XMM0,REG_XMM1,REG_XMM2,REG_XMM3,REG_XMM4,REG_XMM5,REG_XMM6,REG_XMM7, \
230-
REG_XMM8,REG_XMM9,REG_XMM10,REG_XMM11,REG_XMM12,REG_XMM13,REG_XMM14,REG_XMM15, \
231-
REG_XMM16,REG_XMM17,REG_XMM18,REG_XMM19,REG_XMM20,REG_XMM21,REG_XMM22,REG_XMM23, \
232-
REG_XMM24,REG_XMM25,REG_XMM26,REG_XMM27,REG_XMM28,REG_XMM29,REG_XMM30,REG_XMM31
230+
REG_XMM8,REG_XMM9,REG_XMM10,REG_XMM11,REG_XMM12,REG_XMM13,REG_XMM14,REG_XMM15
231+
#if defined(TARGET_AMD64)
232+
#define REG_VAR_ORDER_FLT_UPPER REG_XMM16,REG_XMM17,REG_XMM18,REG_XMM19,REG_XMM20,REG_XMM21,REG_XMM22,REG_XMM23, \
233+
REG_XMM24,REG_XMM25,REG_XMM26,REG_XMM27,REG_XMM28,REG_XMM29,REG_XMM30,REG_XMM31
234+
#endif // TARGET_AMD64
235+
233236

234237
#ifdef UNIX_AMD64_ABI
235238
#define CNT_CALLEE_SAVED (5 + REG_ETW_FRAMED_EBP_COUNT)

0 commit comments

Comments
 (0)