[LLVMdev] LLVM and OpenMP
Daniel Berlin
dberlin at dberlin.org
Fri Jan 18 21:47:30 PST 2008
On Jan 17, 2008 6:25 PM, Vikram S. Adve <vadve at uiuc.edu> wrote:
> >> Yes, I'd strongly suggest implementing one of the approaches based
> >> on the
> >> chrec analysis we have in the scev pass.
> >>
> >
> > Yup, just get the array accesses under scev form, and set a constraint
> > system from these. Once you set up the constraint systems for the
> > dependence distance vectors, you're almost done. You can look at how
> > this is set up in gcc trunk tree-data-ref.c, and search for omega.
> >
> > I would recommend the omega test: get the c++ code for omega lib from
> > http://www.cs.umd.edu/projects/omega/
>
> Regardless of which solver you use, you should keep a clean interface
> between your constraint representation and the solver. I like Omega a
> lot and it is a fine choice for the first solver. Although it is very
> powerful, even it cannot handle symbolic loop strides. Perhaps more
> importantly for common uses, for many trivial cases (A[x] and A[x+1]),
> setting up the Omega data structures to invoke the solver can be too
> heavyweight. It could be worthwhile to add one or more simple solvers
> (see the Allen and Kennedy textbook for examples) before falling back
> on Omega.
Sure, and this is exactly what tree-data-ref does (we use a number of
simple solvers, but leave the hard stuff to omega)
More information about the llvm-dev
mailing list