Thoughts about semantics of BB_VISITED

Daniel Berlin dberlin@dberlin.org
Fri Jan 7 17:54:00 GMT 2005



On Fri, 7 Jan 2005, Zdenek Dvorak wrote:

> Hello,
>
>>>>> 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?

--Dan



More information about the Gcc mailing list