diff options
| author | Andrew MacLeod <amacleod@cygnus.com> | 1999-08-10 16:19:16 +0000 |
|---|---|---|
| committer | Andrew Macleod <amacleod@gcc.gnu.org> | 1999-08-10 16:19:16 +0000 |
| commit | 1ef1bf063b0a944563d37d7d079d9f860d149c0b (patch) | |
| tree | 2b4a46a35a3de3f7ea944875d45ee6b88e31d370 /gcc/rtl.h | |
| parent | a8688bd6e92665a50b78fb7b5331c879f1f99801 (diff) | |
| download | gcc-1ef1bf063b0a944563d37d7d079d9f860d149c0b.zip gcc-1ef1bf063b0a944563d37d7d079d9f860d149c0b.tar.gz gcc-1ef1bf063b0a944563d37d7d079d9f860d149c0b.tar.bz2 | |
except.h (eh_nesting_info): Add new structure defintion.
Tue Aug 10 10:47:42 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
* except.h (eh_nesting_info): Add new structure defintion.
(init_eh_nesting_info, free_eh_nesting_info): Add function prototypes.
(reachable_handlers, update_rethrow_references): Add function
prototypes.
* rtl.h (struct rtvec_def): Update comments. REG_EH_RETHROW takes
a rethrow symbol instead of an integer exception region number.
* flow.c (Make_edges): Use new exception nesting routines to determine
which handlers are reachable from a CALL or asynchronous insn.
Dont add an edge for calls with a REG_EH_REGION of -1 to non-local
goto receivers.
(delete_eh_regions): Update rethrow labels, and don't delete
regions which are the target of a rethrow.
* except.c (struct func_eh_entry): Add rethrow_ref field, now we can
avoid overloading the SYMBOL_REF_USED flag.
(rethrow_symbol_map): Use new rethrow_ref field.
(rethrow_used): Use new rethrow_ref field.
(expand_rethrow): REG_EH_RETHROW now has a SYMBOL_REF instead
of an integer. Fix formatting.
(output_exception_table_entry): Use new rethrow_ref field.
(can_throw): Check for EH_REGION_NOTE before deciding
whether a CALL can throw or not.
(scan_region): Call rethrow_used() instead of accessing data structure.
(update_rethrow_references): New function to make sure only regions
which are still targets of a rethrow are flagged as such.
(process_nestinfo): New static function to initialize a handler
list for a specific region.
(init_eh_nesting_info): New function to allocate and initialize
the list of all EH handlers reachable from all regions.
(reachable_handlers): New function to retrieve the list of handlers
reachable from a specific region and insn.
(free_eh_nesting_info): New function to dispose of a list of
reachable handlers.
From-SVN: r28647
Diffstat (limited to 'gcc/rtl.h')
| -rw-r--r-- | gcc/rtl.h | 12 |
1 files changed, 6 insertions, 6 deletions
@@ -344,13 +344,13 @@ typedef struct rtvec_def{ rtx is used instead of intuition. */ /* REG_EH_REGION is used to indicate what exception region an INSN belongs in. This can be used to indicate what region a call may throw - to. A REGION of 0 indicates that a call cannot throw at all. - A REGION of -1 indicates that it cannot throw, nor will it execute + to. a REGION of 0 indicates that a call cannot throw at all. + a REGION of -1 indicates that it cannot throw, nor will it execute a non-local goto. - REG_EH_RETHROW is used to indicate what that a call is actually a - call to rethrow, and specifies which region the rethrow is targetting. - This provides a way to generate the non standard flow edges required - for a rethrow. */ + REG_EH_RETHROW is used to indicate that a call is actually a + call to rethrow, and specifies the rethrow symbol for the region + the rethrow is targetting. This provides a way to generate the + non standard flow edges required for a rethrow. */ #define REG_NOTES(INSN) ((INSN)->fld[6].rtx) |
