-
Notifications
You must be signed in to change notification settings - Fork 73
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
Add CoreCLR personality function and EH table emission #43
Conversation
For callers that have the name of the personality routine but not a corresponding Value.
1fe215b
to
a90e211
Compare
Something along the lines of |
assert(isa<CleanupHandler>(Action)); | ||
Current->CatchType = 0; | ||
} else { | ||
assert(isa<Operator>(TheCatchHandler->getSelector()) && "Expected IntToPtr(handkerToken)"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
handker
--> handler
LGTM, just a few small notes. |
a90e211
to
5a411e3
Compare
Processing happens in two stages (as for other WinEH personalities): - FunctionLoweringInfo::set computes the parent relation on handler actions. ClrEHFuncInfo is added to MachineModuleInfo to facilitate this. - WinException::endFunction reports funclet begin/end offsets in .xdata after unwind info, and reports EH clauses after the final funclet's unwind info. Note: this is a provisional change to facilitate exploring exception handling in LLILC, and will need to be reworked when LLVM's EH representation is changed for Windows-style targets -- see http://thread.gmane.org/gmane.comp.compilers.llvm.devel/85783
5a411e3
to
b289459
Compare
Updated as suggested; merging into EH branch. |
Add CoreCLR personality function and EH table emission
This is a PR for changes going into the newly-created EH branch. The purpose is to park the changes-so-far based on the soon-to-be-abandoned WinEH approach of using Itanium-style IR paired with funclet outlining in WinEHPrepare. Support will be reworked when the new IR representation lands. I'm going to shift focus to aspects of EH that are independent of the impending rewrite (e.g. filter function outlining). Putting these changes here lets anyone curious see where things are/were heading and provide feedback, and lets me park similar changes dependent on this in the EH branch of LLILC.