[PATCH] Fix PR57451 (Incorrect debug ranges emitted for -freorder-blocks-and-partition -g)

Jeff Law law@redhat.com
Tue Aug 20 08:35:00 GMT 2013


On 08/19/2013 11:21 PM, Teresa Johnson wrote:
> On Mon, Aug 19, 2013 at 5:01 PM, Teresa Johnson <tejohnson@google.com> wrote:
>> On Mon, Aug 19, 2013 at 11:44 AM, Jeff Law <law@redhat.com> wrote:
>>> On 08/19/2013 12:34 PM, Teresa Johnson wrote:
>>>>
>>>> Ping.
>>>> Thanks,
>>>> Teresa
>>>>
>>>> On Sun, Aug 11, 2013 at 9:35 PM, Teresa Johnson <tejohnson@google.com>
>>>> wrote:
>>>>>
>>>>> This patch fixes PR rtl-optimizations/57451 by preventing scopes and
>>>>> therefore lexical blocks from crossing split section boundaries.
>>>>> This will prevent debug info generation from using DW_AT_low_pc/high_pc
>>>>> pairs across the section boundary.
>>>>>
>>>>> Bootstrapped and tested on x86_64-unknown-linux-gnu. With this patch,
>>>>> a profilebootstrap with -freorder-blocks-and-partition force-enabled
>>>>> also passes. Ok for trunk?
>>>>>
>>>>> Thanks,
>>>>> Teresa
>>>>>
>>>>> 2013-08-11  Teresa Johnson  <tejohnson@google.com>
>>>>>
>>>>>           PR rtl-optimizations/57451
>>>>>           * final.c (reemit_insn_block_notes): Prevent lexical blocks
>>>>>           from crossing split section boundaries.
>>>
>>> This is fine.  Is there any way you can turn the steps mentioned in 57451
>>> into a dejagnu testcase?  Clearly it would only work in a native
>>> configuration due to the need to run the instrumented program.
>>
>> Since this was a compile-time failure (link-time actually), I could
>> just take the existing test case mentioned there and turn it into a
>> "-g -freorder-blocks-and-partition" test (probably by cloning as a new
>> test case the g++.dg/tree-prof testsuite directory). Does that seem
>> reasonable?
>
> Here is the new patch with that test added. Passes bootstrap and
> regression tests on x86_64-unknown-linux-gnu. Ok for trunk?
> Thanks,
> Teresa
>
> 2013-08-19  Teresa Johnson  <tejohnson@google.com>
>
>          PR rtl-optimizations/57451
>          * final.c (reemit_insn_block_notes): Prevent lexical blocks
>          from crossing split section boundaries.
>
>          * testsuite/g++.dg/tree-prof/pr57451.C: New test.
Yea, that's great.  Thanks for pulling together the testcase.

Please install.

Thanks,
Jeff



More information about the Gcc-patches mailing list