[LLVMdev] [cfe-dev][Openmp-dev] Provide LLVM IR and OpenMP LLVM IR as input in a Pass (original) (raw)
Hal Finkel hfinkel at anl.gov
Tue Oct 21 15:48:37 PDT 2014
- Previous message: [LLVMdev] [cfe-dev][Openmp-dev] Provide LLVM IR and OpenMP LLVM IR as input in a Pass
- Next message: [LLVMdev] Fetching the functions in C files
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
----- 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 5:43:08 PM Subject: Re: [LLVMdev] [cfe-dev][Openmp-dev] Provide LLVM IR and OpenMP LLVM IR as input in a Pass
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?
You could probably hack it to do this (I believe that in effect, it will do this already if there is an "if" clause in the OpenMP pragma). If you insert "if" clauses dependent on some variable you understand, perhaps you could analyze the branches on that variable and base your analysis on that.
-Hal
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
-- Hal Finkel Assistant Computational Scientist Leadership Computing Facility Argonne National Laboratory
- Previous message: [LLVMdev] [cfe-dev][Openmp-dev] Provide LLVM IR and OpenMP LLVM IR as input in a Pass
- Next message: [LLVMdev] Fetching the functions in C files
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]