This is the mail archive of the gcc@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]

BB_RTL flag assertion on basic_block-s when dump_bb_info (and compiler probe)


Hello All,

Those interested in my compiler probe (see my talk at GCC Summit 2007)
could glance a snapshot on  http://starynkevitch.net/Basile/gcc-probe-combine.png
and download a patch from http://starynkevitch.net/Basile/basile-ggcc-patches.tgz
(which is updated frequently)

Now a question about basic_block flags (related to my compiler probe).

Several basic_block functions in gcc/tree-flow-inline.h contains the following assertion:
  gcc_assert (!(bb->flags & BB_RTL));
In particular, functions phi_nodes phi_nodes_ptr set_phi_nodes bb_stmt_list set_bb_stmt_list
some of them are called from dump_bb_info (which my compiler probe calls)

Apparently, a basic_block can be dumped even if it has BB_RTL flag set. But these assertions fails.
However, if they are disabled, the dump seems to happen normally.

Is there some risk in temporarily disabling theses assertions, for example with a flag
which some routines could temporarily set?

FWIW, for my compiler probe, I defined an int variable comprobe_bb_ok_rtl and replaced
the above assert with
   gcc_assert (comprobe_bb_ok_rtl || !(bb->flags & BB_RTL));
and its worked ok. Since I am calling dump_bb_info quite lately (in a pass_compiler_probe
just before pass_warn_function_noreturn) I also had to check for cfun, e.g. with

      /* Basile: both maybe_hot_bb_p & probably_never_executed_bb_p
	 functions crash without cfun */
      if (cfun && maybe_hot_bb_p (bb))
	fprintf (file, ", maybe hot");
      if (cfun && probably_never_executed_bb_p (bb))
	fprintf (file, ", probably never executed");

Since both maybe_hot_bb_p & probably_never_executed_bb_p requires a valid cfun

Am I doing things wrongly? (I just want to dump stuff, not change it).

Regards.
--
Basile STARYNKEVITCH         http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net | mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mine, sont seulement les miennes} ***


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