> Hello, > > I'm seeing compiler crashes during garbage collection when using mudflap. > > The problem appears to be that some basic_block_def structures point to > edge_prediction structures which point to edge_def structures that have > already been ggc_free()'d. > > Now, looking at remove_edge (cfg.c) is does indeed appear that it is > possible for edges to get deleted without the corresponding prediction > structure being removed as well ... > > How is this supposed to work?
I didn't have any cleanup_cfg in between earliest place putting predictions and the profiling pass consuming them, so this scenario didn't happen. This has however changed a long time ago. I guess just teaching remove_edge to walk prediction list if it is present and kill now dead predictions would not be perfomrance overkill as the predictions are rare, I can implement that if you pass me some testcase. Honza > > Bye, > Ulrich > > -- > Dr. Ulrich Weigand > Linux on zSeries Development > [EMAIL PROTECTED]