Re: [google/gcc-4_9] Add -ftwo-level-line-tables and -gline-tables-only options

2015-01-29 Thread Cary Coutant
Is it correct that block_num has 1-1 mapping with block_table. And block_table has 1-1 mapping with logical_table? The first part, yes -- there's one entry in block_table for each block_num in the function tree. But two or more blocks may map to a single logical, and some blocks may not

Re: [google/gcc-4_9] Add -ftwo-level-line-tables and -gline-tables-only options

2015-01-29 Thread Dehao Chen
patch is ok for google branch. Dehao On Thu, Jan 29, 2015 at 1:11 PM, Cary Coutant ccout...@google.com wrote: Here's a very slightly revised patch, fixing a couple of bugs found during GDB testing. In out_logical_entry, I should pass along the value of is_stmt when creating a logical for

Re: [google/gcc-4_9] Add -ftwo-level-line-tables and -gline-tables-only options

2015-01-29 Thread Cary Coutant
Here's a very slightly revised patch, fixing a couple of bugs found during GDB testing. In out_logical_entry, I should pass along the value of is_stmt when creating a logical for the calling context, so that we get a breakpoint location for the point of call: context = out_logical_entry

Re: [google/gcc-4_9] Add -ftwo-level-line-tables and -gline-tables-only options

2015-01-28 Thread Dehao Chen
On Sun, Jan 25, 2015 at 6:06 PM, Cary Coutant ccout...@google.com wrote: Add -ftwo-level-line-tables and -gline-tables-only options. With -ftwo-level-line-tables, GCC will generate two-level line tables, which adds inline call information to the line tables, obviating the need to keep bulky

Re: [google/gcc-4_9] Add -ftwo-level-line-tables and -gline-tables-only options

2015-01-28 Thread Dehao Chen
On Wed, Jan 28, 2015 at 3:04 PM, Cary Coutant ccout...@google.com wrote: +static subprog_entry * +add_subprog_entry (tree decl, bool is_inlined) +{ + subprog_entry **slot; + subprog_entry *entry; + + slot = subprog_table-find_slot_with_hash (decl, DECL_UID (decl), INSERT); +

Re: [google/gcc-4_9] Add -ftwo-level-line-tables and -gline-tables-only options

2015-01-28 Thread Dehao Chen
On Wed, Jan 28, 2015 at 4:34 PM, Cary Coutant ccout...@google.com wrote: Not quite clear why we need block_table. This table is not gonna be emitted. And we can easily get subprog_entry through block-block_num When final_scan_insn() calls dwarf2out_begin_block(), all it passes is a block

Re: [google/gcc-4_9] Add -ftwo-level-line-tables and -gline-tables-only options

2015-01-28 Thread Cary Coutant
Not quite clear why we need block_table. This table is not gonna be emitted. And we can easily get subprog_entry through block-block_num When final_scan_insn() calls dwarf2out_begin_block(), all it passes is a block number. I don't know a way to get from block number to the block, so I

Re: [google/gcc-4_9] Add -ftwo-level-line-tables and -gline-tables-only options

2015-01-28 Thread Cary Coutant
+static subprog_entry * +add_subprog_entry (tree decl, bool is_inlined) +{ + subprog_entry **slot; + subprog_entry *entry; + + slot = subprog_table-find_slot_with_hash (decl, DECL_UID (decl), INSERT); + if (*slot == HTAB_EMPTY_ENTRY) +{ + entry = XCNEW (struct