From 69c32ec801a7b3b42778231b8187e77b8c63d0f2 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Tue, 15 Apr 2008 21:37:22 +0200 Subject: gengtype.c (write_root): Param_is argument is OK. * gengtype.c (write_root): Param_is argument is OK. * expr.c (expand_expr_real_1): Update call of get_exception_*. * function.h: Include varray.h (rtl_eh): New stucture based on except.c one. (call_site_record): New forward declaration and vector type. * calls.c (emit_call_1): Do not call note_current_region_may_contain_throw. * except.c (eh_status): Remove cur_region, try_region since they are unused. Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label, sjlj_fc, sjlj_exit_after to rth_eh in function.h. Remove call_site_data_used, call_site_data_size. Turn call_site_record into vector in function.h. (note_current_region_may_contain_throw): Remove. (get_exception_pointer, get_exception_filter): Do not take struct function argument; update. (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash, add_ttypes_entry, add_ehspec_entry, assign_filter_values, build_post_landing_pads, dw2_build_landing_pads, sjlj_assign_call_site_values, sjlj_mark_call_sites, sjlj_emit_function_enter, sjlj_emit_function_enter, sjlj_emit_function_exit, sjlj_emit_dispatch_table, sjlj_build_landing_pads, finish_eh_generation, remove_exception_handler_label, remove_eh_handler, maybe_remove_eh_handler, add_reachable_handler, reachable_handlers, expand_builtin_eh_return, expand_eh_return, add_action_record, collect_one_action_chain, add_call_site, convert_to_eh_region_ranges, sjlj_size_of_call_site_table, sjlj_output_call_site_table, output_function_exception_table, * except.h (note_current_region_may_contain_throw): Remove (get_exception_pointer, get_exception_filter): Do not take struct function argument. * Makefile.in (GTFILES): Put varargs before struct function. From-SVN: r134328 --- gcc/function.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'gcc/function.h') diff --git a/gcc/function.h b/gcc/function.h index edc7216..1fe6d6a 100644 --- a/gcc/function.h +++ b/gcc/function.h @@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see #include "tree.h" #include "hashtab.h" +#include "varray.h" /* Stack of pending (incomplete) sequences saved by `start_sequence'. Each element describes one pending sequence. @@ -136,6 +137,34 @@ struct expr_status GTY(()) rtx x_forced_labels; }; +typedef struct call_site_record *call_site_record; +DEF_VEC_P(call_site_record); +DEF_VEC_ALLOC_P(call_site_record, gc); + +/* RTL representation of exception handling. */ +struct rtl_eh GTY(()) +{ + rtx filter; + rtx exc_ptr; + + int built_landing_pads; + + rtx ehr_stackadj; + rtx ehr_handler; + rtx ehr_label; + + rtx sjlj_fc; + rtx sjlj_exit_after; + + htab_t GTY ((param_is (struct ehl_map_entry))) exception_handler_label_map; + + VEC(tree,gc) *ttype_data; + varray_type ehspec_data; + varray_type action_record_data; + + VEC(call_site_record,gc) *call_site_record; +}; + #define pending_stack_adjust (crtl->expr.x_pending_stack_adjust) #define inhibit_defer_pop (crtl->expr.x_inhibit_defer_pop) #define saveregs_value (crtl->expr.x_saveregs_value) @@ -146,6 +175,7 @@ struct expr_status GTY(()) struct gimple_df; struct temp_slot; typedef struct temp_slot *temp_slot_p; +struct call_site_record; DEF_VEC_P(temp_slot_p); DEF_VEC_ALLOC_P(temp_slot_p,gc); @@ -227,6 +257,7 @@ struct rtl_data GTY(()) struct varasm_status varasm; struct incoming_args args; struct function_subsections subsections; + struct rtl_eh eh; /* For function.c */ -- cgit v1.1