This is the mail archive of the
mailing list for the GCC project.
Re: Thoughts about semantics of BB_VISITED
On Fri, 7 Jan 2005, Zdenek Dvorak wrote:
If the state of the mark would be undefined, you would need either to
clean them up first (over whole cfg), or use bitmaps for the marks.
Both of these approaches bring a risk of quadratic behavior.
Quadratic behaviour? How?
because the places where it is used now (most notably, get_loop_body)
do not look at whole cfg, but just at the loop body.
Oh, I see. So, this is inside a helper, not a pass. How unfortunate.
Perhaps get_loop_body should not use BB_VISITED. What if the pass
calling get_loop_body is using BB_VISITED for its own processing?
then it is doomed :-(. Quite often there is no real reason why a pass
should use BB_VISITED -- it can simply use sbitmap of basic blocks instead.
Why can't one just pass an sbitmap to get_loop_body, instead of it
destroying visited flags without telling you?