forked from mono/mono
-
Notifications
You must be signed in to change notification settings - Fork 522
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
Unity master sync il2cpp #1115
Merged
Merged
Unity master sync il2cpp #1115
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
joshpeterson
approved these changes
Jan 2, 2019
eb6f95e
to
53db8e7
Compare
…d, so we can use barriers on both mono and il2cpp
…g sequence point until actually needed. Brings use from ~20x slower to ~5x slower when debugger codegen is enabled vs no debugger codegen.
… per assembly table rather than in metadata binary file. This is step towards per assembly conversion.
The Suspend debugger test was hanging intermittently on most platforms. These seemed to occur because the codegen checks for `g_Il2CppDebuggerCheckPointEnabled` were not getting the proper value, and assuming the check point was not set, so the VM would not suspend. This meant that the main thread could not be suspended when the debugger was trying to exit, so the main thread kept looping forever, with out allowing the debugger to exit it.
The Mono implementation of mono_runtime_try_shutdown does not actually shut down the VM. Instead, it sets the flags to indicate the VM is shutting down. The VM should actually shutdown in mono_runtime_quit. In some cases, we see this code path taken when processing the CMD_VM_EXIT command. This seems unlikely, but can happen when the code above cannot find a suspended managed thread. If mono_runtime_try_shutdown actually waits for managed threads to complete, it will hang, as the main thread won't be suspended because resume_vm is called just above mono_runtime_try_shutdown. So for IL2CPP mono_runtime_try_shutdown doesn't do anything, but mono_runtime_quit will actually shutdown the VM.
Since we run the Tiny profile on the libil2cpp backend, we don't need any differences in this file.
* Ignoring the EventSets test because it tests exceptions. * Fixing the vm.Exit() path that doesn't use System.Environment.Exit().
This reverts part of 78cc586d935f2009058602f2bd9adedca1442442, now that `mono_runtime_try_shutdown` does not actually shut down, but instead does nothing with IL2CPP.
The Mono implementation of mono_runtime_try_shutdown does not actually shut down the VM. Instead, it sets the flags to indicate the VM is shutting down. The VM should actually shutdown in mono_runtime_quit. In some cases, we see this code path taken when processing the CMD_VM_EXIT command. This seems unlikely, but can happen when the code above cannot find a suspended managed thread. If mono_runtime_try_shutdown actually waits for managed threads to complete, it will hang, as the main thread won't be suspended because resume_vm is called just above mono_runtime_try_shutdown. So for IL2CPP mono_runtime_try_shutdown doesn't do anything, but mono_runtime_quit will actually shutdown the VM.
Collect sequence points per assembly Retrieve sequence point information per image Write all debugger structures to a single file for each assembly Write codegen and debugger structures as C code. This saves ~40% compile time on MSVC
Defines in the IL2CPP code should not be named for UNITY, as we want IL2CPP to work independently. Clean up the names of the `UNITY_TINY` defines then by renaming them. This change should have no impact on runtime behavior or code size.
With IL2CPP, we don't have a good way to stop managed threads. So let's just ignore that and exit the process. This won't clean up and run finalizers, but the process it ending anyway, so we don't care too much.
… macro invocation instead of looking up from index; hard code sequence point type into macro invocation
96a6b12
to
46ed83e
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Merge IL2CPP changes up through commit aebcd0f844270d5f407ec3d22f20a066d7028d36