This repository has been archived by the owner on Mar 15, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 153
EH: Catch handler support in reader #66
Labels
Comments
This was referenced Feb 19, 2015
Closed
I've tagged this as Sprint 82 since it's what I'm currently working on, but the work is going to go into the EH branch first since more pieces will be needed before we catching exceptions will work at run-time. |
JosephTremoulet
added a commit
to JosephTremoulet/llilc
that referenced
this issue
Apr 22, 2015
Add a hook, fgEnterRegion, used during first-pass flow-graph construction to perform any necessary client actions for setting up regions. Implement fgEnterRegion in GenIR to create a landing pad for each protected region. Clauses are added for catch handlers in the landing pad; other handler types are stubbed out. Update FlowGraphSuccessorEdgeList to report a nominal edge from any handler-protected block to its handler block (even if no throwing instructions have been inserted into the source block yet); this conservative model is what the base Reader class is expecting in terms of EH flow (and in particular, this ensures that handlers are visited when determining reachable blocks to decide which blocks to run pass 2 over). Remove setupBlockForEH now that its functionality has been incorporated into fgEnterRegion. Update leave processing to generate a call to llvm.eh.endcatch whenever a catch handler is exited. Closes dotnet#66
JosephTremoulet
added a commit
to JosephTremoulet/llilc
that referenced
this issue
Apr 22, 2015
Add a hook, fgEnterRegion, used during first-pass flow-graph construction to perform any necessary client actions for setting up regions. Implement fgEnterRegion in GenIR to create a landing pad for each protected region. Clauses are added for catch handlers in the landing pad; other handler types are stubbed out. Update FlowGraphSuccessorEdgeList to report a nominal edge from any handler-protected block to its handler block (even if no throwing instructions have been inserted into the source block yet); this conservative model is what the base Reader class is expecting in terms of EH flow (and in particular, this ensures that handlers are visited when determining reachable blocks to decide which blocks to run pass 2 over). Remove setupBlockForEH now that its functionality has been incorporated into fgEnterRegion. Update leave processing to generate a call to llvm.eh.endcatch whenever a catch handler is exited. Closes dotnet#66
JosephTremoulet
added a commit
to JosephTremoulet/llilc
that referenced
this issue
Apr 23, 2015
Add a hook, fgEnterRegion, used during first-pass flow-graph construction to perform any necessary client actions for setting up regions. Implement fgEnterRegion in GenIR to create a landing pad for each protected region. Clauses are added for catch handlers in the landing pad; other handler types are stubbed out. Update FlowGraphSuccessorEdgeList to report a nominal edge from any handler-protected block to its handler block (even if no throwing instructions have been inserted into the source block yet); this conservative model is what the base Reader class is expecting in terms of EH flow (and in particular, this ensures that handlers are visited when determining reachable blocks to decide which blocks to run pass 2 over). Remove setupBlockForEH now that its functionality has been incorporated into fgEnterRegion. Update leave processing to generate a call to llvm.eh.endcatch whenever a catch handler is exited. Closes dotnet#66
Clearing Sprint 82 milestone since this is now checked in to the EH branch (#491). Leaving issue open since it's not in master. |
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Need to generate an appropriate landingpad for each catch-protected region.
Need to update call generation to generate invoke with edge to landingpad as well.
Part of #13.
The text was updated successfully, but these errors were encountered: