This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]