diff options
author | Jakub Jelinek <jakub@gcc.gnu.org> | 2009-08-07 11:10:13 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2009-08-07 11:10:13 +0200 |
commit | b84b6ee6d9d34ac0ecac939bb59567bf77a34d3e (patch) | |
tree | 5eeac0fdc97c40150d620cbb95683e2da68e5217 | |
parent | 60419cc8912bb1b64298c8b83c55b071b0717a39 (diff) | |
download | gcc-b84b6ee6d9d34ac0ecac939bb59567bf77a34d3e.zip gcc-b84b6ee6d9d34ac0ecac939bb59567bf77a34d3e.tar.gz gcc-b84b6ee6d9d34ac0ecac939bb59567bf77a34d3e.tar.bz2 |
dwarf2out.c (output_fde): When doing hot/cold partitioning...
* dwarf2out.c (output_fde): When doing hot/cold partitioning, use
fde->dw_fde_begin as begin label instead of hot/cold label.
Use LLSDAC label instead of LLSDA for second section lsda.
(dwarf2out_do_cfi_startproc): Add SECOND argument. Use LLSDAC
label instead of LLSDA if it is true.
(dwarf2out_begin_prologue, dwarf2out_switch_text_section): Adjust
callers.
* except.c (add_call_site, dw2_size_of_call_site_table): Add
SECTION argument. Use it as index into crtl->eh.call_site_record
array.
(dw2_output_call_site_table): Likewise. Add CS_FORMAT argument,
use it to determine how to print table entries instead of using
#ifdef HAVE_AS_LEB128. For SECTION > 0 use hot resp. cold
label instead of normal begin label as base.
(sjlj_assign_call_site_values): Adjust add_call_site caller.
(convert_to_eh_region_ranges): When doing hot/cold partitioning,
ensure no EH range spans between sections and that landing pads
are always in the corresponding section.
(sjlj_size_of_call_site_table, sjlj_output_call_site_table): Adjust
for crtl->eh.call_site_record being an array rather than scalar.
(output_one_function_exception_table): New function, copied
from output_function_exception_table. Adjust
dw2_size_of_call_site_table, dw2_output_call_site_table
callers. For SECOND section use *C suffixed labels.
(output_function_exception_table): Call
output_one_function_exception_table and, when doing hot/cold
partitioning, also another time for the second section.
* opts.c: Include except.h.
(decode_options): Allow -freorder-blocks-and-partition with
exceptions, unless SJLJ or TARGET_UNWIND_INFO.
* Makefile.in (opts.o): Depend on $(EXCEPT_H).
* function.h (struct rtl_eh): Change call_site_record from
scalar into array of 2 elements.
* g++.dg/tree-prof/partition1.C: New test.
From-SVN: r150560
-rw-r--r-- | gcc/except.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/except.c b/gcc/except.c index d72029c..9fa60ff 100644 --- a/gcc/except.c +++ b/gcc/except.c @@ -174,7 +174,7 @@ static int add_call_site (rtx, int, int); static void push_uleb128 (varray_type *, unsigned int); static void push_sleb128 (varray_type *, int); #ifndef HAVE_AS_LEB128 -static int dw2_size_of_call_site_table (void); +static int dw2_size_of_call_site_table (int); static int sjlj_size_of_call_site_table (void); #endif static void dw2_output_call_site_table (int, int); |