This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Questions about tree-cfg.c:remove_forwarder_block.
- From: Kazu Hirata <kazu at cs dot umass dot edu>
- To: gcc at gcc dot gnu dot org
- Cc: dvorakz at suse dot cz, law at redhat dot com, stevenb at suse dot de
- Date: Tue, 18 Jan 2005 10:24:54 -0500 (EST)
- Subject: Questions about tree-cfg.c:remove_forwarder_block.
Hi,
tree-cfg.c:remove_forwarder_block contains
/* If the destination block consists of an nonlocal label, do not merge
it. */
label = first_stmt (bb);
if (label
&& TREE_CODE (label) == LABEL_EXPR
&& DECL_NONLOCAL (LABEL_EXPR_LABEL (label)))
return false;
1) Is a nonlocal label guaranteed to be the first statement? If not,
we need to fix the code above such that it will scan all labels of
the given basic block, looking for a nonlocal label just like
tree_forwarder_block_p.
2) Should "first_stmt (bb)" be "first_stmt (dest)? The comment and
and the code do not agree. Plus, the code as is is completely
subsumed by tree_forwarder_block_p.
Thanks in advance,
Kazu Hirata