Hi Eli and Others<br><br>In response to your feedback, I have taken care of all your review comments - I removed clangOMP.a<br>and moved the implementation of  "class OmpPragmaHandler" to "clangLex.a".<br>
<br>The attached zipped file - namely - 'OpenMP_support_in_Clang.tar.gz' contains all the implemented<br>"patches" along with *newly* added source files. <br><br>Another attached text file - namely - 'OpenMP_support_in_Clang_Read_Me.txt' briefly describes the<br>
implementation.<br><br>You can also refer to the initial proposal document - namely - 'OpenMP_Support_in_Clang.pdf'.<br><br>Looking forward for your review comments.<br><br>--<br>mahesha<br><br><br><br><br><br><br>
<div class="gmail_quote">On Wed, Oct 10, 2012 at 10:30 AM, Mahesha HS <span dir="ltr"><<a href="mailto:mahesha.llvm@gmail.com" target="_blank">mahesha.llvm@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br><br><div class="gmail_quote"><div class="im">On Wed, Oct 10, 2012 at 5:40 AM, Eli Friedman <span dir="ltr"><<a href="mailto:eli.friedman@gmail.com" target="_blank">eli.friedman@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div>On Tue, Oct 9, 2012 at 4:37 AM, Mahesha HS <<a href="mailto:mahesha.llvm@gmail.com" target="_blank">mahesha.llvm@gmail.com</a>> wrote:<br>
> Hello All,<br>
><br>
> We would like to make a proposal to support OpenMP in CLANG. The goal of<br>
> this effort is to provide support for syntax<br>
><br>
> analysis (parsing), semantic analysis and AST implementation for OpenMP<br>
> constructs in CLANG.<br>
><br>
><br>
><br>
> We would like to defer the design for *lowering* based on the outcome of the<br>
> discussion happening in the LLVM dev list.<br>
><br>
> Our design is aimed at implementing the necessary support in CLANG<br>
> irrespective of how it is finally *lowered*.<br>
><br>
><br>
><br>
> Please find the details of the proposal and the current status in the<br>
> document attached.<br>
<br>
</div>Please don't add a separate clangOMP.a; you're implementing new<br>
parsing and semantic analysis, but it isn't conceptually separate from<br>
the existing parsing/semantic analysis.<br></blockquote></div><div><br>First, I would like to clarify that clangOMP.a implements only, *and only*<br>the "class OmpPragmaHandler" and nothing else. Parsing and Semantic<br>

Analysis is as usual will be done by clangParse.a and clangSema.a components<br>respectively. <br><br>Second, the reason for adding a separate clangOMP.a. is as follows. I looked into the <br>Clang code base, where few *pragmas* already being supported. I noticed that<br>

few pragmas like "\#pragma once" are implemented in "clangLex.a", and some other<br>pragmas like "\#pragma align" are implemented in "clangParse.a". Also, I thought,<br>OpenMP includes many pragma directives and clauses, so better to separate it out in <br>

clangOMP.a.<br><br>However, your feedback is well considered. I will remove clangOMP.a and move the <br>implementation of  "class OmpPragmaHandler" to "clangLex.a".<br> </div><div class="im"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<br>
I'm not entirely sure what sort of feedback you're expecting; ignoring<br>
the lowering, the part of implementing OpenMP that's likely to attract<br>
discussion is the AST representation, and you haven't described that<br>
in any detail.<br></blockquote></div><div><br>As we mentioned in the previous mail, we are currently, deferred the design for<br>*lowering* for the time being based on the outcome of the discussion happening <br>in LLVM dev list on the topic of supporting OpenMP in LLVM.<br>

<br>However, AST representation and implementation is completed for all OpenMP directives<br>and clauses, except for "critical" directive statement.<br><br>In the document, that we attached in our previous mail, we gave an idea of how the AST looks<br>

for an OpenMP directive statement as we did not want to bloat-up the proposal document<br>with too many details. However, we are ready to share code base, which will give more <br>information to provide comments.<br><br>
In summary, we have completed all the required *basic* infrastructure design and implementation<br>
to implement OpenMP in Clang. We would like to get feedback on it before proceeding for <br>further support.<br><br><br><span style="font-size:12.0pt;font-family:"Times New Roman","serif""></span> </div>
<div class="im">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
If you have patches that implement useful functionality; please submit<br>
sooner rather than later.  Doing a bunch of work in a private branch<br>
will mean more work for you in the long run because you won't get any<br>
feedback.<br></blockquote></div><div><br>We have all the functionality implemented to provide the basic infrastructure along with the <br>implementation of AST classes to represent different OpenMP directives and clauses, <br>

and the implementation of the "class OmpPrgamaHandler" as described in the doc. <br><br>We can share this code very soon, probably by tomorrow.<br><br>--<br>mahesha<br> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<span><font color="#888888"><br>
-Eli\<span class="HOEnZb"><font color="#888888"><br>
</font></span></font></span></blockquote></div><span class="HOEnZb"><font color="#888888"><br><br clear="all"><br>-- <br><div>mahesha</div><br>
</font></span></blockquote></div><br><br clear="all"><br>-- <br><div>mahesha</div><br>