<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:"Calibri",sans-serif;}
span.EmailStyle21
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:119955564;
        mso-list-template-ids:-1384614764;}
@list l0:level1
        {mso-level-start-at:5;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1
        {mso-list-id:390158087;
        mso-list-type:hybrid;
        mso-list-template-ids:-193922968 134807567 134807577 134807579 134807567 134807577 134807579 134807567 134807577 134807579;}
@list l1:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l1:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l1:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l2
        {mso-list-id:636836928;
        mso-list-template-ids:-1994479672;}
@list l2:level1
        {mso-level-start-at:3;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l3
        {mso-list-id:792283297;
        mso-list-template-ids:445524596;}
@list l3:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l4
        {mso-list-id:1679039911;
        mso-list-template-ids:-1333597588;}
@list l4:level1
        {mso-level-start-at:2;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l4:level2
        {mso-level-start-at:2;
        mso-level-number-format:alpha-lower;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l5
        {mso-list-id:1939018420;
        mso-list-template-ids:2113563966;}
@list l5:level1
        {mso-level-start-at:2;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l5:level2
        {mso-level-start-at:3;
        mso-level-number-format:alpha-lower;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:12.0pt">Hello everyone,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt">I just opened up a PR to handle 2c (changing the file extensions).<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:12.0pt">Alexis Perry-Holby<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:12.0pt;color:#C1C1C1">Los Alamos National Laboratory</span><span style="font-size:12.0pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:12.0pt;color:#C1C1C1">Applied Computer Science (CCS-7)</span><span style="font-size:12.0pt"><o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span style="font-size:12.0pt"><o:p> </o:p></span></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:12.0pt;color:black">From: </span></b><span style="font-size:12.0pt;color:black">flang-dev <flang-dev-bounces@lists.llvm.org> on behalf of Richard Barton via flang-dev <flang-dev@lists.llvm.org><br>
<b>Reply-To: </b>Richard Barton <Richard.Barton@arm.com><br>
<b>Date: </b>Friday, January 24, 2020 at 9:15 AM<br>
<b>To: </b>"flang-dev@lists.llvm.org" <flang-dev@lists.llvm.org><br>
<b>Subject: </b>[EXTERNAL] Re: [flang-dev] Moving F18 closer to LLVM<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoPlainText">Hi all <o:p></o:p></p>
<p class="MsoPlainText"> <o:p></o:p></p>
<p class="MsoPlainText">David is getting the permissions to capture all this in a github project on llvm-project, meanwhile let me try and pull together the status of the upstreaming work.  <o:p></o:p></p>
<p class="MsoPlainText"> <o:p></o:p></p>
<p class="MsoPlainText">Reminder of the goal: a set of changes that make F18 more LLVM-like before submission to monorepo and a plan towards achieving that. Further LLVMification can continue in the monorepo.<o:p></o:p></p>
<p class="MsoPlainText"> <o:p></o:p></p>
<ol style="margin-top:0in" start="1" type="1">
<li class="MsoPlainText" style="mso-list:l1 level1 lfo3">CMake changes to support in-tree building:
<o:p></o:p>
<ol style="margin-top:0in" start="1" type="a">
<li class="MsoPlainText" style="mso-list:l1 level2 lfo3">Pat is preparing a PR for submission<o:p></o:p></li></ol>
</li><li class="MsoPlainText" style="mso-list:l1 level1 lfo3">Style changes that take us closer to LLVM
<o:p></o:p>
<ol style="margin-top:0in" start="1" type="a">
<li class="MsoPlainText" style="mso-list:l1 level2 lfo3">Clang format changes to bring F18 more in line with LLVM<o:p></o:p></li></ol>
</li></ol>
<p class="MsoPlainText" style="margin-left:1.5in;text-indent:-1.5in;mso-text-indent-alt:-9.0pt;mso-list:l1 level3 lfo3">
<![if !supportLists]><span style="mso-list:Ignore"><span style="font:7.0pt "Times New Roman"">                                                              
</span>i.<span style="font:7.0pt "Times New Roman"">      </span></span><![endif]>David has opened a PR here
<a href="https://github.com/flang-compiler/f18/pull/945">https://github.com/flang-compiler/f18/pull/945</a> and discussion is ongoing.<o:p></o:p></p>
<ol style="margin-top:0in" start="2" type="1">
<ol style="margin-top:0in" start="2" type="a">
<li class="MsoPlainText" style="mso-list:l1 level2 lfo3">Rationalisation of public/private headers<o:p></o:p></li></ol>
</ol>
<p class="MsoPlainText" style="margin-left:1.5in;text-indent:-1.5in;mso-text-indent-alt:-9.0pt;mso-list:l1 level3 lfo3">
<![if !supportLists]><span style="mso-list:Ignore"><span style="font:7.0pt "Times New Roman"">                                                              
</span>i.<span style="font:7.0pt "Times New Roman"">      </span></span><![endif]>David has opened up a PR
<a href="https://github.com/flang-compiler/f18/pull/943">https://github.com/flang-compiler/f18/pull/943</a> and discussion is ongoing.<o:p></o:p></p>
<ol style="margin-top:0in" start="2" type="1">
<ol style="margin-top:0in" start="3" type="a">
<li class="MsoPlainText" style="mso-list:l1 level2 lfo3">Renaming of files from .cc to .cpp<o:p></o:p></li></ol>
</ol>
<p class="MsoPlainText" style="margin-left:1.5in;text-indent:-1.5in;mso-text-indent-alt:-9.0pt;mso-list:l1 level3 lfo3">
<![if !supportLists]><span style="mso-list:Ignore"><span style="font:7.0pt "Times New Roman"">                                                              
</span>i.<span style="font:7.0pt "Times New Roman"">      </span></span><![endif]>Still TODO<o:p></o:p></p>
<ol style="margin-top:0in" start="3" type="1">
<li class="MsoPlainText" style="mso-list:l1 level1 lfo3">Making more general use of LLVM APIs and datastructures
<o:p></o:p>
<ol style="margin-top:0in" start="1" type="a">
<li class="MsoPlainText" style="mso-list:l1 level2 lfo3">This discussion needs to be started to agree on an initial list. David will start this off next week.<o:p></o:p></li></ol>
</li><li class="MsoPlainText" style="mso-list:l1 level1 lfo3">Port testing to use lit and FileCheck
<o:p></o:p>
<ol style="margin-top:0in" start="1" type="a">
<li class="MsoPlainText" style="mso-list:l1 level2 lfo3">We have agreement on a way forward and Luke has opened up a PR
<a href="https://github.com/flang-compiler/f18/pull/941">https://github.com/flang-compiler/f18/pull/941</a> to port the test suite to lit.<o:p></o:p></li><li class="MsoPlainText" style="mso-list:l1 level2 lfo3">We will discuss separately the future of each of the various custom scripts.
<o:p></o:p></li></ol>
</li></ol>
<p class="MsoPlainText" style="margin-left:1.5in;text-indent:-1.5in;mso-text-indent-alt:-9.0pt;mso-list:l1 level3 lfo3">
<![if !supportLists]><span style="mso-list:Ignore"><span style="font:7.0pt "Times New Roman"">                                                              
</span>i.<span style="font:7.0pt "Times New Roman"">      </span></span><![endif]>Frontrunner for test_errors.sh is to implement a flang --verify mode, but no firm conclusion yet.<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:1.5in;text-indent:-1.5in;mso-text-indent-alt:-9.0pt;mso-list:l1 level3 lfo3">
<![if !supportLists]><span style="mso-list:Ignore"><span style="font:7.0pt "Times New Roman"">                                                            
</span>ii.<span style="font:7.0pt "Times New Roman"">      </span></span><![endif]>No discussions yet on the others<o:p></o:p></p>
<p class="MsoPlainText" style="margin-left:1.5in;text-indent:-1.5in;mso-text-indent-alt:-9.0pt;mso-list:l1 level3 lfo3">
<![if !supportLists]><span style="mso-list:Ignore"><span style="font:7.0pt "Times New Roman"">                                                          
</span>iii.<span style="font:7.0pt "Times New Roman"">      </span></span><![endif]>Luke is going to investigate each script in turn.<o:p></o:p></p>
<ol style="margin-top:0in" start="5" type="1">
<li class="MsoPlainText" style="mso-list:l1 level1 lfo3">Build compiler support <o:p>
</o:p>
<ol style="margin-top:0in" start="1" type="a">
<li class="MsoPlainText" style="mso-list:l1 level2 lfo3">Steve is going to kick off a thread with details of what Nvidia are building internally.<o:p></o:p></li><li class="MsoPlainText" style="mso-list:l1 level2 lfo3">Next step is to improve public buildbot coverage of this. Plan will be needed.<o:p></o:p></li></ol>
</li></ol>
<p class="MsoPlainText"> <o:p></o:p></p>
<p class="MsoPlainText">Thanks<o:p></o:p></p>
<p class="MsoPlainText">Rich<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> flang-dev <flang-dev-bounces@lists.llvm.org> <b>
On Behalf Of </b>David Truby via flang-dev<br>
<b>Sent:</b> 20 January, 2020 21:04<br>
<b>To:</b> Doerfert, Johannes <jdoerfert@anl.gov><br>
<b>Cc:</b> flang-dev@lists.llvm.org<br>
<b>Subject:</b> Re: [flang-dev] Moving F18 closer to LLVM<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="color:#212121">I think I could make the page if I had commit access to llvm, which I don't. Do you know how I go about getting that or should I get someone else to do it? </span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="color:#212121"> </span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="color:#212121">Thanks</span><o:p></o:p></p>
<p class="MsoNormal" style="background:white"><span style="color:#212121">David Truby</span><o:p></o:p></p>
<div id="ms-outlook-mobile-signature">
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<p class="MsoNormal">Get <a href="https://aka.ms/ghei36">Outlook for Android</a><o:p></o:p></p>
</div>
<div class="MsoNormal" align="center" style="text-align:center">
<hr size="0" width="100%" align="center">
</div>
<div id="divRplyFwdMsg">
<p class="MsoNormal"><b><span style="color:black">From:</span></b><span style="color:black"> Doerfert, Johannes <<a href="mailto:jdoerfert@anl.gov">jdoerfert@anl.gov</a>><br>
<b>Sent:</b> Monday, January 20, 2020 9:02:46 PM<br>
<b>To:</b> David Truby <<a href="mailto:David.Truby@arm.com">David.Truby@arm.com</a>><br>
<b>Cc:</b> <a href="mailto:flang-dev@lists.llvm.org">flang-dev@lists.llvm.org</a> <<a href="mailto:flang-dev@lists.llvm.org">flang-dev@lists.llvm.org</a>><br>
<b>Subject:</b> Re: [flang-dev] Moving F18 closer to LLVM</span> <o:p></o:p></p>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span style="font-family:"Arial",sans-serif;color:black">I agree. we should have a flang project there anyway, tracking high level things there seems reasonable to me. Can you create such a page or so ppl need
 special permissions? </span><o:p></o:p></p>
</div>
<div>
<div>
<p class="MsoNormal"><span style="font-family:"Arial",sans-serif;color:black">--</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Arial",sans-serif;color:black">written from my phone</span><o:p></o:p></p>
</div>
<p class="MsoNormal"><span style="font-family:"Arial",sans-serif;color:black"> </span><o:p></o:p></p>
</div>
<div class="MsoNormal" align="center" style="text-align:center">
<hr size="0" width="100%" align="center">
</div>
<div id="x_divRplyFwdMsg">
<p class="MsoNormal"><b><span style="color:black">From:</span></b><span style="color:black"> David Truby <<a href="mailto:David.Truby@arm.com">David.Truby@arm.com</a>><br>
<b>Sent:</b> Monday, January 20, 2020 10:42:11 AM<br>
<b>To:</b> Doerfert, Johannes <<a href="mailto:jdoerfert@anl.gov">jdoerfert@anl.gov</a>><br>
<b>Cc:</b> <a href="mailto:flang-dev@lists.llvm.org">flang-dev@lists.llvm.org</a> <<a href="mailto:flang-dev@lists.llvm.org">flang-dev@lists.llvm.org</a>><br>
<b>Subject:</b> Re: [flang-dev] Moving F18 closer to LLVM</span> <o:p></o:p></p>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">Hi Johannes,</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">Somehow it completely slipped my mind that LLVM has a GitHub organization now!</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">GitHub has a "project board" feature that you can use to track things like this, you can see the one we're using for tracking OpenMP semantic checking here:</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black"><a href="https://github.com/orgs/flang-compiler/projects/1">https://github.com/orgs/flang-compiler/projects/1</a></span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">This might be a good way of tracking progress on this, what do you think?</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">David Truby</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black"> </span><o:p></o:p></p>
</div>
<div class="MsoNormal" align="center" style="text-align:center">
<hr size="0" width="100%" align="center">
</div>
<div id="x_x_divRplyFwdMsg">
<p class="MsoNormal"><b><span style="color:black">From:</span></b><span style="color:black"> Doerfert, Johannes <<a href="mailto:jdoerfert@anl.gov">jdoerfert@anl.gov</a>><br>
<b>Sent:</b> 20 January 2020 20:24<br>
<b>To:</b> David Truby <<a href="mailto:David.Truby@arm.com">David.Truby@arm.com</a>><br>
<b>Cc:</b> <a href="mailto:flang-dev@lists.llvm.org">flang-dev@lists.llvm.org</a> <<a href="mailto:flang-dev@lists.llvm.org">flang-dev@lists.llvm.org</a>><br>
<b>Subject:</b> Re: [flang-dev] Moving F18 closer to LLVM</span> <o:p></o:p></p>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal" style="background:white"><span style="color:#212121">I've seen similar things just as diffs on phab before. The llvm gh might have some better options, I don't know GH that well.</span><o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">--<br>
written from my phone<o:p></o:p></p>
<div class="MsoNormal" align="center" style="text-align:center">
<hr size="0" width="100%" align="center">
</div>
<div id="x_x_x_divRplyFwdMsg">
<p class="MsoNormal"><b><span style="color:black">From:</span></b><span style="color:black"> David Truby <<a href="mailto:David.Truby@arm.com">David.Truby@arm.com</a>><br>
<b>Sent:</b> Monday, January 20, 2020 3:26:22 AM<br>
<b>To:</b> Doerfert, Johannes <<a href="mailto:jdoerfert@anl.gov">jdoerfert@anl.gov</a>><br>
<b>Cc:</b> <a href="mailto:flang-dev@lists.llvm.org">flang-dev@lists.llvm.org</a> <<a href="mailto:flang-dev@lists.llvm.org">flang-dev@lists.llvm.org</a>><br>
<b>Subject:</b> Re: [flang-dev] Moving F18 closer to LLVM</span> <o:p></o:p></p>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">Hi Johannes,<br>
<br>
> On 15 Jan 2020, at 18:53, Doerfert, Johannes <<a href="mailto:jdoerfert@anl.gov">jdoerfert@anl.gov</a>> wrote:<br>
> <br>
> Thanks for this list!<br>
> <br>
> Maybe we should have it somewhere, e.g., on phab or GH so people can see<br>
> the current status.<br>
<br>
This sounds like a good idea, does Phabricator have a “projects” section where we can store this information and show which items are in progress? If so we should set this up on there so it is visible to the LLVM community at large rather than keeping it inside
 the F18 GitHub.<br>
<br>
Thanks<br>
David Truby<br>
<br>
> On 01/15, David Truby via flang-dev wrote:<br>
>> If anyone wants to discuss any of these separately in more detail, feel free to start a new thread for discussion.<br>
>> <br>
>> CMake Integration<br>
>> - I believe this is already done by Eric from PGI, and is on github in his FIR pull request.
<br>
>> Can this be split off and merged separately to speed things up?<br>
>> <br>
>> Change file handling to LLVM's file infrastructure<br>
>> - Our current file handling infrastructure prevents building on non-Unix systems (e.g. Windows), and duplicating file handling across two sub-projects is unnecessary.
<br>
>> - LLVM's file handling works slightly differently to F18's current infrastructure, however I believe F18 doesn't use file handling in many places so once the necessary changes have been worked out once it should not take long to change it in every instance.<br>
>> - A possible alternative would be to change F18's file handling to use LLVM internally but expose the same public interface. I consider this a less ideal but easier to implement solution.<br>
>> <br>
>> Change uses of <iostream> to LLVM's streams<br>
>> - For a number of reasons, LLVM has its own stream infrastructure to replace the standard streams.<br>
>> LLVM's streams are a drop in replacement for standard streams (modulo type signatures) so this
<br>
>> should be a fairly simple change.<br>
>> <br>
>> Remove Flang custom data structures that can be replaced with LLVM equivalents<br>
>> - This part is more open ended, as there are a lot of LLVM data structures that could be used with varying
<br>
>>  amounts of code change necessary. <br>
>> - Below is a list of structures I have thought of so far:<br>
>>       • std::string → StringRef where appropriate<br>
>>       • EnumSet → llvm:PackedVector (not sure if this is directly comparable)<br>
>>       • std::vector → llvm::SmallVector where appropriate<br>
>>       • CharBuf → llvm::MemoryBuffer (not sure if this is directly comparable)<br>
>>       • std::set → llvm::SmallSet/llvm::StringSet/llvm::DenseSet where appropriate<br>
>>       • std::map → llvm::StringMap/llvm::DenseMap where appropriate<br>
>>       • std::list → Something else everywhere it's used. LLVM discourages the use of std::list as there's almost always a better choice!<br>
>> <br>
>> Use llvm's error handling mechanisms<br>
>> - Switch any unreachable cases to use llvm_unreachable with an error message. Does F18 have its own unreachable<br>
>> Macro already? If so we can probably just search and replace for that.<br>
>> - Use llvm::Error instead of error codes if and when error codes are used.<br>
>> <br>
>> <br>
>> Please let me know if you think of anything else<br>
> <br>
> (A lot of these have been listed elsewhere already)<br>
> <br>
> File and folder names:<br>
> - Capital starting letter<br>
> - cc -> cpp<br>
> - More expressive names, e.g., filenames: <a href="https://github.com/flang-compiler/f18/blob/master/lib/common/template.h">
https://github.com/flang-compiler/f18/blob/master/lib/common/template.h</a>,<br>
>   the "bridges", ...<br>
> - public headers (.h moved to <a href="https://github.com/flang-compiler/f18/tree/master/include/flang/">
https://github.com/flang-compiler/f18/tree/master/include/flang/</a> from <a href="https://github.com/flang-compiler/f18/tree/master/lib/common">
https://github.com/flang-compiler/f18/tree/master/lib/common</a>)<br>
> <br>
> Coding style:<br>
> - doxygen style comments and file comments<br>
> - single statement braces<br>
> - early exits<br>
> - no else after return<o:p></o:p></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>