Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JIT: Support storing Swift error register value to SwiftError struct #98586

Merged
merged 39 commits into from
Feb 26, 2024

Conversation

amanasifkhalid
Copy link
Member

Adds JIT support for storing the error result of a Swift call to the provided SwiftError struct, assuming the caller passed a SwiftError* argument. The LSRA changes assume the presence of a SwiftError* argument in a Swift call indicates the error register may be trashed, and thus should be killed until consumed by GT_SWIFT_ERROR, a new GenTree node for representing the value of the error register post-Swift call. Similarly, these changes also assume the lack of a SwiftError* argument indicates the Swift call cannot throw, and thus will not trash the error register; thus, the Swift call should not block the register's usage.

cc @jakobbotsch @kotlarmilos @jkoritzinsky

@ghost ghost assigned amanasifkhalid Feb 16, 2024
@dotnet-issue-labeler dotnet-issue-labeler bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Feb 16, 2024
@ghost
Copy link

ghost commented Feb 16, 2024

Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch
See info in area-owners.md if you want to be subscribed.

Issue Details

Adds JIT support for storing the error result of a Swift call to the provided SwiftError struct, assuming the caller passed a SwiftError* argument. The LSRA changes assume the presence of a SwiftError* argument in a Swift call indicates the error register may be trashed, and thus should be killed until consumed by GT_SWIFT_ERROR, a new GenTree node for representing the value of the error register post-Swift call. Similarly, these changes also assume the lack of a SwiftError* argument indicates the Swift call cannot throw, and thus will not trash the error register; thus, the Swift call should not block the register's usage.

cc @jakobbotsch @kotlarmilos @jkoritzinsky

Author: amanasifkhalid
Assignees: amanasifkhalid
Labels:

area-CodeGen-coreclr

Milestone: -

@amanasifkhalid
Copy link
Member Author

amanasifkhalid commented Feb 16, 2024

The Swift error handling tests are passing locally for me on win-x64. Here's a disassembly of the call to conditionallyThrowError in ErrorHandlingTests:TestSwiftErrorThrown on x64:

       ; zero out the error reg, and call into Swift
       xor      r12d, r12d
       call     [ErrorHandlingTests:conditionallyThrowError(int,ulong):long]

       ; PInvoke epilog
       mov      rcx, qword ptr [rbp-0x70]
       mov      byte  ptr [rcx+0x0C], 1
       cmp      dword ptr [(reloc 0x7ffe4bed8370)], 0
       je       SHORT G_M30170_IG05
       call     [CORINFO_HELP_STOP_FOR_GC]

G_M30170_IG05:
       ; Store the error reg into the SwiftError struct, then retrieve it
       mov      rcx, qword ptr [rbp-0x70]
       mov      rdx, bword ptr [rbp-0xB8]
       mov      qword ptr [rcx+0x10], rdx
       mov      qword ptr [rbp-0x60], rax
       mov      rax, qword ptr [rbp-0x58]
       mov      qword ptr [rax], r12
       lea      rcx, [rbp-0x40]
       call     [System.Runtime.InteropServices.Swift.SwiftError:get_Value():ulong:this]

@jakobbotsch is there a way to run the arm64_x64 JIT as an altjit, and get it to print its disasm on x64? I recall seeing you do something like this in a demo...

@@ -441,6 +441,12 @@ void CodeGen::genCodeForTreeNode(GenTree* treeNode)
break;
#endif // TARGET_ARM64

#ifdef SWIFT_SUPPORT
case GT_SWIFT_ERROR:
treeNode->SetRegNum(REG_SWIFT_ERROR);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be implemented similarly to genCodeForPhysReg (in particular genProduceReg needs to be called)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not wholly relevant, but is there a reason why the platform-agnostic implementation of genCodeForPhysReg is in codegenxarch.cpp?

Copy link
Member

@jakobbotsch jakobbotsch Feb 16, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think so, seems like it could be in codegencommon.cpp or codegenlinear.cpp instead.

Copy link
Member Author

@amanasifkhalid amanasifkhalid Feb 16, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can move it in this PR if you think it makes sense to

Edit: Sorry never mind, my IDE's search function wasn't showing me the ARM-specific implementation; all the implementations seem to be in the right place

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, the two implementations are identical, so I still think they could be unified in a common file. But probably best to leave it alone since RISCV64/LA64 might break from such a refactoring.

@@ -2107,6 +2107,12 @@ void CodeGen::genCodeForTreeNode(GenTree* treeNode)
case GT_NOP:
break;

#ifdef SWIFT_SUPPORT
case GT_SWIFT_ERROR:
treeNode->SetRegNum(REG_SWIFT_ERROR);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ditto.

Comment on lines 675 to 723
#ifdef SWIFT_SUPPORT
// We are importing an unmanaged Swift call, which might require special parameter handling:
// - SwiftError* is passed to capture the address of an error thrown during the Swift call.
if (call->AsCall()->unmgdCallConv == CorInfoCallConvExtension::Swift)
{
// Check the signature of the Swift call for the special types.
CORINFO_ARG_LIST_HANDLE sigArg = sig->args;

for (unsigned short argIndex = 0; argIndex < sig->numArgs;
sigArg = info.compCompHnd->getArgNext(sigArg), argIndex++)
{
CORINFO_CLASS_HANDLE argClass;
CorInfoType argType = strip(info.compCompHnd->getArgType(sig, sigArg, &argClass));
bool argIsByrefOrPtr = false;

if ((argType == CORINFO_TYPE_BYREF) || (argType == CORINFO_TYPE_PTR))
{
argClass = info.compCompHnd->getArgClass(sig, sigArg);
argType = info.compCompHnd->getChildType(argClass, &argClass);
argIsByrefOrPtr = true;
}

impPopArgsForUnmanagedCall(call->AsCall(), sig);
if ((argType != CORINFO_TYPE_VALUECLASS) || !info.compCompHnd->isIntrinsicType(argClass))
{
continue;
}

const char* namespaceName;
const char* className = info.compCompHnd->getClassNameFromMetadata(argClass, &namespaceName);

if ((strcmp(className, "SwiftError") == 0) &&
(strcmp(namespaceName, "System.Runtime.InteropServices.Swift") == 0))
{
// For error handling purposes, we expect a pointer to a SwiftError to be passed
assert(argIsByrefOrPtr);
if (swiftErrorIndex != -1)
{
BADCODE("Duplicate SwiftError* parameter");
}

swiftErrorIndex = argIndex;
spillAllArgs = true;
}
// TODO: Handle SwiftSelf, SwiftAsync
}
}
#endif // SWIFT_SUPPORT

impPopArgsForUnmanagedCall(call->AsCall(), sig, spillAllArgs);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would be better to move all of this handling into impPopArgsForUnmanagedCall.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wanted to do that initially, but I'm not sure what the best way is to communicate which CallArgs correspond to special Swift types back to impImportCall. Are you ok with impPopArgsForUnmanagedCall having some out params that are only used in the Swift case?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I think that sounds just fine.

amanasifkhalid and others added 2 commits February 16, 2024 18:32
Co-authored-by: Jakob Botsch Nielsen <Jakob.botsch.nielsen@gmail.com>
Co-authored-by: Jakob Botsch Nielsen <Jakob.botsch.nielsen@gmail.com>
Comment on lines 1565 to 1567
GenTree* argNodeCopy = gtNewLclvNode(argNode->AsLclVar()->GetLclNum(), argNode->TypeGet());
GenTreeStoreInd* swiftErrorStore = gtNewStoreIndNode(argNodeCopy->TypeGet(), argNodeCopy, errorRegNode);
impAppendTree(swiftErrorStore, CHECK_SPILL_ALL, impCurStmtDI, false);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
GenTree* argNodeCopy = gtNewLclvNode(argNode->AsLclVar()->GetLclNum(), argNode->TypeGet());
GenTreeStoreInd* swiftErrorStore = gtNewStoreIndNode(argNodeCopy->TypeGet(), argNodeCopy, errorRegNode);
impAppendTree(swiftErrorStore, CHECK_SPILL_ALL, impCurStmtDI, false);
GenTreeStoreInd* swiftErrorStore = gtNewStoreIndNode(argNodeCopy->TypeGet(), argNode, errorRegNode);
impAppendTree(swiftErrorStore, CHECK_SPILL_ALL, impCurStmtDI, false);
call->AsCall()->gtArgs.Remove(errorArg);

// Indicate the error register will be checked after this call returns
call->AsCall()->gtCallMoreFlags |= GTF_CALL_M_SWIFT_ERROR_HANDLING;
}
#endif // SWIFT_SUPPORT
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps introduce a method for this just to avoid growing impImportCall even more

// the register can be used again only if there is a GT_SWIFT_ERROR node to consume it
// (i.e. the register's value is saved to a SwiftError)
addRefsForPhysRegMask(RBM_SWIFT_ERROR, currentLoc, RefTypeKill, true);
BuildDef(tree, RBM_SWIFT_ERROR);
Copy link
Member

@jakobbotsch jakobbotsch Feb 16, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

RBM_SWIFT_ERROR as the candidate set here is strictly speaking not necessary, but it might produce better code (no change needed).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you elaborate on how we could do this differently, and why this might produce better code, please? I got this from your async2 prototype.

Copy link
Member

@jakobbotsch jakobbotsch Feb 17, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The candidate set here is saying that the GT_SWIFT_ERROR node itself always needs r12 as its destination register. But in reality any assignment picked by LSRA is fine for the GT_SWIFT_ERROR node's value -- it just means that we have to insert a copy from r12 into the register that LSRA picked when we generate the GT_SWIFT_ERROR node (that's exactly what genCodeForPhysReg is doing).
The codegen might be better because requiring LSRA to pick r12 means we can always skip that copy during codegen. Normally LSRA utilizes various preferencing heuristics to try to make this the case, even without specifying a "hard" requirement on the destination candidates, but nothing here is communicating this preference to LSRA. I think you could do that instead by:

BuildDef(tree)->getInterval()->mergeRegisterPreferences(RBM_SWIFT_ERROR);

It would be slightly more faithful to the actual constraints we're dealing with here, but I don't think it necessitates a change (in particular since we ensure that r12 is busy until the point of the def we know it's going to be available to assign).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see, thanks for the explanation! I'll update the comment to clarify this decision.

killMask |= RBM_SWIFT_ERROR;
}
#endif // SWIFT_SUPPORT

return killMask;
}

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We still need something that marks the swift error register as busy-until-next-kill when we see get to the appropriate ref position during allocation itself. For async2 I did that by adding a busyUntilNextKill bit on RefPosition

@jakobbotsch
Copy link
Member

@jakobbotsch is there a way to run the arm64_x64 JIT as an altjit, and get it to print its disasm on x64? I recall seeing you do something like this in a demo...

If you set

DOTNET_JitDisasm=MethodName
DOTNET_AltJit=MethodName
DOTNET_AltJitName=clrjit_universal_arm64_x64.dll

you should see arm64 disassembly.

@jakobbotsch
Copy link
Member

The Swift error handling tests are passing locally for me on win-x64. Here's a disassembly of the call to conditionallyThrowError in ErrorHandlingTests:TestSwiftErrorThrown on x64:

       ; zero out the error reg, and call into Swift
       xor      r12d, r12d
       call     [ErrorHandlingTests:conditionallyThrowError(int,ulong):long]

       ; PInvoke epilog
       mov      rcx, qword ptr [rbp-0x70]
       mov      byte  ptr [rcx+0x0C], 1
       cmp      dword ptr [(reloc 0x7ffe4bed8370)], 0
       je       SHORT G_M30170_IG05
       call     [CORINFO_HELP_STOP_FOR_GC]

G_M30170_IG05:
       ; Store the error reg into the SwiftError struct, then retrieve it
       mov      rcx, qword ptr [rbp-0x70]
       mov      rdx, bword ptr [rbp-0xB8]
       mov      qword ptr [rcx+0x10], rdx
       mov      qword ptr [rbp-0x60], rax
       mov      rax, qword ptr [rbp-0x58]
       mov      qword ptr [rax], r12
       lea      rcx, [rbp-0x40]
       call     [System.Runtime.InteropServices.Swift.SwiftError:get_Value():ulong:this]

I'm still a bit worried that we're going to accidentally unmark r12 as busy between the GT_CALL and GT_SWIFT_ERROR. On the other hand r12 is a callee save, so I don't see how that would happen. But we are kind of repurposing regsBusyUntilKill here, so we may be surprised...
If we end up hitting some problems around this we can reorder the SWIFT_ERROR with the pinvoke epilog, however that may itself be problematic if the STOREIND is to managed byref, so we would need to introduce a local during lowering in that case.

@ryujit-bot
Copy link

Diff results for #98586

Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.02% to +0.01%)
Collection PDIFF
benchmarks.run_pgo.linux.arm64.checked.mch -0.02%
libraries.crossgen2.linux.arm64.checked.mch +0.01%
realworld.run.linux.arm64.checked.mch -0.01%
libraries_tests.run.linux.arm64.Release.mch -0.01%
libraries.pmi.linux.arm64.checked.mch -0.01%
benchmarks.run.linux.arm64.checked.mch -0.01%
coreclr_tests.run.linux.arm64.checked.mch -0.01%
smoke_tests.nativeaot.linux.arm64.checked.mch -0.01%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch -0.01%
benchmarks.run_tiered.linux.arm64.checked.mch -0.01%
MinOpts (-0.04% to +0.04%)
Collection PDIFF
benchmarks.run_pgo.linux.arm64.checked.mch -0.01%
libraries.pmi.linux.arm64.checked.mch -0.04%
benchmarks.run.linux.arm64.checked.mch -0.01%
coreclr_tests.run.linux.arm64.checked.mch -0.01%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.04%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch -0.03%
benchmarks.run_tiered.linux.arm64.checked.mch -0.01%
FullOpts (-0.02% to +0.01%)
Collection PDIFF
benchmarks.run_pgo.linux.arm64.checked.mch -0.02%
libraries.crossgen2.linux.arm64.checked.mch +0.01%
realworld.run.linux.arm64.checked.mch -0.01%
libraries_tests.run.linux.arm64.Release.mch -0.02%
libraries.pmi.linux.arm64.checked.mch -0.01%
benchmarks.run.linux.arm64.checked.mch -0.01%
smoke_tests.nativeaot.linux.arm64.checked.mch -0.01%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch -0.01%
benchmarks.run_tiered.linux.arm64.checked.mch -0.01%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.00% to +0.02%)
Collection PDIFF
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.01%
benchmarks.run.linux.x64.checked.mch +0.01%
libraries.pmi.linux.x64.checked.mch +0.01%
realworld.run.linux.x64.checked.mch +0.01%
smoke_tests.nativeaot.linux.x64.checked.mch +0.01%
libraries.crossgen2.linux.x64.checked.mch +0.02%
MinOpts (-0.02% to +0.03%)
Collection PDIFF
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch -0.02%
benchmarks.run.linux.x64.checked.mch -0.01%
libraries.pmi.linux.x64.checked.mch -0.01%
libraries_tests.run.linux.x64.Release.mch -0.01%
benchmarks.run_pgo.linux.x64.checked.mch -0.02%
realworld.run.linux.x64.checked.mch -0.01%
coreclr_tests.run.linux.x64.checked.mch -0.02%
benchmarks.run_tiered.linux.x64.checked.mch -0.02%
smoke_tests.nativeaot.linux.x64.checked.mch +0.03%
libraries.crossgen2.linux.x64.checked.mch -0.01%
FullOpts (+0.00% to +0.02%)
Collection PDIFF
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.01%
benchmarks.run.linux.x64.checked.mch +0.01%
libraries.pmi.linux.x64.checked.mch +0.01%
realworld.run.linux.x64.checked.mch +0.01%
coreclr_tests.run.linux.x64.checked.mch +0.02%
benchmarks.run_tiered.linux.x64.checked.mch +0.01%
smoke_tests.nativeaot.linux.x64.checked.mch +0.01%
libraries.crossgen2.linux.x64.checked.mch +0.02%

Details here


Throughput diffs for linux/arm64 ran on windows/x64

Overall (+0.04% to +0.05%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch +0.04%
benchmarks.run_pgo.linux.arm64.checked.mch +0.04%
benchmarks.run_tiered.linux.arm64.checked.mch +0.05%
coreclr_tests.run.linux.arm64.checked.mch +0.05%
libraries.crossgen2.linux.arm64.checked.mch +0.04%
libraries.pmi.linux.arm64.checked.mch +0.04%
libraries_tests.run.linux.arm64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.04%
realworld.run.linux.arm64.checked.mch +0.04%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.04%
MinOpts (+0.05% to +0.09%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch +0.06%
benchmarks.run_pgo.linux.arm64.checked.mch +0.07%
benchmarks.run_tiered.linux.arm64.checked.mch +0.06%
coreclr_tests.run.linux.arm64.checked.mch +0.05%
libraries.crossgen2.linux.arm64.checked.mch +0.06%
libraries.pmi.linux.arm64.checked.mch +0.06%
libraries_tests.run.linux.arm64.Release.mch +0.07%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.06%
realworld.run.linux.arm64.checked.mch +0.08%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.09%
FullOpts (+0.03% to +0.05%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch +0.04%
benchmarks.run_pgo.linux.arm64.checked.mch +0.03%
benchmarks.run_tiered.linux.arm64.checked.mch +0.04%
coreclr_tests.run.linux.arm64.checked.mch +0.05%
libraries.crossgen2.linux.arm64.checked.mch +0.04%
libraries.pmi.linux.arm64.checked.mch +0.04%
libraries_tests.run.linux.arm64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.04%
realworld.run.linux.arm64.checked.mch +0.04%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.04%

Throughput diffs for linux/x64 ran on windows/x64

Overall (+0.03% to +0.04%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.03%
benchmarks.run_pgo.linux.x64.checked.mch +0.03%
benchmarks.run_tiered.linux.x64.checked.mch +0.03%
coreclr_tests.run.linux.x64.checked.mch +0.04%
libraries.crossgen2.linux.x64.checked.mch +0.03%
libraries.pmi.linux.x64.checked.mch +0.03%
libraries_tests.run.linux.x64.Release.mch +0.03%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.03%
realworld.run.linux.x64.checked.mch +0.03%
smoke_tests.nativeaot.linux.x64.checked.mch +0.03%
MinOpts (+0.03% to +0.04%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.03%
benchmarks.run_pgo.linux.x64.checked.mch +0.04%
benchmarks.run_tiered.linux.x64.checked.mch +0.03%
coreclr_tests.run.linux.x64.checked.mch +0.03%
libraries.crossgen2.linux.x64.checked.mch +0.03%
libraries.pmi.linux.x64.checked.mch +0.04%
libraries_tests.run.linux.x64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.03%
realworld.run.linux.x64.checked.mch +0.03%
smoke_tests.nativeaot.linux.x64.checked.mch +0.04%
FullOpts (+0.03% to +0.05%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.03%
benchmarks.run_pgo.linux.x64.checked.mch +0.03%
benchmarks.run_tiered.linux.x64.checked.mch +0.03%
coreclr_tests.run.linux.x64.checked.mch +0.05%
libraries.crossgen2.linux.x64.checked.mch +0.03%
libraries.pmi.linux.x64.checked.mch +0.03%
libraries_tests.run.linux.x64.Release.mch +0.03%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.03%
realworld.run.linux.x64.checked.mch +0.03%
smoke_tests.nativeaot.linux.x64.checked.mch +0.03%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (+0.04% to +0.05%)
Collection PDIFF
benchmarks.run.osx.arm64.checked.mch +0.04%
benchmarks.run_pgo.osx.arm64.checked.mch +0.04%
benchmarks.run_tiered.osx.arm64.checked.mch +0.05%
coreclr_tests.run.osx.arm64.checked.mch +0.05%
libraries.crossgen2.osx.arm64.checked.mch +0.04%
libraries.pmi.osx.arm64.checked.mch +0.04%
libraries_tests.run.osx.arm64.Release.mch +0.05%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch +0.04%
realworld.run.osx.arm64.checked.mch +0.04%
MinOpts (+0.05% to +0.07%)
Collection PDIFF
benchmarks.run.osx.arm64.checked.mch +0.05%
benchmarks.run_pgo.osx.arm64.checked.mch +0.06%
benchmarks.run_tiered.osx.arm64.checked.mch +0.06%
coreclr_tests.run.osx.arm64.checked.mch +0.05%
libraries.crossgen2.osx.arm64.checked.mch +0.06%
libraries.pmi.osx.arm64.checked.mch +0.05%
libraries_tests.run.osx.arm64.Release.mch +0.07%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch +0.06%
realworld.run.osx.arm64.checked.mch +0.07%
FullOpts (+0.04% to +0.06%)
Collection PDIFF
benchmarks.run.osx.arm64.checked.mch +0.04%
benchmarks.run_pgo.osx.arm64.checked.mch +0.04%
benchmarks.run_tiered.osx.arm64.checked.mch +0.04%
coreclr_tests.run.osx.arm64.checked.mch +0.06%
libraries.crossgen2.osx.arm64.checked.mch +0.04%
libraries.pmi.osx.arm64.checked.mch +0.04%
libraries_tests.run.osx.arm64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch +0.04%
realworld.run.osx.arm64.checked.mch +0.04%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (+0.04% to +0.05%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch +0.04%
benchmarks.run_pgo.windows.arm64.checked.mch +0.04%
benchmarks.run_tiered.windows.arm64.checked.mch +0.05%
coreclr_tests.run.windows.arm64.checked.mch +0.05%
libraries.crossgen2.windows.arm64.checked.mch +0.04%
libraries.pmi.windows.arm64.checked.mch +0.04%
libraries_tests.run.windows.arm64.Release.mch +0.05%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch +0.04%
realworld.run.windows.arm64.checked.mch +0.04%
smoke_tests.nativeaot.windows.arm64.checked.mch +0.04%
MinOpts (+0.05% to +0.09%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch +0.05%
benchmarks.run_pgo.windows.arm64.checked.mch +0.06%
benchmarks.run_tiered.windows.arm64.checked.mch +0.06%
coreclr_tests.run.windows.arm64.checked.mch +0.05%
libraries.crossgen2.windows.arm64.checked.mch +0.06%
libraries.pmi.windows.arm64.checked.mch +0.06%
libraries_tests.run.windows.arm64.Release.mch +0.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch +0.06%
realworld.run.windows.arm64.checked.mch +0.08%
smoke_tests.nativeaot.windows.arm64.checked.mch +0.09%
FullOpts (+0.03% to +0.05%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch +0.04%
benchmarks.run_pgo.windows.arm64.checked.mch +0.03%
benchmarks.run_tiered.windows.arm64.checked.mch +0.04%
coreclr_tests.run.windows.arm64.checked.mch +0.05%
libraries.crossgen2.windows.arm64.checked.mch +0.04%
libraries.pmi.windows.arm64.checked.mch +0.04%
libraries_tests.run.windows.arm64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch +0.04%
realworld.run.windows.arm64.checked.mch +0.04%
smoke_tests.nativeaot.windows.arm64.checked.mch +0.04%

Throughput diffs for windows/x64 ran on windows/x64

Overall (+0.04% to +0.05%)
Collection PDIFF
benchmarks.run.windows.x64.checked.mch +0.04%
benchmarks.run_pgo.windows.x64.checked.mch +0.04%
benchmarks.run_tiered.windows.x64.checked.mch +0.05%
coreclr_tests.run.windows.x64.checked.mch +0.05%
libraries.crossgen2.windows.x64.checked.mch +0.04%
libraries.pmi.windows.x64.checked.mch +0.04%
libraries_tests.run.windows.x64.Release.mch +0.05%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch +0.04%
realworld.run.windows.x64.checked.mch +0.04%
smoke_tests.nativeaot.windows.x64.checked.mch +0.04%
MinOpts (+0.05% to +0.08%)
Collection PDIFF
benchmarks.run.windows.x64.checked.mch +0.06%
benchmarks.run_pgo.windows.x64.checked.mch +0.07%
benchmarks.run_tiered.windows.x64.checked.mch +0.06%
coreclr_tests.run.windows.x64.checked.mch +0.05%
libraries.crossgen2.windows.x64.checked.mch +0.05%
libraries.pmi.windows.x64.checked.mch +0.06%
libraries_tests.run.windows.x64.Release.mch +0.07%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch +0.06%
realworld.run.windows.x64.checked.mch +0.08%
smoke_tests.nativeaot.windows.x64.checked.mch +0.08%
FullOpts (+0.03% to +0.06%)
Collection PDIFF
benchmarks.run.windows.x64.checked.mch +0.04%
benchmarks.run_pgo.windows.x64.checked.mch +0.03%
benchmarks.run_tiered.windows.x64.checked.mch +0.04%
coreclr_tests.run.windows.x64.checked.mch +0.06%
libraries.crossgen2.windows.x64.checked.mch +0.04%
libraries.pmi.windows.x64.checked.mch +0.04%
libraries_tests.run.windows.x64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch +0.04%
realworld.run.windows.x64.checked.mch +0.04%
smoke_tests.nativeaot.windows.x64.checked.mch +0.04%

Details here


Copy link
Member

@jakobbotsch jakobbotsch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@ryujit-bot
Copy link

Diff results for #98586

Throughput diffs

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.00% to +0.02%)
Collection PDIFF
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.01%
benchmarks.run.linux.x64.checked.mch +0.01%
libraries.pmi.linux.x64.checked.mch +0.01%
realworld.run.linux.x64.checked.mch +0.01%
smoke_tests.nativeaot.linux.x64.checked.mch +0.01%
libraries.crossgen2.linux.x64.checked.mch +0.02%
MinOpts (-0.02% to +0.03%)
Collection PDIFF
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch -0.02%
benchmarks.run.linux.x64.checked.mch -0.01%
libraries.pmi.linux.x64.checked.mch -0.01%
libraries_tests.run.linux.x64.Release.mch -0.01%
benchmarks.run_pgo.linux.x64.checked.mch -0.02%
realworld.run.linux.x64.checked.mch -0.01%
coreclr_tests.run.linux.x64.checked.mch -0.02%
benchmarks.run_tiered.linux.x64.checked.mch -0.02%
smoke_tests.nativeaot.linux.x64.checked.mch +0.03%
libraries.crossgen2.linux.x64.checked.mch -0.01%
FullOpts (+0.00% to +0.02%)
Collection PDIFF
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.01%
benchmarks.run.linux.x64.checked.mch +0.01%
libraries.pmi.linux.x64.checked.mch +0.01%
realworld.run.linux.x64.checked.mch +0.01%
coreclr_tests.run.linux.x64.checked.mch +0.02%
benchmarks.run_tiered.linux.x64.checked.mch +0.01%
smoke_tests.nativeaot.linux.x64.checked.mch +0.01%
libraries.crossgen2.linux.x64.checked.mch +0.02%

Details here


Throughput diffs for linux/arm64 ran on windows/x64

Overall (+0.04% to +0.05%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch +0.04%
benchmarks.run_pgo.linux.arm64.checked.mch +0.04%
benchmarks.run_tiered.linux.arm64.checked.mch +0.05%
coreclr_tests.run.linux.arm64.checked.mch +0.05%
libraries.crossgen2.linux.arm64.checked.mch +0.04%
libraries.pmi.linux.arm64.checked.mch +0.04%
libraries_tests.run.linux.arm64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.04%
realworld.run.linux.arm64.checked.mch +0.04%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.04%
MinOpts (+0.05% to +0.09%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch +0.06%
benchmarks.run_pgo.linux.arm64.checked.mch +0.07%
benchmarks.run_tiered.linux.arm64.checked.mch +0.06%
coreclr_tests.run.linux.arm64.checked.mch +0.05%
libraries.crossgen2.linux.arm64.checked.mch +0.06%
libraries.pmi.linux.arm64.checked.mch +0.06%
libraries_tests.run.linux.arm64.Release.mch +0.07%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.06%
realworld.run.linux.arm64.checked.mch +0.08%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.09%
FullOpts (+0.03% to +0.05%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch +0.04%
benchmarks.run_pgo.linux.arm64.checked.mch +0.03%
benchmarks.run_tiered.linux.arm64.checked.mch +0.04%
coreclr_tests.run.linux.arm64.checked.mch +0.05%
libraries.crossgen2.linux.arm64.checked.mch +0.04%
libraries.pmi.linux.arm64.checked.mch +0.04%
libraries_tests.run.linux.arm64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.04%
realworld.run.linux.arm64.checked.mch +0.04%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.04%

Throughput diffs for linux/x64 ran on windows/x64

Overall (+0.03% to +0.04%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.03%
benchmarks.run_pgo.linux.x64.checked.mch +0.03%
benchmarks.run_tiered.linux.x64.checked.mch +0.03%
coreclr_tests.run.linux.x64.checked.mch +0.04%
libraries.crossgen2.linux.x64.checked.mch +0.03%
libraries.pmi.linux.x64.checked.mch +0.03%
libraries_tests.run.linux.x64.Release.mch +0.03%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.03%
realworld.run.linux.x64.checked.mch +0.03%
smoke_tests.nativeaot.linux.x64.checked.mch +0.03%
MinOpts (+0.03% to +0.04%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.03%
benchmarks.run_pgo.linux.x64.checked.mch +0.04%
benchmarks.run_tiered.linux.x64.checked.mch +0.03%
coreclr_tests.run.linux.x64.checked.mch +0.03%
libraries.crossgen2.linux.x64.checked.mch +0.03%
libraries.pmi.linux.x64.checked.mch +0.04%
libraries_tests.run.linux.x64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.03%
realworld.run.linux.x64.checked.mch +0.03%
smoke_tests.nativeaot.linux.x64.checked.mch +0.04%
FullOpts (+0.03% to +0.05%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.03%
benchmarks.run_pgo.linux.x64.checked.mch +0.03%
benchmarks.run_tiered.linux.x64.checked.mch +0.03%
coreclr_tests.run.linux.x64.checked.mch +0.05%
libraries.crossgen2.linux.x64.checked.mch +0.03%
libraries.pmi.linux.x64.checked.mch +0.03%
libraries_tests.run.linux.x64.Release.mch +0.03%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.03%
realworld.run.linux.x64.checked.mch +0.03%
smoke_tests.nativeaot.linux.x64.checked.mch +0.03%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (+0.04% to +0.05%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch +0.04%
benchmarks.run_pgo.windows.arm64.checked.mch +0.04%
benchmarks.run_tiered.windows.arm64.checked.mch +0.05%
coreclr_tests.run.windows.arm64.checked.mch +0.05%
libraries.crossgen2.windows.arm64.checked.mch +0.04%
libraries.pmi.windows.arm64.checked.mch +0.04%
libraries_tests.run.windows.arm64.Release.mch +0.05%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch +0.04%
realworld.run.windows.arm64.checked.mch +0.04%
smoke_tests.nativeaot.windows.arm64.checked.mch +0.04%
MinOpts (+0.05% to +0.09%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch +0.05%
benchmarks.run_pgo.windows.arm64.checked.mch +0.06%
benchmarks.run_tiered.windows.arm64.checked.mch +0.06%
coreclr_tests.run.windows.arm64.checked.mch +0.05%
libraries.crossgen2.windows.arm64.checked.mch +0.06%
libraries.pmi.windows.arm64.checked.mch +0.06%
libraries_tests.run.windows.arm64.Release.mch +0.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch +0.06%
realworld.run.windows.arm64.checked.mch +0.08%
smoke_tests.nativeaot.windows.arm64.checked.mch +0.09%
FullOpts (+0.03% to +0.05%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch +0.04%
benchmarks.run_pgo.windows.arm64.checked.mch +0.03%
benchmarks.run_tiered.windows.arm64.checked.mch +0.04%
coreclr_tests.run.windows.arm64.checked.mch +0.05%
libraries.crossgen2.windows.arm64.checked.mch +0.04%
libraries.pmi.windows.arm64.checked.mch +0.04%
libraries_tests.run.windows.arm64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch +0.04%
realworld.run.windows.arm64.checked.mch +0.04%
smoke_tests.nativeaot.windows.arm64.checked.mch +0.04%

Throughput diffs for windows/x64 ran on windows/x64

Overall (+0.04% to +0.05%)
Collection PDIFF
benchmarks.run.windows.x64.checked.mch +0.04%
benchmarks.run_pgo.windows.x64.checked.mch +0.04%
benchmarks.run_tiered.windows.x64.checked.mch +0.05%
coreclr_tests.run.windows.x64.checked.mch +0.05%
libraries.crossgen2.windows.x64.checked.mch +0.04%
libraries.pmi.windows.x64.checked.mch +0.04%
libraries_tests.run.windows.x64.Release.mch +0.05%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch +0.04%
realworld.run.windows.x64.checked.mch +0.04%
smoke_tests.nativeaot.windows.x64.checked.mch +0.04%
MinOpts (+0.05% to +0.08%)
Collection PDIFF
benchmarks.run.windows.x64.checked.mch +0.06%
benchmarks.run_pgo.windows.x64.checked.mch +0.07%
benchmarks.run_tiered.windows.x64.checked.mch +0.06%
coreclr_tests.run.windows.x64.checked.mch +0.05%
libraries.crossgen2.windows.x64.checked.mch +0.05%
libraries.pmi.windows.x64.checked.mch +0.06%
libraries_tests.run.windows.x64.Release.mch +0.07%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch +0.06%
realworld.run.windows.x64.checked.mch +0.08%
smoke_tests.nativeaot.windows.x64.checked.mch +0.08%
FullOpts (+0.03% to +0.06%)
Collection PDIFF
benchmarks.run.windows.x64.checked.mch +0.04%
benchmarks.run_pgo.windows.x64.checked.mch +0.03%
benchmarks.run_tiered.windows.x64.checked.mch +0.04%
coreclr_tests.run.windows.x64.checked.mch +0.06%
libraries.crossgen2.windows.x64.checked.mch +0.04%
libraries.pmi.windows.x64.checked.mch +0.04%
libraries_tests.run.windows.x64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch +0.04%
realworld.run.windows.x64.checked.mch +0.04%
smoke_tests.nativeaot.windows.x64.checked.mch +0.04%

Details here


@amanasifkhalid
Copy link
Member Author

@jakobbotsch thanks for all the reviews! @kotlarmilos should we fix and enable the error handling tests in another PR?

Copy link
Member

@kunalspathak kunalspathak left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LSRA changes LGTM except we should use setDelayFree() which tracks the pendingDelayFree bit.

RegRecord* swiftErrorRegRec = getRegisterRecord(REG_SWIFT_ERROR);
RefPosition* pos = swiftErrorRegRec->lastRefPosition;
assert(pos != nullptr);
assert(pos->refType = RefTypeKill);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
assert(pos->refType = RefTypeKill);
assert(pos->refType == RefTypeKill);

// We could use RefTypeKill, but RefTypeFixedReg is used less commonly, so the check for delayRegFree
// during register allocation should be cheaper in terms of TP.
RefPosition* pos = newRefPosition(REG_SWIFT_ERROR, currentLoc, RefTypeFixedReg, call, RBM_SWIFT_ERROR);
pos->delayRegFree = true;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
pos->delayRegFree = true;
setDelayFree(pos);

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

likewise in lsraarmarch.cpp

@kotlarmilos
Copy link
Member

@kotlarmilos should we fix and enable the error handling tests in another PR?

I would try to add a Swift function that releases the memory and a corresponding P/Invoke declaration. If the issue persists, feel free to proceed and we will fix it in a subsequent PR.

@kotlarmilos kotlarmilos self-requested a review February 22, 2024 15:38
Copy link
Member

@kotlarmilos kotlarmilos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@amanasifkhalid
Copy link
Member Author

I would try to add a Swift function that releases the memory and a corresponding P/Invoke declaration. If the issue persists, feel free to proceed and we will fix it in a subsequent PR.

I added a Swift method for deallocating the string. @kotlarmilos do you know how I can get the mangled name of this method on Windows? I'm afraid I don't have access to a Mac right now.

@ryujit-bot
Copy link

Diff results for #98586

Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.02% to +0.01%)
Collection PDIFF
benchmarks.run_pgo.linux.arm64.checked.mch -0.02%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch -0.01%
libraries.pmi.linux.arm64.checked.mch -0.01%
libraries_tests.run.linux.arm64.Release.mch -0.01%
benchmarks.run.linux.arm64.checked.mch -0.01%
libraries.crossgen2.linux.arm64.checked.mch +0.01%
smoke_tests.nativeaot.linux.arm64.checked.mch -0.01%
coreclr_tests.run.linux.arm64.checked.mch -0.01%
realworld.run.linux.arm64.checked.mch -0.01%
benchmarks.run_tiered.linux.arm64.checked.mch -0.01%
MinOpts (-0.04% to +0.04%)
Collection PDIFF
benchmarks.run_pgo.linux.arm64.checked.mch -0.01%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch -0.03%
libraries.pmi.linux.arm64.checked.mch -0.04%
benchmarks.run.linux.arm64.checked.mch -0.01%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.04%
coreclr_tests.run.linux.arm64.checked.mch -0.01%
benchmarks.run_tiered.linux.arm64.checked.mch -0.01%
FullOpts (-0.02% to +0.01%)
Collection PDIFF
benchmarks.run_pgo.linux.arm64.checked.mch -0.02%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch -0.01%
libraries.pmi.linux.arm64.checked.mch -0.01%
libraries_tests.run.linux.arm64.Release.mch -0.02%
benchmarks.run.linux.arm64.checked.mch -0.01%
libraries.crossgen2.linux.arm64.checked.mch +0.01%
smoke_tests.nativeaot.linux.arm64.checked.mch -0.01%
realworld.run.linux.arm64.checked.mch -0.01%
benchmarks.run_tiered.linux.arm64.checked.mch -0.01%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.00% to +0.02%)
Collection PDIFF
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.01%
realworld.run.linux.x64.checked.mch +0.01%
libraries.pmi.linux.x64.checked.mch +0.01%
libraries.crossgen2.linux.x64.checked.mch +0.02%
benchmarks.run.linux.x64.checked.mch +0.01%
smoke_tests.nativeaot.linux.x64.checked.mch +0.01%
MinOpts (-0.02% to +0.03%)
Collection PDIFF
libraries_tests.run.linux.x64.Release.mch -0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch -0.02%
coreclr_tests.run.linux.x64.checked.mch -0.02%
benchmarks.run_tiered.linux.x64.checked.mch -0.02%
realworld.run.linux.x64.checked.mch -0.01%
benchmarks.run_pgo.linux.x64.checked.mch -0.02%
libraries.pmi.linux.x64.checked.mch -0.01%
libraries.crossgen2.linux.x64.checked.mch -0.01%
benchmarks.run.linux.x64.checked.mch -0.01%
smoke_tests.nativeaot.linux.x64.checked.mch +0.03%
FullOpts (+0.00% to +0.02%)
Collection PDIFF
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.01%
coreclr_tests.run.linux.x64.checked.mch +0.02%
benchmarks.run_tiered.linux.x64.checked.mch +0.01%
realworld.run.linux.x64.checked.mch +0.01%
libraries.pmi.linux.x64.checked.mch +0.01%
libraries.crossgen2.linux.x64.checked.mch +0.02%
benchmarks.run.linux.x64.checked.mch +0.01%
smoke_tests.nativeaot.linux.x64.checked.mch +0.01%

Details here


Throughput diffs for linux/arm64 ran on windows/x64

Overall (+0.04% to +0.05%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch +0.04%
benchmarks.run_pgo.linux.arm64.checked.mch +0.04%
benchmarks.run_tiered.linux.arm64.checked.mch +0.05%
coreclr_tests.run.linux.arm64.checked.mch +0.05%
libraries.crossgen2.linux.arm64.checked.mch +0.04%
libraries.pmi.linux.arm64.checked.mch +0.04%
libraries_tests.run.linux.arm64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.04%
realworld.run.linux.arm64.checked.mch +0.04%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.04%
MinOpts (+0.05% to +0.09%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch +0.06%
benchmarks.run_pgo.linux.arm64.checked.mch +0.07%
benchmarks.run_tiered.linux.arm64.checked.mch +0.06%
coreclr_tests.run.linux.arm64.checked.mch +0.05%
libraries.crossgen2.linux.arm64.checked.mch +0.06%
libraries.pmi.linux.arm64.checked.mch +0.06%
libraries_tests.run.linux.arm64.Release.mch +0.07%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.06%
realworld.run.linux.arm64.checked.mch +0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.09%
FullOpts (+0.03% to +0.05%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch +0.04%
benchmarks.run_pgo.linux.arm64.checked.mch +0.03%
benchmarks.run_tiered.linux.arm64.checked.mch +0.04%
coreclr_tests.run.linux.arm64.checked.mch +0.05%
libraries.crossgen2.linux.arm64.checked.mch +0.04%
libraries.pmi.linux.arm64.checked.mch +0.04%
libraries_tests.run.linux.arm64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.04%
realworld.run.linux.arm64.checked.mch +0.04%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.04%

Throughput diffs for linux/x64 ran on windows/x64

Overall (+0.03% to +0.04%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.03%
benchmarks.run_pgo.linux.x64.checked.mch +0.03%
benchmarks.run_tiered.linux.x64.checked.mch +0.03%
coreclr_tests.run.linux.x64.checked.mch +0.04%
libraries.crossgen2.linux.x64.checked.mch +0.03%
libraries.pmi.linux.x64.checked.mch +0.03%
libraries_tests.run.linux.x64.Release.mch +0.03%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.03%
realworld.run.linux.x64.checked.mch +0.03%
smoke_tests.nativeaot.linux.x64.checked.mch +0.03%
MinOpts (+0.03% to +0.04%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.03%
benchmarks.run_pgo.linux.x64.checked.mch +0.04%
benchmarks.run_tiered.linux.x64.checked.mch +0.03%
coreclr_tests.run.linux.x64.checked.mch +0.03%
libraries.crossgen2.linux.x64.checked.mch +0.03%
libraries.pmi.linux.x64.checked.mch +0.04%
libraries_tests.run.linux.x64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.03%
realworld.run.linux.x64.checked.mch +0.03%
smoke_tests.nativeaot.linux.x64.checked.mch +0.04%
FullOpts (+0.03% to +0.05%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.03%
benchmarks.run_pgo.linux.x64.checked.mch +0.03%
benchmarks.run_tiered.linux.x64.checked.mch +0.03%
coreclr_tests.run.linux.x64.checked.mch +0.05%
libraries.crossgen2.linux.x64.checked.mch +0.03%
libraries.pmi.linux.x64.checked.mch +0.03%
libraries_tests.run.linux.x64.Release.mch +0.03%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.03%
realworld.run.linux.x64.checked.mch +0.03%
smoke_tests.nativeaot.linux.x64.checked.mch +0.03%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (+0.04% to +0.05%)
Collection PDIFF
benchmarks.run.osx.arm64.checked.mch +0.04%
benchmarks.run_pgo.osx.arm64.checked.mch +0.04%
benchmarks.run_tiered.osx.arm64.checked.mch +0.05%
coreclr_tests.run.osx.arm64.checked.mch +0.05%
libraries.crossgen2.osx.arm64.checked.mch +0.04%
libraries.pmi.osx.arm64.checked.mch +0.04%
libraries_tests.run.osx.arm64.Release.mch +0.05%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch +0.04%
realworld.run.osx.arm64.checked.mch +0.04%
MinOpts (+0.05% to +0.08%)
Collection PDIFF
benchmarks.run.osx.arm64.checked.mch +0.05%
benchmarks.run_pgo.osx.arm64.checked.mch +0.06%
benchmarks.run_tiered.osx.arm64.checked.mch +0.06%
coreclr_tests.run.osx.arm64.checked.mch +0.05%
libraries.crossgen2.osx.arm64.checked.mch +0.06%
libraries.pmi.osx.arm64.checked.mch +0.06%
libraries_tests.run.osx.arm64.Release.mch +0.07%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch +0.06%
realworld.run.osx.arm64.checked.mch +0.08%
FullOpts (+0.04% to +0.06%)
Collection PDIFF
benchmarks.run.osx.arm64.checked.mch +0.04%
benchmarks.run_pgo.osx.arm64.checked.mch +0.04%
benchmarks.run_tiered.osx.arm64.checked.mch +0.04%
coreclr_tests.run.osx.arm64.checked.mch +0.06%
libraries.crossgen2.osx.arm64.checked.mch +0.04%
libraries.pmi.osx.arm64.checked.mch +0.04%
libraries_tests.run.osx.arm64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch +0.04%
realworld.run.osx.arm64.checked.mch +0.04%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (+0.04% to +0.05%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch +0.04%
benchmarks.run_pgo.windows.arm64.checked.mch +0.04%
benchmarks.run_tiered.windows.arm64.checked.mch +0.05%
coreclr_tests.run.windows.arm64.checked.mch +0.05%
libraries.crossgen2.windows.arm64.checked.mch +0.04%
libraries.pmi.windows.arm64.checked.mch +0.04%
libraries_tests.run.windows.arm64.Release.mch +0.05%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch +0.04%
realworld.run.windows.arm64.checked.mch +0.04%
smoke_tests.nativeaot.windows.arm64.checked.mch +0.04%
MinOpts (+0.05% to +0.09%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch +0.05%
benchmarks.run_pgo.windows.arm64.checked.mch +0.06%
benchmarks.run_tiered.windows.arm64.checked.mch +0.06%
coreclr_tests.run.windows.arm64.checked.mch +0.05%
libraries.crossgen2.windows.arm64.checked.mch +0.06%
libraries.pmi.windows.arm64.checked.mch +0.05%
libraries_tests.run.windows.arm64.Release.mch +0.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch +0.06%
realworld.run.windows.arm64.checked.mch +0.07%
smoke_tests.nativeaot.windows.arm64.checked.mch +0.09%
FullOpts (+0.03% to +0.05%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch +0.04%
benchmarks.run_pgo.windows.arm64.checked.mch +0.03%
benchmarks.run_tiered.windows.arm64.checked.mch +0.04%
coreclr_tests.run.windows.arm64.checked.mch +0.05%
libraries.crossgen2.windows.arm64.checked.mch +0.04%
libraries.pmi.windows.arm64.checked.mch +0.04%
libraries_tests.run.windows.arm64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch +0.04%
realworld.run.windows.arm64.checked.mch +0.04%
smoke_tests.nativeaot.windows.arm64.checked.mch +0.04%

Throughput diffs for windows/x64 ran on windows/x64

Overall (+0.04% to +0.05%)
Collection PDIFF
aspnet.run.windows.x64.checked.mch +0.04%
benchmarks.run.windows.x64.checked.mch +0.04%
benchmarks.run_pgo.windows.x64.checked.mch +0.04%
benchmarks.run_tiered.windows.x64.checked.mch +0.05%
coreclr_tests.run.windows.x64.checked.mch +0.05%
libraries.crossgen2.windows.x64.checked.mch +0.04%
libraries.pmi.windows.x64.checked.mch +0.04%
libraries_tests.run.windows.x64.Release.mch +0.05%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch +0.04%
realworld.run.windows.x64.checked.mch +0.04%
smoke_tests.nativeaot.windows.x64.checked.mch +0.04%
MinOpts (+0.05% to +0.08%)
Collection PDIFF
aspnet.run.windows.x64.checked.mch +0.07%
benchmarks.run.windows.x64.checked.mch +0.06%
benchmarks.run_pgo.windows.x64.checked.mch +0.07%
benchmarks.run_tiered.windows.x64.checked.mch +0.06%
coreclr_tests.run.windows.x64.checked.mch +0.05%
libraries.crossgen2.windows.x64.checked.mch +0.05%
libraries.pmi.windows.x64.checked.mch +0.06%
libraries_tests.run.windows.x64.Release.mch +0.07%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch +0.06%
realworld.run.windows.x64.checked.mch +0.08%
smoke_tests.nativeaot.windows.x64.checked.mch +0.08%
FullOpts (+0.03% to +0.06%)
Collection PDIFF
aspnet.run.windows.x64.checked.mch +0.04%
benchmarks.run.windows.x64.checked.mch +0.04%
benchmarks.run_pgo.windows.x64.checked.mch +0.03%
benchmarks.run_tiered.windows.x64.checked.mch +0.04%
coreclr_tests.run.windows.x64.checked.mch +0.06%
libraries.crossgen2.windows.x64.checked.mch +0.04%
libraries.pmi.windows.x64.checked.mch +0.04%
libraries_tests.run.windows.x64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch +0.04%
realworld.run.windows.x64.checked.mch +0.04%
smoke_tests.nativeaot.windows.x64.checked.mch +0.04%

Details here


@ryujit-bot
Copy link

Diff results for #98586

Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (+0.04% to +0.05%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch +0.04%
benchmarks.run_pgo.linux.arm64.checked.mch +0.04%
benchmarks.run_tiered.linux.arm64.checked.mch +0.05%
coreclr_tests.run.linux.arm64.checked.mch +0.05%
libraries.crossgen2.linux.arm64.checked.mch +0.04%
libraries.pmi.linux.arm64.checked.mch +0.04%
libraries_tests.run.linux.arm64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.04%
realworld.run.linux.arm64.checked.mch +0.04%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.04%
MinOpts (+0.05% to +0.09%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch +0.06%
benchmarks.run_pgo.linux.arm64.checked.mch +0.07%
benchmarks.run_tiered.linux.arm64.checked.mch +0.06%
coreclr_tests.run.linux.arm64.checked.mch +0.05%
libraries.crossgen2.linux.arm64.checked.mch +0.06%
libraries.pmi.linux.arm64.checked.mch +0.06%
libraries_tests.run.linux.arm64.Release.mch +0.07%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.06%
realworld.run.linux.arm64.checked.mch +0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.09%
FullOpts (+0.03% to +0.05%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch +0.04%
benchmarks.run_pgo.linux.arm64.checked.mch +0.03%
benchmarks.run_tiered.linux.arm64.checked.mch +0.04%
coreclr_tests.run.linux.arm64.checked.mch +0.05%
libraries.crossgen2.linux.arm64.checked.mch +0.04%
libraries.pmi.linux.arm64.checked.mch +0.04%
libraries_tests.run.linux.arm64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.04%
realworld.run.linux.arm64.checked.mch +0.04%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.04%

Throughput diffs for linux/x64 ran on windows/x64

Overall (+0.03% to +0.04%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.03%
benchmarks.run_pgo.linux.x64.checked.mch +0.03%
benchmarks.run_tiered.linux.x64.checked.mch +0.03%
coreclr_tests.run.linux.x64.checked.mch +0.04%
libraries.crossgen2.linux.x64.checked.mch +0.03%
libraries.pmi.linux.x64.checked.mch +0.03%
libraries_tests.run.linux.x64.Release.mch +0.03%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.03%
realworld.run.linux.x64.checked.mch +0.03%
smoke_tests.nativeaot.linux.x64.checked.mch +0.03%
MinOpts (+0.03% to +0.04%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.03%
benchmarks.run_pgo.linux.x64.checked.mch +0.04%
benchmarks.run_tiered.linux.x64.checked.mch +0.03%
coreclr_tests.run.linux.x64.checked.mch +0.03%
libraries.crossgen2.linux.x64.checked.mch +0.03%
libraries.pmi.linux.x64.checked.mch +0.04%
libraries_tests.run.linux.x64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.03%
realworld.run.linux.x64.checked.mch +0.03%
smoke_tests.nativeaot.linux.x64.checked.mch +0.04%
FullOpts (+0.03% to +0.05%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.03%
benchmarks.run_pgo.linux.x64.checked.mch +0.03%
benchmarks.run_tiered.linux.x64.checked.mch +0.03%
coreclr_tests.run.linux.x64.checked.mch +0.05%
libraries.crossgen2.linux.x64.checked.mch +0.03%
libraries.pmi.linux.x64.checked.mch +0.03%
libraries_tests.run.linux.x64.Release.mch +0.03%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.03%
realworld.run.linux.x64.checked.mch +0.03%
smoke_tests.nativeaot.linux.x64.checked.mch +0.03%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (+0.04% to +0.05%)
Collection PDIFF
benchmarks.run.osx.arm64.checked.mch +0.04%
benchmarks.run_pgo.osx.arm64.checked.mch +0.04%
benchmarks.run_tiered.osx.arm64.checked.mch +0.05%
coreclr_tests.run.osx.arm64.checked.mch +0.05%
libraries.crossgen2.osx.arm64.checked.mch +0.04%
libraries.pmi.osx.arm64.checked.mch +0.04%
libraries_tests.run.osx.arm64.Release.mch +0.05%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch +0.04%
realworld.run.osx.arm64.checked.mch +0.04%
MinOpts (+0.05% to +0.08%)
Collection PDIFF
benchmarks.run.osx.arm64.checked.mch +0.05%
benchmarks.run_pgo.osx.arm64.checked.mch +0.06%
benchmarks.run_tiered.osx.arm64.checked.mch +0.06%
coreclr_tests.run.osx.arm64.checked.mch +0.05%
libraries.crossgen2.osx.arm64.checked.mch +0.06%
libraries.pmi.osx.arm64.checked.mch +0.06%
libraries_tests.run.osx.arm64.Release.mch +0.07%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch +0.06%
realworld.run.osx.arm64.checked.mch +0.08%
FullOpts (+0.04% to +0.06%)
Collection PDIFF
benchmarks.run.osx.arm64.checked.mch +0.04%
benchmarks.run_pgo.osx.arm64.checked.mch +0.04%
benchmarks.run_tiered.osx.arm64.checked.mch +0.04%
coreclr_tests.run.osx.arm64.checked.mch +0.06%
libraries.crossgen2.osx.arm64.checked.mch +0.04%
libraries.pmi.osx.arm64.checked.mch +0.04%
libraries_tests.run.osx.arm64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch +0.04%
realworld.run.osx.arm64.checked.mch +0.04%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (+0.04% to +0.05%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch +0.04%
benchmarks.run_pgo.windows.arm64.checked.mch +0.04%
benchmarks.run_tiered.windows.arm64.checked.mch +0.05%
coreclr_tests.run.windows.arm64.checked.mch +0.05%
libraries.crossgen2.windows.arm64.checked.mch +0.04%
libraries.pmi.windows.arm64.checked.mch +0.04%
libraries_tests.run.windows.arm64.Release.mch +0.05%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch +0.04%
realworld.run.windows.arm64.checked.mch +0.04%
smoke_tests.nativeaot.windows.arm64.checked.mch +0.04%
MinOpts (+0.05% to +0.09%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch +0.05%
benchmarks.run_pgo.windows.arm64.checked.mch +0.06%
benchmarks.run_tiered.windows.arm64.checked.mch +0.06%
coreclr_tests.run.windows.arm64.checked.mch +0.05%
libraries.crossgen2.windows.arm64.checked.mch +0.06%
libraries.pmi.windows.arm64.checked.mch +0.05%
libraries_tests.run.windows.arm64.Release.mch +0.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch +0.06%
realworld.run.windows.arm64.checked.mch +0.07%
smoke_tests.nativeaot.windows.arm64.checked.mch +0.09%
FullOpts (+0.03% to +0.05%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch +0.04%
benchmarks.run_pgo.windows.arm64.checked.mch +0.03%
benchmarks.run_tiered.windows.arm64.checked.mch +0.04%
coreclr_tests.run.windows.arm64.checked.mch +0.05%
libraries.crossgen2.windows.arm64.checked.mch +0.04%
libraries.pmi.windows.arm64.checked.mch +0.04%
libraries_tests.run.windows.arm64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch +0.04%
realworld.run.windows.arm64.checked.mch +0.04%
smoke_tests.nativeaot.windows.arm64.checked.mch +0.04%

Throughput diffs for windows/x64 ran on windows/x64

Overall (+0.04% to +0.05%)
Collection PDIFF
aspnet.run.windows.x64.checked.mch +0.04%
benchmarks.run.windows.x64.checked.mch +0.04%
benchmarks.run_pgo.windows.x64.checked.mch +0.04%
benchmarks.run_tiered.windows.x64.checked.mch +0.05%
coreclr_tests.run.windows.x64.checked.mch +0.05%
libraries.crossgen2.windows.x64.checked.mch +0.04%
libraries.pmi.windows.x64.checked.mch +0.04%
libraries_tests.run.windows.x64.Release.mch +0.05%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch +0.04%
realworld.run.windows.x64.checked.mch +0.04%
smoke_tests.nativeaot.windows.x64.checked.mch +0.04%
MinOpts (+0.05% to +0.08%)
Collection PDIFF
aspnet.run.windows.x64.checked.mch +0.07%
benchmarks.run.windows.x64.checked.mch +0.06%
benchmarks.run_pgo.windows.x64.checked.mch +0.07%
benchmarks.run_tiered.windows.x64.checked.mch +0.06%
coreclr_tests.run.windows.x64.checked.mch +0.05%
libraries.crossgen2.windows.x64.checked.mch +0.05%
libraries.pmi.windows.x64.checked.mch +0.06%
libraries_tests.run.windows.x64.Release.mch +0.07%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch +0.06%
realworld.run.windows.x64.checked.mch +0.08%
smoke_tests.nativeaot.windows.x64.checked.mch +0.08%
FullOpts (+0.03% to +0.06%)
Collection PDIFF
aspnet.run.windows.x64.checked.mch +0.04%
benchmarks.run.windows.x64.checked.mch +0.04%
benchmarks.run_pgo.windows.x64.checked.mch +0.03%
benchmarks.run_tiered.windows.x64.checked.mch +0.04%
coreclr_tests.run.windows.x64.checked.mch +0.06%
libraries.crossgen2.windows.x64.checked.mch +0.04%
libraries.pmi.windows.x64.checked.mch +0.04%
libraries_tests.run.windows.x64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch +0.04%
realworld.run.windows.x64.checked.mch +0.04%
smoke_tests.nativeaot.windows.x64.checked.mch +0.04%

Details here


@amanasifkhalid
Copy link
Member Author

@kotlarmilos thanks for getting the mangled method name to me offline. I've fixed the error handling test to deallocate the string on the Swift side, and I think it's enabled now -- I removed it from the exclude list in issues.targets.

@ryujit-bot
Copy link

Diff results for #98586

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 2,554,585 contexts (1,019,526 MinOpts, 1,535,059 FullOpts).

MISSED contexts: 172 (0.01%)

Overall (+0 bytes)
Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
libraries_tests.run.linux.arm64.Release.mch 381,315,748 +0 0.00%
FullOpts (+0 bytes)
Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
libraries_tests.run.linux.arm64.Release.mch 165,778,652 +0 0.00%

Assembly diffs for linux/x64 ran on windows/x64

Diffs are based on 2,543,224 contexts (988,245 MinOpts, 1,554,979 FullOpts).

MISSED contexts: 177 (0.01%)

Overall (-3 bytes)
Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
libraries_tests.run.linux.x64.Release.mch 329,922,608 -3 +0.16%
FullOpts (-3 bytes)
Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
libraries_tests.run.linux.x64.Release.mch 147,120,622 -3 +0.16%

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 2,317,543 contexts (945,402 MinOpts, 1,372,141 FullOpts).

MISSED contexts: 170 (0.01%)

Overall (+12 bytes)
Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
libraries_tests.run.osx.arm64.Release.mch 312,729,720 +12 +0.04%
FullOpts (+12 bytes)
Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
libraries_tests.run.osx.arm64.Release.mch 111,327,984 +12 +0.04%

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 2,402,908 contexts (955,693 MinOpts, 1,447,215 FullOpts).

MISSED contexts: 174 (0.01%)

Overall (+0 bytes)
Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
libraries_tests.run.windows.arm64.Release.mch 328,693,680 +0 0.00%
FullOpts (+0 bytes)
Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
libraries_tests.run.windows.arm64.Release.mch 123,601,008 +0 0.00%

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (+0.03% to +0.05%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch +0.04%
benchmarks.run_pgo.linux.arm64.checked.mch +0.03%
benchmarks.run_tiered.linux.arm64.checked.mch +0.05%
coreclr_tests.run.linux.arm64.checked.mch +0.05%
libraries.crossgen2.linux.arm64.checked.mch +0.04%
libraries.pmi.linux.arm64.checked.mch +0.04%
libraries_tests.run.linux.arm64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.04%
realworld.run.linux.arm64.checked.mch +0.04%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.04%
MinOpts (+0.05% to +0.09%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch +0.06%
benchmarks.run_pgo.linux.arm64.checked.mch +0.07%
benchmarks.run_tiered.linux.arm64.checked.mch +0.06%
coreclr_tests.run.linux.arm64.checked.mch +0.05%
libraries.crossgen2.linux.arm64.checked.mch +0.06%
libraries.pmi.linux.arm64.checked.mch +0.06%
libraries_tests.run.linux.arm64.Release.mch +0.07%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.06%
realworld.run.linux.arm64.checked.mch +0.08%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.09%
FullOpts (+0.03% to +0.05%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch +0.04%
benchmarks.run_pgo.linux.arm64.checked.mch +0.03%
benchmarks.run_tiered.linux.arm64.checked.mch +0.04%
coreclr_tests.run.linux.arm64.checked.mch +0.05%
libraries.crossgen2.linux.arm64.checked.mch +0.04%
libraries.pmi.linux.arm64.checked.mch +0.04%
libraries_tests.run.linux.arm64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.04%
realworld.run.linux.arm64.checked.mch +0.04%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.04%

Throughput diffs for linux/x64 ran on windows/x64

Overall (+0.03% to +0.04%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.03%
benchmarks.run_pgo.linux.x64.checked.mch +0.03%
benchmarks.run_tiered.linux.x64.checked.mch +0.03%
coreclr_tests.run.linux.x64.checked.mch +0.04%
libraries.crossgen2.linux.x64.checked.mch +0.03%
libraries.pmi.linux.x64.checked.mch +0.03%
libraries_tests.run.linux.x64.Release.mch +0.03%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.03%
realworld.run.linux.x64.checked.mch +0.03%
smoke_tests.nativeaot.linux.x64.checked.mch +0.03%
MinOpts (+0.03% to +0.04%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.03%
benchmarks.run_pgo.linux.x64.checked.mch +0.04%
benchmarks.run_tiered.linux.x64.checked.mch +0.03%
coreclr_tests.run.linux.x64.checked.mch +0.03%
libraries.crossgen2.linux.x64.checked.mch +0.03%
libraries.pmi.linux.x64.checked.mch +0.04%
libraries_tests.run.linux.x64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.03%
realworld.run.linux.x64.checked.mch +0.03%
smoke_tests.nativeaot.linux.x64.checked.mch +0.04%
FullOpts (+0.03% to +0.05%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.03%
benchmarks.run_pgo.linux.x64.checked.mch +0.03%
benchmarks.run_tiered.linux.x64.checked.mch +0.03%
coreclr_tests.run.linux.x64.checked.mch +0.05%
libraries.crossgen2.linux.x64.checked.mch +0.03%
libraries.pmi.linux.x64.checked.mch +0.03%
libraries_tests.run.linux.x64.Release.mch +0.03%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.03%
realworld.run.linux.x64.checked.mch +0.03%
smoke_tests.nativeaot.linux.x64.checked.mch +0.03%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (+0.04% to +0.05%)
Collection PDIFF
benchmarks.run.osx.arm64.checked.mch +0.04%
benchmarks.run_pgo.osx.arm64.checked.mch +0.04%
benchmarks.run_tiered.osx.arm64.checked.mch +0.05%
coreclr_tests.run.osx.arm64.checked.mch +0.05%
libraries.crossgen2.osx.arm64.checked.mch +0.04%
libraries.pmi.osx.arm64.checked.mch +0.04%
libraries_tests.run.osx.arm64.Release.mch +0.05%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch +0.04%
realworld.run.osx.arm64.checked.mch +0.04%
MinOpts (+0.05% to +0.07%)
Collection PDIFF
benchmarks.run.osx.arm64.checked.mch +0.05%
benchmarks.run_pgo.osx.arm64.checked.mch +0.06%
benchmarks.run_tiered.osx.arm64.checked.mch +0.06%
coreclr_tests.run.osx.arm64.checked.mch +0.05%
libraries.crossgen2.osx.arm64.checked.mch +0.06%
libraries.pmi.osx.arm64.checked.mch +0.06%
libraries_tests.run.osx.arm64.Release.mch +0.07%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch +0.06%
realworld.run.osx.arm64.checked.mch +0.07%
FullOpts (+0.04% to +0.06%)
Collection PDIFF
benchmarks.run.osx.arm64.checked.mch +0.04%
benchmarks.run_pgo.osx.arm64.checked.mch +0.04%
benchmarks.run_tiered.osx.arm64.checked.mch +0.04%
coreclr_tests.run.osx.arm64.checked.mch +0.06%
libraries.crossgen2.osx.arm64.checked.mch +0.04%
libraries.pmi.osx.arm64.checked.mch +0.04%
libraries_tests.run.osx.arm64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch +0.04%
realworld.run.osx.arm64.checked.mch +0.04%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (+0.04% to +0.05%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch +0.04%
benchmarks.run_pgo.windows.arm64.checked.mch +0.04%
benchmarks.run_tiered.windows.arm64.checked.mch +0.05%
coreclr_tests.run.windows.arm64.checked.mch +0.05%
libraries.crossgen2.windows.arm64.checked.mch +0.04%
libraries.pmi.windows.arm64.checked.mch +0.04%
libraries_tests.run.windows.arm64.Release.mch +0.05%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch +0.04%
realworld.run.windows.arm64.checked.mch +0.04%
smoke_tests.nativeaot.windows.arm64.checked.mch +0.04%
MinOpts (+0.05% to +0.09%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch +0.05%
benchmarks.run_pgo.windows.arm64.checked.mch +0.06%
benchmarks.run_tiered.windows.arm64.checked.mch +0.06%
coreclr_tests.run.windows.arm64.checked.mch +0.05%
libraries.crossgen2.windows.arm64.checked.mch +0.06%
libraries.pmi.windows.arm64.checked.mch +0.06%
libraries_tests.run.windows.arm64.Release.mch +0.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch +0.06%
realworld.run.windows.arm64.checked.mch +0.07%
smoke_tests.nativeaot.windows.arm64.checked.mch +0.09%
FullOpts (+0.03% to +0.05%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch +0.04%
benchmarks.run_pgo.windows.arm64.checked.mch +0.03%
benchmarks.run_tiered.windows.arm64.checked.mch +0.04%
coreclr_tests.run.windows.arm64.checked.mch +0.05%
libraries.crossgen2.windows.arm64.checked.mch +0.04%
libraries.pmi.windows.arm64.checked.mch +0.04%
libraries_tests.run.windows.arm64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch +0.04%
realworld.run.windows.arm64.checked.mch +0.04%
smoke_tests.nativeaot.windows.arm64.checked.mch +0.04%

Throughput diffs for windows/x64 ran on windows/x64

Overall (+0.04% to +0.05%)
Collection PDIFF
aspnet.run.windows.x64.checked.mch +0.04%
benchmarks.run.windows.x64.checked.mch +0.04%
benchmarks.run_pgo.windows.x64.checked.mch +0.04%
benchmarks.run_tiered.windows.x64.checked.mch +0.05%
coreclr_tests.run.windows.x64.checked.mch +0.05%
libraries.crossgen2.windows.x64.checked.mch +0.04%
libraries.pmi.windows.x64.checked.mch +0.04%
libraries_tests.run.windows.x64.Release.mch +0.05%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch +0.04%
realworld.run.windows.x64.checked.mch +0.04%
smoke_tests.nativeaot.windows.x64.checked.mch +0.04%
MinOpts (+0.05% to +0.08%)
Collection PDIFF
aspnet.run.windows.x64.checked.mch +0.07%
benchmarks.run.windows.x64.checked.mch +0.06%
benchmarks.run_pgo.windows.x64.checked.mch +0.07%
benchmarks.run_tiered.windows.x64.checked.mch +0.06%
coreclr_tests.run.windows.x64.checked.mch +0.05%
libraries.crossgen2.windows.x64.checked.mch +0.05%
libraries.pmi.windows.x64.checked.mch +0.06%
libraries_tests.run.windows.x64.Release.mch +0.07%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch +0.06%
realworld.run.windows.x64.checked.mch +0.08%
smoke_tests.nativeaot.windows.x64.checked.mch +0.08%
FullOpts (+0.03% to +0.06%)
Collection PDIFF
aspnet.run.windows.x64.checked.mch +0.04%
benchmarks.run.windows.x64.checked.mch +0.04%
benchmarks.run_pgo.windows.x64.checked.mch +0.03%
benchmarks.run_tiered.windows.x64.checked.mch +0.04%
coreclr_tests.run.windows.x64.checked.mch +0.06%
libraries.crossgen2.windows.x64.checked.mch +0.04%
libraries.pmi.windows.x64.checked.mch +0.04%
libraries_tests.run.windows.x64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch +0.04%
realworld.run.windows.x64.checked.mch +0.04%
smoke_tests.nativeaot.windows.x64.checked.mch +0.04%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.02% to +0.01%)
Collection PDIFF
realworld.run.linux.arm64.checked.mch -0.02%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch -0.01%
smoke_tests.nativeaot.linux.arm64.checked.mch -0.01%
benchmarks.run.linux.arm64.checked.mch -0.01%
coreclr_tests.run.linux.arm64.checked.mch -0.01%
benchmarks.run_tiered.linux.arm64.checked.mch -0.01%
libraries.crossgen2.linux.arm64.checked.mch +0.01%
libraries_tests.run.linux.arm64.Release.mch -0.01%
benchmarks.run_pgo.linux.arm64.checked.mch -0.02%
libraries.pmi.linux.arm64.checked.mch -0.01%
MinOpts (-0.04% to +0.04%)
Collection PDIFF
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch -0.03%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.04%
benchmarks.run.linux.arm64.checked.mch -0.01%
coreclr_tests.run.linux.arm64.checked.mch -0.01%
benchmarks.run_tiered.linux.arm64.checked.mch -0.01%
benchmarks.run_pgo.linux.arm64.checked.mch -0.01%
libraries.pmi.linux.arm64.checked.mch -0.04%
FullOpts (-0.02% to +0.01%)
Collection PDIFF
realworld.run.linux.arm64.checked.mch -0.02%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch -0.01%
smoke_tests.nativeaot.linux.arm64.checked.mch -0.01%
benchmarks.run.linux.arm64.checked.mch -0.01%
benchmarks.run_tiered.linux.arm64.checked.mch -0.01%
libraries.crossgen2.linux.arm64.checked.mch +0.01%
libraries_tests.run.linux.arm64.Release.mch -0.02%
benchmarks.run_pgo.linux.arm64.checked.mch -0.02%
libraries.pmi.linux.arm64.checked.mch -0.01%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.00% to +0.01%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.01%
smoke_tests.nativeaot.linux.x64.checked.mch +0.01%
libraries.crossgen2.linux.x64.checked.mch +0.01%
realworld.run.linux.x64.checked.mch +0.01%
libraries.pmi.linux.x64.checked.mch +0.01%
MinOpts (-0.02% to +0.03%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch -0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch -0.02%
smoke_tests.nativeaot.linux.x64.checked.mch +0.03%
benchmarks.run_tiered.linux.x64.checked.mch -0.02%
libraries.crossgen2.linux.x64.checked.mch -0.01%
realworld.run.linux.x64.checked.mch -0.01%
benchmarks.run_pgo.linux.x64.checked.mch -0.02%
coreclr_tests.run.linux.x64.checked.mch -0.02%
libraries.pmi.linux.x64.checked.mch -0.01%
libraries_tests.run.linux.x64.Release.mch -0.01%
FullOpts (+0.00% to +0.02%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.01%
smoke_tests.nativeaot.linux.x64.checked.mch +0.01%
benchmarks.run_tiered.linux.x64.checked.mch +0.01%
libraries.crossgen2.linux.x64.checked.mch +0.01%
realworld.run.linux.x64.checked.mch +0.01%
coreclr_tests.run.linux.x64.checked.mch +0.02%
libraries.pmi.linux.x64.checked.mch +0.01%

Details here


@ryujit-bot
Copy link

Diff results for #98586

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 2,554,585 contexts (1,019,526 MinOpts, 1,535,059 FullOpts).

MISSED contexts: 172 (0.01%)

Overall (+0 bytes)
Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
libraries_tests.run.linux.arm64.Release.mch 381,315,748 +0 0.00%
FullOpts (+0 bytes)
Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
libraries_tests.run.linux.arm64.Release.mch 165,778,652 +0 0.00%

Assembly diffs for linux/x64 ran on windows/x64

Diffs are based on 2,543,224 contexts (988,245 MinOpts, 1,554,979 FullOpts).

MISSED contexts: 177 (0.01%)

Overall (-3 bytes)
Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
libraries_tests.run.linux.x64.Release.mch 329,922,608 -3 +0.16%
FullOpts (-3 bytes)
Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
libraries_tests.run.linux.x64.Release.mch 147,120,622 -3 +0.16%

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 2,402,908 contexts (955,693 MinOpts, 1,447,215 FullOpts).

MISSED contexts: 174 (0.01%)

Overall (+0 bytes)
Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
libraries_tests.run.windows.arm64.Release.mch 328,693,680 +0 0.00%
FullOpts (+0 bytes)
Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
libraries_tests.run.windows.arm64.Release.mch 123,601,008 +0 0.00%

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (+0.03% to +0.05%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch +0.04%
benchmarks.run_pgo.linux.arm64.checked.mch +0.03%
benchmarks.run_tiered.linux.arm64.checked.mch +0.05%
coreclr_tests.run.linux.arm64.checked.mch +0.05%
libraries.crossgen2.linux.arm64.checked.mch +0.04%
libraries.pmi.linux.arm64.checked.mch +0.04%
libraries_tests.run.linux.arm64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.04%
realworld.run.linux.arm64.checked.mch +0.04%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.04%
MinOpts (+0.05% to +0.09%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch +0.06%
benchmarks.run_pgo.linux.arm64.checked.mch +0.07%
benchmarks.run_tiered.linux.arm64.checked.mch +0.06%
coreclr_tests.run.linux.arm64.checked.mch +0.05%
libraries.crossgen2.linux.arm64.checked.mch +0.06%
libraries.pmi.linux.arm64.checked.mch +0.06%
libraries_tests.run.linux.arm64.Release.mch +0.07%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.06%
realworld.run.linux.arm64.checked.mch +0.08%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.09%
FullOpts (+0.03% to +0.05%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch +0.04%
benchmarks.run_pgo.linux.arm64.checked.mch +0.03%
benchmarks.run_tiered.linux.arm64.checked.mch +0.04%
coreclr_tests.run.linux.arm64.checked.mch +0.05%
libraries.crossgen2.linux.arm64.checked.mch +0.04%
libraries.pmi.linux.arm64.checked.mch +0.04%
libraries_tests.run.linux.arm64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch +0.04%
realworld.run.linux.arm64.checked.mch +0.04%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.04%

Throughput diffs for linux/x64 ran on windows/x64

Overall (+0.03% to +0.04%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.03%
benchmarks.run_pgo.linux.x64.checked.mch +0.03%
benchmarks.run_tiered.linux.x64.checked.mch +0.03%
coreclr_tests.run.linux.x64.checked.mch +0.04%
libraries.crossgen2.linux.x64.checked.mch +0.03%
libraries.pmi.linux.x64.checked.mch +0.03%
libraries_tests.run.linux.x64.Release.mch +0.03%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.03%
realworld.run.linux.x64.checked.mch +0.03%
smoke_tests.nativeaot.linux.x64.checked.mch +0.03%
MinOpts (+0.03% to +0.04%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.03%
benchmarks.run_pgo.linux.x64.checked.mch +0.04%
benchmarks.run_tiered.linux.x64.checked.mch +0.03%
coreclr_tests.run.linux.x64.checked.mch +0.03%
libraries.crossgen2.linux.x64.checked.mch +0.03%
libraries.pmi.linux.x64.checked.mch +0.04%
libraries_tests.run.linux.x64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.03%
realworld.run.linux.x64.checked.mch +0.03%
smoke_tests.nativeaot.linux.x64.checked.mch +0.04%
FullOpts (+0.03% to +0.05%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.03%
benchmarks.run_pgo.linux.x64.checked.mch +0.03%
benchmarks.run_tiered.linux.x64.checked.mch +0.03%
coreclr_tests.run.linux.x64.checked.mch +0.05%
libraries.crossgen2.linux.x64.checked.mch +0.03%
libraries.pmi.linux.x64.checked.mch +0.03%
libraries_tests.run.linux.x64.Release.mch +0.03%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.03%
realworld.run.linux.x64.checked.mch +0.03%
smoke_tests.nativeaot.linux.x64.checked.mch +0.03%

Throughput diffs for windows/x64 ran on windows/x64

Overall (+0.04% to +0.05%)
Collection PDIFF
aspnet.run.windows.x64.checked.mch +0.04%
benchmarks.run.windows.x64.checked.mch +0.04%
benchmarks.run_pgo.windows.x64.checked.mch +0.04%
benchmarks.run_tiered.windows.x64.checked.mch +0.05%
coreclr_tests.run.windows.x64.checked.mch +0.05%
libraries.crossgen2.windows.x64.checked.mch +0.04%
libraries.pmi.windows.x64.checked.mch +0.04%
libraries_tests.run.windows.x64.Release.mch +0.05%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch +0.04%
realworld.run.windows.x64.checked.mch +0.04%
smoke_tests.nativeaot.windows.x64.checked.mch +0.04%
MinOpts (+0.05% to +0.08%)
Collection PDIFF
aspnet.run.windows.x64.checked.mch +0.07%
benchmarks.run.windows.x64.checked.mch +0.06%
benchmarks.run_pgo.windows.x64.checked.mch +0.07%
benchmarks.run_tiered.windows.x64.checked.mch +0.06%
coreclr_tests.run.windows.x64.checked.mch +0.05%
libraries.crossgen2.windows.x64.checked.mch +0.05%
libraries.pmi.windows.x64.checked.mch +0.06%
libraries_tests.run.windows.x64.Release.mch +0.07%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch +0.06%
realworld.run.windows.x64.checked.mch +0.08%
smoke_tests.nativeaot.windows.x64.checked.mch +0.08%
FullOpts (+0.03% to +0.06%)
Collection PDIFF
aspnet.run.windows.x64.checked.mch +0.04%
benchmarks.run.windows.x64.checked.mch +0.04%
benchmarks.run_pgo.windows.x64.checked.mch +0.03%
benchmarks.run_tiered.windows.x64.checked.mch +0.04%
coreclr_tests.run.windows.x64.checked.mch +0.06%
libraries.crossgen2.windows.x64.checked.mch +0.04%
libraries.pmi.windows.x64.checked.mch +0.04%
libraries_tests.run.windows.x64.Release.mch +0.04%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch +0.04%
realworld.run.windows.x64.checked.mch +0.04%
smoke_tests.nativeaot.windows.x64.checked.mch +0.04%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.02% to +0.01%)
Collection PDIFF
realworld.run.linux.arm64.checked.mch -0.02%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch -0.01%
smoke_tests.nativeaot.linux.arm64.checked.mch -0.01%
benchmarks.run.linux.arm64.checked.mch -0.01%
coreclr_tests.run.linux.arm64.checked.mch -0.01%
benchmarks.run_tiered.linux.arm64.checked.mch -0.01%
libraries.crossgen2.linux.arm64.checked.mch +0.01%
libraries_tests.run.linux.arm64.Release.mch -0.01%
benchmarks.run_pgo.linux.arm64.checked.mch -0.02%
libraries.pmi.linux.arm64.checked.mch -0.01%
MinOpts (-0.04% to +0.04%)
Collection PDIFF
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch -0.03%
smoke_tests.nativeaot.linux.arm64.checked.mch +0.04%
benchmarks.run.linux.arm64.checked.mch -0.01%
coreclr_tests.run.linux.arm64.checked.mch -0.01%
benchmarks.run_tiered.linux.arm64.checked.mch -0.01%
benchmarks.run_pgo.linux.arm64.checked.mch -0.01%
libraries.pmi.linux.arm64.checked.mch -0.04%
FullOpts (-0.02% to +0.01%)
Collection PDIFF
realworld.run.linux.arm64.checked.mch -0.02%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch -0.01%
smoke_tests.nativeaot.linux.arm64.checked.mch -0.01%
benchmarks.run.linux.arm64.checked.mch -0.01%
benchmarks.run_tiered.linux.arm64.checked.mch -0.01%
libraries.crossgen2.linux.arm64.checked.mch +0.01%
libraries_tests.run.linux.arm64.Release.mch -0.02%
benchmarks.run_pgo.linux.arm64.checked.mch -0.02%
libraries.pmi.linux.arm64.checked.mch -0.01%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.00% to +0.01%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.01%
smoke_tests.nativeaot.linux.x64.checked.mch +0.01%
libraries.crossgen2.linux.x64.checked.mch +0.01%
realworld.run.linux.x64.checked.mch +0.01%
libraries.pmi.linux.x64.checked.mch +0.01%
MinOpts (-0.02% to +0.03%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch -0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch -0.02%
smoke_tests.nativeaot.linux.x64.checked.mch +0.03%
benchmarks.run_tiered.linux.x64.checked.mch -0.02%
libraries.crossgen2.linux.x64.checked.mch -0.01%
realworld.run.linux.x64.checked.mch -0.01%
benchmarks.run_pgo.linux.x64.checked.mch -0.02%
coreclr_tests.run.linux.x64.checked.mch -0.02%
libraries.pmi.linux.x64.checked.mch -0.01%
libraries_tests.run.linux.x64.Release.mch -0.01%
FullOpts (+0.00% to +0.02%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch +0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch +0.01%
smoke_tests.nativeaot.linux.x64.checked.mch +0.01%
benchmarks.run_tiered.linux.x64.checked.mch +0.01%
libraries.crossgen2.linux.x64.checked.mch +0.01%
realworld.run.linux.x64.checked.mch +0.01%
coreclr_tests.run.linux.x64.checked.mch +0.02%
libraries.pmi.linux.x64.checked.mch +0.01%

Details here


@kotlarmilos
Copy link
Member

@kotlarmilos thanks for getting the mangled method name to me offline. I've fixed the error handling test to deallocate the string on the Swift side, and I think it's enabled now -- I removed it from the exclude list in issues.targets.

Thanks! Please change the

<CLRTestTargetUnsupported Condition="'$(RuntimeFlavor)' != 'mono'">true</CLRTestTargetUnsupported>
Are your changes reflected in the Native AOT?

@amanasifkhalid
Copy link
Member Author

Are your changes reflected in the Native AOT?

I'm able to build and run the test with Native AOT, using src/tests/build.cmd nativeaot checked tree Interop/Swift -- is that enough to verify?

@amanasifkhalid
Copy link
Member Author

If I search for the error handling tests in the Tests dashboard, I can see they ran on OS X x64/arm64 and passed, so I think the tests are good to go. (Sorry for the ping, Milos.)

@amanasifkhalid amanasifkhalid merged commit 597d647 into dotnet:main Feb 26, 2024
137 of 139 checks passed
@amanasifkhalid amanasifkhalid deleted the swift-error-reg branch February 26, 2024 21:12
@github-actions github-actions bot locked and limited conversation to collaborators Mar 28, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants