Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Commit e7660e3

Browse files
committed
Make RyuJIT/arm32 the default arm32 JIT
RyuJIT/arm32 JIT is now named clrjit.dll (was named protojit.dll). arm32 LEGACY_BACKEND JIT is now named legacyjit.dll (was named clrjit.dll). Ubuntu and Tizen testing now use RyuJIT/arm32. Tests failing for legacy backend are now excluded with `LEGACYJIT_JITSTRESS_FAIL`, `LEGACYJIT_GCSTRESS_FAIL`, and `LEGACYJIT_FAIL`.
1 parent 802423d commit e7660e3

File tree

7 files changed

+99
-101
lines changed

7 files changed

+99
-101
lines changed

build.cmd

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ set __BuildTests=1
139139
set __BuildPackages=1
140140
set __BuildNativeCoreLib=1
141141
set __RestoreOptData=1
142-
set __AltJitCrossgen=0
142+
set __CrossgenAltJit=
143143

144144
@REM CMD has a nasty habit of eating "=" on the argument list, so passing:
145145
@REM -priority=1
@@ -207,7 +207,10 @@ if /i "%1" == "-enforcepgo" (set __EnforcePgo=1&set processedArgs=!proc
207207
if /i "%1" == "-nopgooptimize" (set __PgoOptimize=0&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
208208
if /i "%1" == "-ibcinstrument" (set __IbcTuning=/Tuning&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
209209
if /i "%1" == "-toolset_dir" (set __ToolsetDir=%2&set __PassThroughArgs=%__PassThroughArgs% %2&set processedArgs=!processedArgs! %1 %2&shift&shift&goto Arg_Loop)
210-
if /i "%1" == "-altjitcrossgen" (set __AltJitCrossgen=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
210+
if /i "%1" == "-crossgenaltjit" (set __CrossgenAltJit=%2&set processedArgs=!processedArgs! %1 %2&shift&shift&goto Arg_Loop)
211+
212+
REM Temporarily eat old -altjitcrossgen flag until CI system is updated.
213+
if /i "%1" == "-altjitcrossgen" (set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
211214

212215
REM TODO these are deprecated remove them eventually
213216
REM don't add more, use the - syntax instead
@@ -629,14 +632,14 @@ if %__BuildNativeCoreLib% EQU 1 (
629632
REM End HACK
630633
)
631634

632-
if %__AltJitCrossgen% EQU 1 (
635+
if defined __CrossgenAltJit (
633636
REM Set altjit flags for the crossgen run. Note that this entire crossgen section is within a setlocal/endlocal scope,
634637
REM so we don't need to save or unset these afterwards.
635-
echo %__MsgPrefix%Setting altjit environment variables.
636-
echo %__MsgPrefix%Setting altjit environment variables. >> "%__CrossGenCoreLibLog%"
638+
echo %__MsgPrefix%Setting altjit environment variables for %__CrossgenAltJit%.
639+
echo %__MsgPrefix%Setting altjit environment variables for %__CrossgenAltJit%. >> "%__CrossGenCoreLibLog%"
637640
set COMPlus_AltJit=*
638641
set COMPlus_AltJitNgen=*
639-
set COMPlus_AltJitName=protojit.dll
642+
set COMPlus_AltJitName=%__CrossgenAltJit%
640643
set COMPlus_AltJitAssertOnNYI=1
641644
set COMPlus_NoGuiOnAssert=1
642645
set COMPlus_ContinueOnAssert=0
@@ -856,7 +859,7 @@ echo -disableoss: Disable Open Source Signing for System.Private.CoreLib.
856859
echo -priority=^<N^> : specify a set of test that will be built and run, with priority N.
857860
echo -officialbuildid=^<ID^>: specify the official build ID to be used by this build.
858861
echo -Rebuild: passes /t:rebuild to the build projects.
859-
echo -altjitcrossgen: run crossgen using altjit ^(used for JIT testing^).
862+
echo -crossgenaltjit ^<JIT dll^>: run crossgen using specified altjit ^(used for JIT testing^).
860863
echo portable : build for portable RID.
861864
echo.
862865
echo If "all" is specified, then all build architectures and types are built. If, in addition,

crosscomponents.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ add_definitions(-DCROSS_COMPILE)
33
set (CLR_CROSS_COMPONENTS_LIST
44
crossgen
55
clrjit
6-
protojit
6+
legacyjit
77
)
88

99
if(NOT CLR_CMAKE_PLATFORM_LINUX)

netci.groovy

Lines changed: 47 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -596,9 +596,6 @@ def static getJobName(def configuration, def architecture, def os, def scenario,
596596
}
597597
break
598598
case 'arm':
599-
baseName = architecture.toLowerCase() + '_cross_' + configuration.toLowerCase() + '_' + os.toLowerCase()
600-
break
601-
case 'armlb':
602599
// These are cross builds
603600
if (os == 'Tizen') {
604601
// ABI: softfp
@@ -608,6 +605,9 @@ def static getJobName(def configuration, def architecture, def os, def scenario,
608605
baseName = architecture.toLowerCase() + '_cross_' + configuration.toLowerCase() + '_' + os.toLowerCase()
609606
}
610607
break
608+
case 'armlb':
609+
baseName = architecture.toLowerCase() + '_cross_' + configuration.toLowerCase() + '_' + os.toLowerCase()
610+
break
611611
case 'x86':
612612
case 'x86_arm_altjit':
613613
case 'x64_arm64_altjit':
@@ -1138,42 +1138,43 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os,
11381138
switch (os) {
11391139
case 'Ubuntu':
11401140
case 'Ubuntu16.04':
1141-
if (architecture == 'armlb') { // Ubuntu arm is only for armlb currently
1142-
assert scenario == 'default'
1143-
job.with {
1144-
publishers {
1145-
azureVMAgentPostBuildAction {
1146-
agentPostBuildAction('Delete agent if the build was not successful (when idle).')
1147-
}
1141+
if (architecture == 'armlb') { // No arm legacy backend testing for Ubuntu
1142+
break
1143+
}
1144+
assert scenario == 'default'
1145+
job.with {
1146+
publishers {
1147+
azureVMAgentPostBuildAction {
1148+
agentPostBuildAction('Delete agent if the build was not successful (when idle).')
11481149
}
11491150
}
1150-
if ((os == 'Ubuntu' && configuration == 'Debug') || (os == 'Ubuntu16.04' && configuration == 'Debug')) {
1151-
Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} Cross ${configuration} Innerloop Build")
1152-
}
1153-
else {
1154-
Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} Cross ${configuration} Build",
1151+
}
1152+
if (configuration == 'Debug') {
1153+
Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} Cross ${configuration} Innerloop Build")
1154+
}
1155+
else {
1156+
Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} Cross ${configuration} Build",
11551157
"(?i).*test\\W+${os}\\W+${architecture}\\W+Cross\\W+${configuration}\\W+Build.*")
1156-
}
11571158
}
11581159
break
11591160
case 'Tizen':
1160-
if (architecture == 'armlb') { // Tizen armel is only for armlb currently
1161-
architecture='armel'
1162-
job.with {
1163-
publishers {
1164-
azureVMAgentPostBuildAction {
1165-
agentPostBuildAction('Delete agent if the build was not successful (when idle).')
1166-
}
1161+
if (architecture == 'armlb') { // No arm legacy backend testing for Tizen armel
1162+
break
1163+
}
1164+
architecture='armel'
1165+
job.with {
1166+
publishers {
1167+
azureVMAgentPostBuildAction {
1168+
agentPostBuildAction('Delete agent if the build was not successful (when idle).')
11671169
}
11681170
}
1169-
// Removing the regex will cause this to run on each PR.
1170-
if (configuration == 'Checked') {
1171-
Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} Cross ${configuration} Innerloop Build and Test")
1172-
}
1173-
else {
1174-
Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} Cross ${configuration} Build",
1171+
}
1172+
if (configuration == 'Checked') {
1173+
Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} Cross ${configuration} Innerloop Build and Test")
1174+
}
1175+
else {
1176+
Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} Cross ${configuration} Build",
11751177
"(?i).*test\\W+${os}\\W+${architecture}\\W+Cross\\W+${configuration}\\W+Build.*")
1176-
}
11771178
}
11781179
break
11791180
case 'Windows_NT':
@@ -1637,11 +1638,11 @@ def static calculateBuildCommands(def newJob, def scenario, def branch, def isPR
16371638

16381639
def buildArchitecture = 'arm'
16391640

1640-
// For 'arm' (the RyuJIT/arm32 architecture), tell build.cmd to use RyuJIT/arm32 for crossgen compilation.
1641-
// RyuJIT/arm32 is currently not the default JIT; it is an aljit. So, this is a special case.
1641+
// For 'armlb' (the JIT LEGACY_BACKEND architecture for arm), tell build.cmd to use legacy backend for crossgen compilation.
1642+
// Legacy backend is not the default JIT; it is an aljit. So, this is a special case.
16421643
def armCrossgenOpt = ''
1643-
if (architecture == 'arm') {
1644-
armCrossgenOpt = '-altjitcrossgen'
1644+
if (architecture == 'armlb') {
1645+
armCrossgenOpt = '-crossgenaltjit legacyjit.dll'
16451646
}
16461647

16471648
// Hack: build pri1 tests for arm/armlb/arm64 build job, until we have separate pri0 and pri1 builds for the flow job to use.
@@ -1775,7 +1776,7 @@ def static calculateBuildCommands(def newJob, def scenario, def branch, def isPR
17751776
Utilities.addArchival(newJob, "bin/Product/**,bin/obj/*/tests/**/*.dylib,bin/obj/*/tests/**/*.so", "bin/Product/**/.nuget/**")
17761777
}
17771778
break
1778-
case 'armlb':
1779+
case 'arm':
17791780
// Cross builds for ARM runs on Ubuntu, Ubuntu16.04 and Tizen currently
17801781
assert (os == 'Ubuntu') || (os == 'Ubuntu16.04') || (os == 'Tizen')
17811782

@@ -1847,8 +1848,8 @@ Constants.allScenarios.each { scenario ->
18471848
os = 'Windows_NT'
18481849
}
18491850

1850-
// Tizen is only supported for arm legacy_backend architecture
1851-
if (os == 'Tizen' && architecture != 'armlb') {
1851+
// Tizen is only supported for arm architecture
1852+
if (os == 'Tizen' && architecture != 'arm') {
18521853
return
18531854
}
18541855

@@ -1864,12 +1865,12 @@ Constants.allScenarios.each { scenario ->
18641865
return
18651866
}
18661867
break
1867-
case 'armlb':
1868+
case 'arm':
18681869
if ((os != 'Ubuntu') && (os != 'Ubuntu16.04') && (os != 'Tizen') && (os != 'Windows_NT')) {
18691870
return
18701871
}
18711872
break
1872-
case 'arm':
1873+
case 'armlb':
18731874
if (os != 'Windows_NT') {
18741875
return
18751876
}
@@ -2077,7 +2078,7 @@ Constants.allScenarios.each { scenario ->
20772078
}
20782079
else {
20792080
// Setup corefx and Windows test binaries for Linux cross build for ubuntu-arm, ubuntu16.04-arm and tizen-armel
2080-
if ( architecture == 'armlb' && ( os == 'Ubuntu' || os == 'Ubuntu16.04' || os == 'Tizen')) {
2081+
if ( architecture == 'arm' && ( os == 'Ubuntu' || os == 'Ubuntu16.04' || os == 'Tizen')) {
20812082
// Cross build for ubuntu-arm, ubuntu16.04-arm and tizen-armel
20822083
// Define the Windows Tests and Corefx build job names
20832084
def WindowTestsName = projectFolder + '/' +
@@ -2549,13 +2550,11 @@ Constants.allScenarios.each { scenario ->
25492550
addEnvVariable("COMPlus_NoGuiOnAssert", "1")
25502551
addEnvVariable("COMPlus_ContinueOnAssert", "0")
25512552

2552-
// Arm(32) ryujit
2553-
if (architecture == "arm") {
2554-
// **This is an AltJit**
2555-
2553+
// ARM legacy backend; this is an altjit.
2554+
if (architecture == "armlb") {
25562555
addEnvVariable("COMPlus_AltJit", "*")
25572556
addEnvVariable("COMPlus_AltJitNgen", "*")
2558-
addEnvVariable("COMPlus_AltJitName", "protojit.dll")
2557+
addEnvVariable("COMPlus_AltJitName", "legacyjit.dll")
25592558
addEnvVariable("COMPlus_AltJitAssertOnNYI", "1")
25602559
}
25612560

@@ -2582,10 +2581,10 @@ Constants.allScenarios.each { scenario ->
25822581
def addSmartyFlag = { flag -> smartyCommand += flag + " "}
25832582
def addExclude = { exclude -> addSmartyFlag("/exc " + exclude)}
25842583

2585-
def addArchSpecificExclude = { architectureToExclude, exclude -> if (architectureToExclude == "arm") { addExclude("PROTOJIT_" + exclude) } else { addExclude(exclude) } }
2584+
def addArchSpecificExclude = { architectureToExclude, exclude -> if (architectureToExclude == "armlb") { addExclude("LEGACYJIT_" + exclude) } else { addExclude(exclude) } }
25862585

2587-
if (architecture == "arm") {
2588-
addExclude("PROTOJIT_FAIL")
2586+
if (architecture == "armlb") {
2587+
addExclude("LEGACYJIT_FAIL")
25892588
}
25902589

25912590
if (isJitStressScenario(scenario) || isR2RStressScenario(scenario)) {

src/jit/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -259,8 +259,8 @@ endif (FEATURE_MERGE_JIT_AND_ENGINE)
259259
add_subdirectory(standalone)
260260

261261
if (CLR_CMAKE_TARGET_ARCH_ARM)
262-
# Build RyuJIT/arm32 protojit to run on both x86 host (crossgen build) and arm host (native).
263-
add_subdirectory(protojit)
262+
# Build arm32 legacy_backend to run on both x86 host (crossgen build) and arm host (native).
263+
add_subdirectory(legacyjit)
264264
endif (CLR_CMAKE_TARGET_ARCH_ARM)
265265

266266
if (CLR_CMAKE_PLATFORM_ARCH_I386 OR CLR_CMAKE_PLATFORM_ARCH_AMD64)

src/jit/legacyjit/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,4 +62,4 @@ target_link_libraries(legacyjit
6262
)
6363

6464
# add the install targets
65-
install_clr(legacyjit)
65+
install_clr(legacyjit)

src/jit/standalone/CMakeLists.txt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,6 @@ if(FEATURE_READYTORUN)
88
add_definitions(-DFEATURE_READYTORUN_COMPILER)
99
endif(FEATURE_READYTORUN)
1010

11-
if(CLR_CMAKE_TARGET_ARCH_ARM)
12-
add_definitions(-DLEGACY_BACKEND)
13-
endif()
14-
1511
if(WIN32)
1612
add_definitions(-DFX_VER_INTERNALNAME_STR=clrjit.dll)
1713
endif(WIN32)

0 commit comments

Comments
 (0)