On Nov 18, 2014, at 16:21 , Olivier Hainque <[email protected]> wrote:
> On Nov 18, 2014, at 03:29 , Jason Merrill <[email protected]> wrote:
>> What happens when the outer loop hits a register that we've already seen as 
>> part of a span?

> I have a candidate improvement to prevent processing the same regno
> multiple times.
> 
> Will followup as soon as I have some test results.

Slightly delayed by transient local events which deferred
the production of test results of relevance.

The attached patches combined bootstrap and regtest fine on x86_64-linux.
We also have nominal test results with our 4.9 based series of compilers
in-house, including for the e500 family of targets.

OK to commit ?

Thanks for your feedback,

Olivier

Fix for unwinder aborts on e500:

2014-11-24  Olivier Hainque  <[email protected]>

        * dwarf2cfi.c (init_one_dwarf_reg_size): New helper, processing
        one particular reg for expand_builtin_init_dwarf_reg_sizes.  Take
        care not to process the same register multiple times.
        (expand_builtin_init_dwarf_reg_sizes): Rework to use helper and
        account for dwarf register spans.


[see attached file: init-dw-reg-span.diff]

Honor DWARF_REG_TO_UNWIND_COLUMN in dwarf_reg_size_table init:

2014-11-24  Olivier Hainque  <[email protected]>

        libgcc/
        * unwind-dw2.c (DWARF_REG_TO_UNWIND_COLUMN): Move default def to ...
    
        gcc/
        * defaults.h: ... here.
        * dwarf2cfi.c (init_one_dwarf_reg_size): Honor
        DWARF_REG_TO_UNWIND_COLUMN.

Attachment: init-dw-reg-column.diff
Description: Binary data

Attachment: init-dw-reg-span.diff
Description: Binary data

Reply via email to