[LLVMdev] Make LoopBase inherit from "RegionBase"?
jan_sjodin at yahoo.com
Fri Jan 22 08:30:11 PST 2010
On 01/21/10 20:42, Jan Sjodin wrote:
>>>> Imo, a loop is simply a special kind of region, so a "filter" is perhaps the way to
>>>> go if you are interested in loops. Regions containing loops will have to be inspected
>>>> using the PST.
>>> Except loops that have multiple exits. they are not necessarily (single
>>> entry single exit) region, if the exists do not jump to the same exit bb.
>> Yes, my assumption was to classify structured loops, but that does not exclude unstructured
>> regions that contain unstructured loops.
> Can you explain your definition of structured/unstructured loops/regions.
Unstructured regions in this case means there is control flow in the region that is not
interesting to look into or classify any further.
> A structured loop does have just one exit?
When you say "structured loop" I believe that means it has a single exit and does not use break
or goto to exit the loop. A loop contained within a region may have multiple exits. If you need
to reason about these kinds of loops, you can create a special kind of region for them. If they
are not interesting, then you would simply treat them as unstructured SESE-regions. This mostly
relates to creating convenience functions around regions so that you can easily extract the body,
exit-edge[s], then/else portions of contitionals etc.
> Does a unstructured region have multiple exits, or it just contains
> unstructured code?
It just contains unstructured code, that cannot be decomposed into smaller
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev