Thoughts about semantics of BB_VISITED
Daniel Berlin
dberlin@dberlin.org
Fri Jan 7 15:23:00 GMT 2005
On Fri, 7 Jan 2005, Diego Novillo wrote:
> 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 you get screwed, because it clears the visited flags when it's done
(see dfs_enumerate_from).
Also note that get_loop_body_in_dom_order doesn't touch the visited flags.
Whatever get_loop_body does to visited flags should at the very least be
documented.
--Dan
More information about the Gcc
mailing list