On Mon, Nov 25, 2013 at 07:48:34PM +0100, Jan Hubicka wrote:
> > isn't exactly enabled by default ;)
> 
> OK :))
> > Anyway, all the pass needs is bodies of functions with "omp declare simd"
> > attribute which will be defined in the current partition, for functions
> > defined in other partitions all it wants to do is just clone the
> > DECL_EXTERNAL FUNCTION_DECL.  But it needs to be called before any
> > caller's of that function (whether extern/in another partition, or local
> > (defined in the current partition) will run through vectorization.
> 
> Yep, we will need to add an interface for late passes that needs to look
> only into specific bodies. (in fact, I already added cgraph_get_body
> and perhaps I can just integrate IPA transformation into that and make late 
> IPA passes
> to use them)

Note that while the late IPA pass for simd clones is enabled say for
-fopenmp, even if it needed the bodies that wouldn't be in current
partition, it wants to look only at a fraction of all functions, so loading
the bodies just in case for everything would be tons of unnecessary work.
If IPA-PTA needs bodies of everything always, perhaps it could call
cgraph_get_body at the beginning of handling each function?

        Jakub

Reply via email to