Uh oh!
There was an error while loading. Please reload this page.
Have mono handle the vector as APIs that grow or shrink the vector type - #104445
Have mono handle the vector as APIs that grow or shrink the vector type#104445tannergooding wants to merge 12 commits into
Conversation
Tagging subscribers to this area: @steveisok, @lambdageek |
72c830d to
7b3f132Compare7b3f132 to
e1d8614Compare29a3d0d to
c30574bComparec30574b to
70cb4bdCompare8fb319d to
a8cf3baComparekg
commented
Jul 7, 2024
I don't know a lot about the minijit side of things, but I can try to look into the interp stuff next week. |
e29efbc to
8ef0ee9Compare8ef0ee9 to
d1f1b9fCompare9388349 to
d46dc0cCompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
kg
commented
Jul 9, 2024
I'll try to reproduce the wasm interp failures locally and see if I can figure them out. The minijit one is way beyond my knowledge, but if you're stuck and no one else can help, you can tag me in for that too. |
tannergooding
commented
Jul 10, 2024
Thanks much! For the minijit one I'm pretty sure I understand the basic problem but I'd like to at least get the larger interp failures addressed first 😅 |
kg
commented
Jul 10, 2024
I haven't been able to run this locally because wasm builds are still broken for me by the libz stuff, which also seems to have broken codespaces. I'll see if I can get a successful build on my windows device and troubleshoot there. |
This one: Appears to be an InvalidProgramException in transform.c's handling of CEE_RET, which looks like this: if (td->sp>td->stack) {
mono_error_set_generic_error (error, "System", "InvalidProgramException", "stack overflow in CEE_RET");
goto exit;
}This suggests that something in this PR is unbalancing the interpreter stack. EDIT: Specifically in Ascii.HasMatch |
OK, the missing ceq is a red herring, disabling the optimization responsible for that doesn't fix it. EDIT: I think |
Changing emit_common_simd_epilogue (TransformData *td, MonoClass *vector_klass, MonoMethodSignature *csignature, int vector_size, gboolean allow_void)
{
+ if (csignature->hasthis)+ td->sp--;
td->sp -= csignature->param_count;I'm not sure that's quite right though. |
tannergooding
commented
Jul 12, 2024
Thanks so much for the help here! I believe the new commit should correctly handle instance methods more generally speaking now. I'll still want to fix the jiterpreter to handle these new cases as well and ensure the MonoJIT/AOT path is passing, but I think I should be unblocked now! |
tannergooding
commented
Jul 19, 2024
Now that the same size bitcasts are well handled and showing the expected perf improvements, I plan on cleaning this up next week, but I expect it won't land for .NET 9 before the Preview 7 snap |
tannergooding
commented
Jul 23, 2024
Going to close this one. There's some other changes that are needed for mono-wasm before it can be done there (namely support for |

No description provided.