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

[mono][llvm] Fully support .NET exceptions with LLVM on x64, x86, arm64, arm32 #63404

Closed
1 of 9 tasks
imhameed opened this issue Jan 5, 2022 · 2 comments
Closed
1 of 9 tasks
Assignees
Labels
area-Codegen-LLVM-mono runtime-mono specific to the Mono runtime tracking This issue is tracking the completion of other related issues.
Milestone

Comments

@imhameed
Copy link
Contributor

imhameed commented Jan 5, 2022

  • Create a Mono-specific EH personality, to support associating outlined filter functions with individual catchpad or landingpad instructions (by scanning their IR parameter lists for constant function pointers)
  • Use llvm.localescape to mark filter-captured values
  • Translate exception filters into outlined filter functions
  • Support nested clauses either by:
    • Using a scheme to encode nested filters using landingpad, or
    • Using catchswitch, catchpad, and cleanuppad, and removing Windows-specific assumptions associated with these IR ops found during testing
  • Update the Mono unwinder to support all of the above

Also see:

@imhameed imhameed added runtime-mono specific to the Mono runtime area-Codegen-LLVM-mono labels Jan 5, 2022
@imhameed imhameed added this to the 7.0.0 milestone Jan 5, 2022
@imhameed imhameed self-assigned this Jan 5, 2022
@dotnet-issue-labeler dotnet-issue-labeler bot added the untriaged New issue has not been triaged by the area owner label Jan 5, 2022
@imhameed imhameed removed the untriaged New issue has not been triaged by the area owner label Jan 5, 2022
@SamMonoRT SamMonoRT added the tracking This issue is tracking the completion of other related issues. label Jan 7, 2022
@SamMonoRT
Copy link
Member

cc @vargaz

@SamMonoRT SamMonoRT assigned BrzVlad and unassigned imhameed Mar 1, 2022
@BrzVlad BrzVlad modified the milestones: 7.0.0, 8.0.0 Jul 23, 2022
@SamMonoRT SamMonoRT assigned jandupej and unassigned BrzVlad Aug 3, 2022
@jandupej
Copy link
Member

Simulations show that the performance and binary size benefits would be minimal. Closing.

@ghost ghost locked as resolved and limited conversation to collaborators Apr 20, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-Codegen-LLVM-mono runtime-mono specific to the Mono runtime tracking This issue is tracking the completion of other related issues.
Projects
None yet
Development

No branches or pull requests

4 participants