[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