Simone Atzeni
2014-Oct-01 00:13 UTC
[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 hope this is clear and you can give me some suggestion. Thanks. Best Regards, Simone
Simone Atzeni
2014-Oct-21 20:17 UTC
[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 hope this is clear and you can give me some suggestion. Thanks. Best Regards, Simone -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20141021/dc76897d/attachment.html>
Hal Finkel
2014-Oct-21 20:26 UTC
[LLVMdev] [cfe-dev][Openmp-dev] Provide LLVM IR and OpenMP LLVM IR as input in a Pass
----- 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