<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<br>
<br>
<div class="moz-cite-prefix">On 03/20/2016 05:38 AM, Aries Gunawan
via llvm-dev wrote:<br>
</div>
<blockquote
cite="mid:KL1PR03MB168552031E1F14CD172D7D73978E0@KL1PR03MB1685.apcprd03.prod.outlook.com"
type="cite">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered
medium)">
<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:#0563C1;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri",sans-serif;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></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]-->
<div class="WordSection1">
<p class="MsoNormal">Hi everyone,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I am very interested in contributing to
LLVM project in this year’s GSoC. I am new with LLVM, but this
is used in the compiler course in my university. So, I am
thinking to involve in LLVM development to have a better
knowledge of the system. Currently, I am preparing the
proposal. <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">One of the project that caught my eyes is
“New Transformations and Analysis”. Several code
transformations and analyses have been introduced in the
compiler course that I am currently taking. That’s why I am
thinking to involve in writing some new transformations and
code analyses. But the list of transformations in the LLVM
Open Projects web page seems too brief for me and I need more
details on those stuffs.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b>Loop Dependence Analysis Infrastructure.
</b>I have looked in the source codes repo and I saw that
there is a file named “DependenceAnalysis.cpp”. So, does that
mean this analysis has been implemented?
</p>
</div>
</blockquote>
I believe major progress has been made it, but haven't been
following it closely. I'd suggest talking to committers active in
this file in the recent past to determine what useful work might be
left of appropriate scope. <br>
<blockquote
cite="mid:KL1PR03MB168552031E1F14CD172D7D73978E0@KL1PR03MB1685.apcprd03.prod.outlook.com"
type="cite">
<div class="WordSection1">
<p class="MsoNormal"><o:p></o:p></p>
<p class="MsoNormal"><b><o:p> </o:p></b></p>
<p class="MsoNormal"><b>Value range propagation pass. </b>There
was a discussion about this topic (<a moz-do-not-send="true"
href="https://groups.google.com/forum/#%21topic/llvm-dev/XXqfemtDX74/discussion">https://groups.google.com/forum/#!topic/llvm-dev/XXqfemtDX74/discussion</a>).
Someone already proposed to do this pass for several years ago
GSoC. But I can’t find the progress of the work. If no
progress, then does it mean that the VRP based on Patterson’s
paper need to be implemented although range analysis has been
implemented?</p>
</div>
</blockquote>
This is largely stalled. The key problem is that between
LazyValueInfo (constant ranges) and SCEV (symbolic ranges in loops),
there's fairly little profit to be had and range analysis is
relatively expensive. I'd strongly discourage you from implementing
a traditional range analysis for LLVM without deeply understanding
the history here. <br>
<blockquote
cite="mid:KL1PR03MB168552031E1F14CD172D7D73978E0@KL1PR03MB1685.apcprd03.prod.outlook.com"
type="cite">
<div class="WordSection1">
<p class="MsoNormal"><o:p></o:p></p>
<p class="MsoNormal"><b><o:p> </o:p></b></p>
<p class="MsoNormal"><b>Predictive Commoning. </b>The
presentation side by Arie Tal seems provide quite clear
explanation and examples of the algorithm. I guess the
implementation should be straightforward, isn’t it?</p>
</div>
</blockquote>
The closest I know of to this in tree is LoadLoadElimination.cpp and
(in some cases) the PRE code inside GVN.cpp. Building something
like this on top of SCEV could be quite interesting. You should
definitely talk to Adam Nemet (CC'd) about this.<br>
<blockquote
cite="mid:KL1PR03MB168552031E1F14CD172D7D73978E0@KL1PR03MB1685.apcprd03.prod.outlook.com"
type="cite">
<div class="WordSection1">
<p class="MsoNormal"><o:p></o:p></p>
<p class="MsoNormal"><b><o:p> </o:p></b></p>
<p class="MsoNormal"><b>Type Inference (aka. Devirtualization)
and Value assertions.
</b><o:p></o:p></p>
<p class="MsoNormal">Can I get more details of these topics?
Does the type inference mean the translation of
<u>auto</u> keyword or something else? For value assertions,
“unreachable” intrinsic seems has been implemented cause I can
find the usage in some of the testcases.</p>
</div>
</blockquote>
I believe the "value assertions" link may be stale. If I'm reading
that correctly, it looks like the motivation for @llvm.assume.<br>
<blockquote
cite="mid:KL1PR03MB168552031E1F14CD172D7D73978E0@KL1PR03MB1685.apcprd03.prod.outlook.com"
type="cite">
<div class="WordSection1">
<p class="MsoNormal"><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Finally, for this project, must I propose
to do all of these analyses and transformations in my GSoC
proposal or can I just propose some of them? In addition, I am
also looking for a mentor for guidance?</p>
</div>
</blockquote>
If you want further ideas, consider the list I just sent to llvm-dev
a few moments ago titled "A couple ideas for possible GSoC
projects". <br>
<blockquote
cite="mid:KL1PR03MB168552031E1F14CD172D7D73978E0@KL1PR03MB1685.apcprd03.prod.outlook.com"
type="cite">
<div class="WordSection1">
<p class="MsoNormal"><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Looking forward for your comments and
feedbacks.<o:p></o:p></p>
<p class="MsoNormal">Thank you.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Best regards,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Aries Thio.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
LLVM Developers mailing list
<a class="moz-txt-link-abbreviated" href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>
<a class="moz-txt-link-freetext" href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a>
</pre>
</blockquote>
<br>
</body>
</html>