# dmd.s2ir

Convert statements to Intermediate Representation (IR) for the back-end.

#### Authors

Walter Bright

#### License

Boost License 1.0

Source: s2ir.d

Documentation: https://dlang.org/phobos/dmd_s2ir.html

Coverage: https://codecov.io/gh/dlang/dmd/src/master/src/dmd/s2ir.d

- `insertFinallyBlockCalls`

  #### Declaration

  `void `insertFinallyBlockCalls`(block* `startblock`);`

  Insert finally block calls when doing a goto from inside a try block to outside. Done after blocks are generated because then we know all the edges of the graph, but before the Bpred's are computed. Only for EH_DWARF exception unwinding.

  #### Parameters

  `block* `startblock`` | first block in function

- `insertFinallyBlockGotos`

  #### Declaration

  `void `insertFinallyBlockGotos`(block* `startblock`);`

  Insert gotos to finally blocks when doing a return or goto from inside a try block to outside. Done after blocks are generated because then we know all the edges of the graph, but before the Bpred's are computed. Only for functions with no exception handling. Very similar to insertFinallyBlockCalls().

  #### Parameters

  `block* `startblock`` | first block in function