Skip to content

Commit 296853b

Browse files
AndyAyersMSCopilot
andcommitted
SuperPMI: re-apply JitWasmNyiToR2RUnsupported when ignoring stored config
The asmdiffs-checked-release leg uses -ignoreStoredConfig, which drops the JitWasmNyiToR2RUnsupported=1 setting that crossgen-corelib.proj recorded into the MCH stored config at collection time. The wasm JIT then asserts on unimplemented opcodes (e.g. GT_ASYNC_CONTINUATION) instead of cleanly skipping them as R2R-unsupported. Re-supply the option externally for wasm whenever we pass -ignoreStoredConfig. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent e99ab10 commit 296853b

1 file changed

Lines changed: 11 additions & 0 deletions

File tree

src/coreclr/scripts/superpmi.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2280,6 +2280,17 @@ def replay_with_asm_diffs(self):
22802280
# two Release compilers, so this is safest.
22812281
flags += [ "-ignoreStoredConfig" ]
22822282

2283+
# `-ignoreStoredConfig` drops any codegenopt the collection recorded into the
2284+
# MCH stored config. For wasm we need to re-supply
2285+
# `JitWasmNyiToR2RUnsupported=1` (set by crossgen-corelib.proj during collection)
2286+
# so that unimplemented opcodes turn into R2R-unsupported skips rather than
2287+
# asserts. FIXME: remove once wasm codegen covers all cases.
2288+
if self.coreclr_args.target_arch == "wasm":
2289+
flags += [
2290+
"-jitoption", "force", "JitWasmNyiToR2RUnsupported=1",
2291+
"-jit2option", "force", "JitWasmNyiToR2RUnsupported=1"
2292+
]
2293+
22832294
# Change the working directory to the Core_Root we will call SuperPMI from.
22842295
# This is done to allow libcoredistools to be loaded correctly on unix
22852296
# as the loadlibrary path will be relative to the current directory.

0 commit comments

Comments
 (0)