<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div>Yes, this is what I have been thinking.</div><div>I talked with the Polly developers and what they suggested me is to analyze the non-OpenMP IR code.</div><div>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.</div><div><br></div><div>Do you think this is something feasible?</div><div><br></div><div>Thanks.</div><div>Simone</div><div><br></div><div><div>On Oct 21, 2014, at 15:02, Hal Finkel <<a href="mailto:hfinkel@anl.gov">hfinkel@anl.gov</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">----- Original Message -----<br><blockquote type="cite">From: "Simone Atzeni" <<a href="mailto:simone.at@gmail.com">simone.at@gmail.com</a>><br>To: "Hal Finkel" <<a href="mailto:hfinkel@anl.gov">hfinkel@anl.gov</a>><br>Cc: <a href="mailto:llvmdev@cs.uiuc.edu">llvmdev@cs.uiuc.edu</a>, <a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a>, <a href="mailto:openmp-dev@dcs-maillist2.engr.illinois.edu">openmp-dev@dcs-maillist2.engr.illinois.edu</a><br>Sent: Tuesday, October 21, 2014 3:52:38 PM<br>Subject: Re: [LLVMdev] [cfe-dev][Openmp-dev] Provide LLVM IR and OpenMP LLVM IR as input in a Pass<br><br><br><blockquote type="cite"><blockquote type="cite">I want to use the pass Polly to find any data dependence in the<br>code.<br>Since it does not work on OpenMP,<br></blockquote><br>Why not? The loops in the outlined OpenMP regions are just regular<br>loops (with runtime bounds). Can polly not handle them?<br></blockquote><br>I tried it, it does not work and I also talked already with the Polly<br>developers. They are slightly different, for example when the<br>pragmas are translated actually the compiler introduces new<br>functions and Polly get confused.<br></blockquote><br>Right. So the long-term solution here is to figure out what enhancements are necessary to the various components to make this work.<br><br><blockquote type="cite"><br><blockquote type="cite"><br><blockquote type="cite">I was thinking to apply it on the<br>not-OpenMP IR, then I need the results of Polly to apply other<br>passes to the OpenMP IR.<br></blockquote><br>I don't think this will work for the OpenMP'd loops. The IR will<br>look completely different, be in different functions, etc.<br></blockquote><br>What I did, and it works, is to build a script that call clang with<br>Polly the first time and write the results in a file, then call<br>Clang again with OpenMP and at the point I can apply other passes on<br>the OpenMP IR reading the Polly results from that file.<br>But it’s kind of a “dirty" solution, I was wondering if I can, in<br>some way, introduce my own option "-myoption” that compile the code<br>in both ways and make it available to the passes I want to call.<br></blockquote><br>Not currently.<br><br>-Hal<br><br><blockquote type="cite"><br>Simone<br></blockquote><br>--<span class="Apple-converted-space"> </span><br>Hal Finkel<br>Assistant Computational Scientist<br>Leadership Computing Facility<br>Argonne National Laboratory</div></blockquote></div><br></body></html>