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

Hal Finkel hfinkel at anl.gov
Tue Oct 21 13:26:16 PDT 2014


----- Original Message -----
> From: "Simone Atzeni" <simone.at at gmail.com>
> To: 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:17:07 PM
> Subject: Re: [LLVMdev] [cfe-dev][Openmp-dev] Provide LLVM IR and OpenMP LLVM	IR as input in a Pass
> 
> 
> 
> Hi all,
> I am going to build a Pass/es that verify OpenMP code.
> 
> 
> 
> 
> When we compile an OpenMP program we give the option “-fopenmp” to
> clang.
> 
> 
> In this way the LLVM IR code obtained will reflect also the “#pragma”
> keywords in the code, let’s call it "OpenMP LLVM IR".
> 
> 
> 
> 
> 
> In my Pass/es before obtaining the OpenMP LLVM IR, I need to do some
> operation in the LLVM IR, that is the IR code obtained compiling the
> program without the flag “-fopenmp”.
> 
> 
> 
> 
> 
> So, to be clear my working flow would be:
> 
> 
> 
> 
> 
> - Run MyPass with in input the LLVM IR
> 
> 
> - Do some operation on it and get results
> 
> 
> - Run MyPass again or a different one (MyPass2) with in input the
> OpenMP LLVM IR and the results of the previous operations
> 
> 
> - Do other operations
> 
> 
> 
> 
> 
> Would it be possible doing something like this? Do you have any idea
> how should I proceed?
> 

I think it would be better if you gave us some idea of what you're trying to do. clang's OpenMP implementation turns the OpenMP pragmas into function calls to the runtime library. You can run passes on this IR as you would any other IR. When you say, "Do some operation on it and get results" do you mean generating code, linking and executing that code?

 -Hal

> 
> 
> 
> 
> I hope this is clear and you can give me some suggestion.
> 
> 
> 
> 
> 
> Thanks.
> 
> 
> Best Regards,
> Simone
> 
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> 

-- 
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory




More information about the llvm-dev mailing list