[LLVMdev] region pass - new pass for llvm

Renato Golin rengolin at systemcall.org
Mon Mar 8 03:36:32 PST 2010


Hi Tobias,


> What do you mean with a closed CFG?

Closed region, one entry/one exit.


>> Still, non-affine loops can be converted to affine loops in many ways
> How would you do this? As we use the scalar evolution analysis to analyze
> the loops, we do not depend on any syntactic form. Therefore to change
> non-affine loops to affine loops, I believe it takes some heavier
> transformations.

Which can be added to Poly in a later stage, right? Instead of going
through all loops again, it could use the "is not affine" flag of poly
and try to optimize only the needed ones.


> And why would something look again at code polly hast just seen?

Poly simplifies the region's analysis by ruling out some things, like
"this region is const" or "this loop is affine". Other passes could
benefit from such analysis to simplify their code and reduce their
footprint.


> At first I would start with a pass that detects if regions are clean and a
> polly pass that skips non clean regions. Later on I would like to schedule
> several cleanup passes before polly to make more regions "clean", so that
> the can be optimized by polly.

Could that be a property of Polly? To get regions even if they aren't
clean and clean them? That would save one extra pass...


Maybe I'm completely wrong on assuming that Poly will generate (and
keep) all these metadata on the regions that could be used by other
passes, and that is where the confusion started...


-- 
cheers,
--renato

http://systemcall.org/

Reclaim your digital rights, eliminate DRM, learn more at
http://www.defectivebydesign.org/what_is_drm



More information about the llvm-dev mailing list