Go to the source code of this file.
Functions |
void | using_eh_for_cleanups (void) |
void | add_stmt_to_eh_lp (gimple, int) |
bool | remove_stmt_from_eh_lp_fn (struct function *, gimple) |
bool | remove_stmt_from_eh_lp (gimple) |
int | lookup_stmt_eh_lp_fn (struct function *, gimple) |
int | lookup_stmt_eh_lp (gimple) |
bool | make_eh_dispatch_edges (gimple) |
void | make_eh_edges (gimple) |
edge | redirect_eh_edge (edge, basic_block) |
void | redirect_eh_dispatch_edge (gimple, edge, basic_block) |
bool | operation_could_trap_helper_p (enum tree_code, bool, bool, bool, bool, tree, bool *) |
bool | operation_could_trap_p (enum tree_code, bool, bool, tree) |
bool | tree_could_trap_p (tree) |
bool | stmt_could_throw_p (gimple) |
bool | tree_could_throw_p (tree) |
bool | stmt_can_throw_external (gimple) |
bool | stmt_can_throw_internal (gimple) |
bool | maybe_clean_eh_stmt_fn (struct function *, gimple) |
bool | maybe_clean_eh_stmt (gimple) |
bool | maybe_clean_or_replace_eh_stmt (gimple, gimple) |
bool | maybe_duplicate_eh_stmt_fn (struct function *, gimple, struct function *, gimple, struct pointer_map_t *, int) |
bool | maybe_duplicate_eh_stmt (gimple, gimple) |
void | maybe_remove_unreachable_handlers (void) |
bool | verify_eh_edges (gimple) |
bool | verify_eh_dispatch_edge (gimple) |
Function Documentation
void add_stmt_to_eh_lp |
( |
gimple |
, |
|
|
int |
|
|
) |
| |
int lookup_stmt_eh_lp |
( |
gimple |
| ) |
|
bool make_eh_dispatch_edges |
( |
gimple |
| ) |
|
bool maybe_clean_eh_stmt |
( |
gimple |
| ) |
|
Given a statement OLD_STMT in OLD_FUN and a duplicate statement NEW_STMT
in NEW_FUN, copy the EH table data from OLD_STMT to NEW_STMT. The MAP
operand is the return value of duplicate_eh_regions.
void maybe_remove_unreachable_handlers |
( |
void |
| ) |
|
Remove unreachable handlers if any landing pads have been removed after
last ehcleanup pass (due to gimple_purge_dead_eh_edges).
bool operation_could_trap_helper_p |
( |
enum tree_code |
op, |
|
|
bool |
fp_operation, |
|
|
bool |
honor_trapv, |
|
|
bool |
honor_nans, |
|
|
bool |
honor_snans, |
|
|
tree |
divisor, |
|
|
bool * |
handled |
|
) |
| |
Helper function for operation_could_trap_p and stmt_could_throw_p.
Some floating point comparisons may trap.
Conversion of floating point might trap.
These operations don't trap with floating point.
Any floating arithmetic may trap.
Constructing an object cannot trap.
Any floating arithmetic may trap.
bool operation_could_trap_p |
( |
enum tree_code |
op, |
|
|
bool |
fp_operation, |
|
|
bool |
honor_trapv, |
|
|
tree |
divisor |
|
) |
| |
Return true if operation OP may trap. FP_OPERATION is true if OP is applied
on floating-point values. HONOR_TRAPV is true if OP is applied on integer
type operands that may trap. If OP is a division operator, DIVISOR contains
the value of the divisor.
bool remove_stmt_from_eh_lp |
( |
gimple |
| ) |
|
bool stmt_can_throw_external |
( |
gimple |
| ) |
|
bool stmt_can_throw_internal |
( |
gimple |
| ) |
|
bool stmt_could_throw_p |
( |
gimple |
| ) |
|
bool tree_could_throw_p |
( |
tree |
| ) |
|
bool tree_could_trap_p |
( |
tree |
| ) |
|
void using_eh_for_cleanups |
( |
| ) |
|
This routine is called from front ends to indicate eh should be used for
cleanups.
bool verify_eh_dispatch_edge |
( |
gimple |
| ) |
|
bool verify_eh_edges |
( |
gimple |
| ) |
|