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
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
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
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
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);
+
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
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
+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