[LLVMdev] [RFC] Parallelization metadata and intrinsics in LLVM (for OpenMP, etc.)

Hal Finkel
Tue, 02 Oct 2012 05:37:58 -0000

On Mon, 01 Oct 2012 21:26:54 -0700
Chris Lattner <clattner at apple.com> wrote:

>
> On Oct 1, 2012, at 6:16 PM, greened at obbligato.org wrote:
>
> > Sanjoy Das <sanjoy at playingwithpointers.com> writes:
> >
> >> In short, I propose a intrinsic based approach which hinges on the
> >> concept of a "parallel map".  The immediate effect of
using
> >> intrinsics is that we no longer have to worry about missing
> >> metadata.  Moreover, we are still free to lower the intrinsics in
> >> a variety of ways -- including vectorizing them or lowering them
> >> to calls to an actual openmp backend.
> >
> > I'll re-ask here since this is in its own thread.
> >
> > Why can't we just make ordinary function calls to runtime
routines?
>
> I agree.  I can't imagine any practical way that a metadata-based
> approach could be preserved by optimizers.

Regarding the metadata approach, it depends on what you mean by
preserved. The trick is to make sure that transformations that don't
understand the metadata can't cause miscompiles. The specific scheme
that I proposed used a combination of procedurization and
cross-referencing metadata such that invalidated parallel metadata can
be detected and the entire enclosing parallel region can be dropped.

The proposal from Intel, which more-heavily uses intrinsics, has other
advantages, but will require more modifications to existing passes to
realize its potential optimization benefits.

 -Hal

>
> -Chris
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev



--
Hal Finkel
Postdoctoral Appointee
Leadership Computing Facility
Argonne National Laboratory