[LLVMdev] [cfe-dev][Openmp-dev] Provide LLVM IR and OpenMP LLVM IR as input in a Pass

Simone Atzeni simone.at at gmail.com
Tue Oct 21 15:43:08 PDT 2014


Yes, this is what I have been thinking.
I talked with the Polly developers and what they suggested me is to analyze the non-OpenMP IR code.
But since I need to compile the OpenMP code, they were proposing to instruct in some way the OpenMP front-end keep the original IR code (without OpenMP), for example via metadata.

Do you think this is something feasible?

Thanks.
Simone

On Oct 21, 2014, at 15:02, Hal Finkel <hfinkel at anl.gov> wrote:

> ----- Original Message -----
>> From: "Simone Atzeni" <simone.at at gmail.com>
>> To: "Hal Finkel" <hfinkel at anl.gov>
>> Cc: llvmdev at cs.uiuc.edu, cfe-dev at cs.uiuc.edu, openmp-dev at dcs-maillist2.engr.illinois.edu
>> Sent: Tuesday, October 21, 2014 3:52:38 PM
>> Subject: Re: [LLVMdev] [cfe-dev][Openmp-dev] Provide LLVM IR and OpenMP LLVM IR as input in a Pass
>> 
>> 
>>>> I want to use the pass Polly to find any data dependence in the
>>>> code.
>>>> Since it does not work on OpenMP,
>>> 
>>> Why not? The loops in the outlined OpenMP regions are just regular
>>> loops (with runtime bounds). Can polly not handle them?
>> 
>> I tried it, it does not work and I also talked already with the Polly
>> developers. They are slightly different, for example when the
>> pragmas are translated actually the compiler introduces new
>> functions and Polly get confused.
> 
> Right. So the long-term solution here is to figure out what enhancements are necessary to the various components to make this work.
> 
>> 
>>> 
>>>> I was thinking to apply it on the
>>>> not-OpenMP IR, then I need the results of Polly to apply other
>>>> passes to the OpenMP IR.
>>> 
>>> I don't think this will work for the OpenMP'd loops. The IR will
>>> look completely different, be in different functions, etc.
>> 
>> What I did, and it works, is to build a script that call clang with
>> Polly the first time and write the results in a file, then call
>> Clang again with OpenMP and at the point I can apply other passes on
>> the OpenMP IR reading the Polly results from that file.
>> But it’s kind of a “dirty" solution, I was wondering if I can, in
>> some way, introduce my own option "-myoption” that compile the code
>> in both ways and make it available to the passes I want to call.
> 
> Not currently.
> 
> -Hal
> 
>> 
>> Simone
> 
> -- 
> Hal Finkel
> Assistant Computational Scientist
> Leadership Computing Facility
> Argonne National Laboratory

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20141021/a6aece1a/attachment.html>


More information about the llvm-dev mailing list