[llvm-commits] [polly] r133354 - /polly/trunk/www/documentation/memaccess.html

raghesh raghesh.a at gmail.com
Wed Jun 22 00:25:12 PDT 2011


Thanks a lot for the comments. In fact I didn't even look inside the
html source. That was a big mistake. I created it using iceape
composer. I will address these comments soon.

Regards,

On Wed, Jun 22, 2011 at 5:07 AM, Tobias Grosser <tobias at grosser.es> wrote:
> On 06/18/2011 02:17 PM, Raghesh Aloor wrote:
>>
>> Author: raghesh
>> Date: Sat Jun 18 12:17:16 2011
>> New Revision: 133354
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=133354&view=rev
>> Log:
>> www: Adding webpage to track memory access transformation
>
> Hi Raghesh,
>
> thanks for your work. I still have some comments:
>
> You forgot to add the disclaimer that this is a work in progress project.
> Furthermore, the HTML you used is pretty noisy (details inline). The next
> time we should review it before committing.
>
>> Added:
>>     polly/trunk/www/documentation/memaccess.html
>>
>> Added: polly/trunk/www/documentation/memaccess.html
>> URL:
>> http://llvm.org/viewvc/llvm-project/polly/trunk/www/documentation/memaccess.html?rev=133354&view=auto
>>
>> ==============================================================================
>> --- polly/trunk/www/documentation/memaccess.html (added)
>> +++ polly/trunk/www/documentation/memaccess.html Sat Jun 18 12:17:16 2011
>> @@ -0,0 +1,143 @@
>> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
>> +<html>
>> +<head>
>> +<meta content="text/html; charset=ISO-8859-1"
>> + http-equiv="Content-Type">
>> +<title>memaccess.html</title>
>
> Can you use a title like 'Polly - Memory access optimizations'
> You should include menu.css and content.css
>
> I propose to just use the header from documention/passes.html as a template.
> (This is true for most of the comments I give)
>
>
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
>          "http://www.w3.org/TR/html4/strict.dtd">
> <!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ -->
> <html>
> <head>
>  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
>  <title>Polly - The available LLVM passes</title>
>  <link type="text/css" rel="stylesheet" href="../menu.css">
>  <link type="text/css" rel="stylesheet" href="../content.css">
> </head>
>
>> +</head>
>> +<body>
>
> You miss the line to include the menu.
> <!--#include virtual="../menu.html.incl"-->
>
>> +<div style="margin-left: 320px;"><small style="font-weight:
>> bold;"><small><a><big><big><big>Support
>
> Just create a large div with id="content" that includes the whole content of
> this page.
>
>> +for
>> +memory access
>> +transformations in Polly</big></big></big></a></small></small><big><span
>> + style="font-weight: bold;"></span></big><br>
>
> Use <h1> for the header. All the other tags are just noise and disallow a
> consistent design.
>
>> +<big><span style="font-weight: bold;"></span></big><br>
>
> Useless noise.
>
>> +<div style="text-align: left;">
>
> This does not seem to be needed.
>
>> +<strong></strong>
>
> Useless noise.
>
>
>> +This project adds
>> +memory access transformations to Polly. In many cases<br>
>
> <br> Not needed.
>
>> +changing the memory access pattern yields to better data
>> +locality or removes<br>
>
> <br> not needed.
>
>> +dependences that would otherwise block
>> +transformations. They may also<br>
>
>                  . Memory access transformations may also ...
>
> <br> not needed
>
>> +allow LLVM to use registers to store
>> +certain values.<br>
>
> <br> not needed
>
>> +</div>
>> +<br>
>
> <br> not needed.
>
>> +An examples which uses this feature is given below<br>
>
> This seems to be a new paragraph. Put it in a <p></p> to get the newlines.
>
>> +</div>
>> +<div style="margin-left: 320px;"><br>
>
> I do not see a reason for this <div>
>
>> +Consider the following loop
>> +<ul>
>> +<ul>
>> +</ul>
>> +</ul>
>
> Useless noise.
>
>> +<div style="margin-left: 40px;"><small style="font-style: italic;">
>
> Just use <pre> to format the code.
>
>> + for
>> +(i = 0; i< 8; i++)</small><br>
>> +<small style="font-style: italic;">sum += A[i];</small><br
>> + style="font-style: italic;">
>
> All this formatting and <br> not needed.
>
>> +</div>
>> +<br>
>> +With support for memory access transformation this loop can be
>> executed<br>
>> +in parallel. It can be
>> +transformed to
>
>> +<small style="font-style: italic;"><br>
>>
>> +<br>
>> +</small>
>
> Useless noise.
>
>> +<div style="margin-left: 40px;">
>
> <div> not needed.
>
>> +<small style="font-style: italic;"><create
>>
>> +and
>> +initialize an array 'tmp'
>> +with size 4></small><br>
>> +<small style="font-style: italic;">for (i = 0; i< 8; i++)
>> {</small><br>
>> +<small style="font-style: italic;">tmp[i % 4] += A[i];</small><br>
>> +<small style="font-style: italic;">}</small><small><span
>> + style="font-style: italic;"></span></small><br>
>> +<small><span style="font-style: italic;">sum = tmp[0] + tmp[1] + tmp[2]
>> ++ tmp[3];</span></small><br>
>
> All formatting not needed. Just use a big <pre> block.
>
>> +</div>
>> +<br>
>> +With the help of some optimizer (like
>> +PluTo) the following code can be<br>
>
> <br> not needed.
>
> "With the help of optimizers like PluTo the following
>
>> +generated, where the outer loop is
>> +parallel.
>> +<p style="padding-left: 30px; font-style: italic;"><small>parfor (ii =
>> +0; ii< 4; ii++) {<br>
>> +   tmp[ii] = 0;<br>
>> +    for (i = ii * 2; i< (ii+1) * 2; i++)<br>
>> +      tmp[ii] += A[i];</small></p>
>> +<p style="padding-left: 30px; font-style: italic; font-weight:
>> bold;"><small><span
>> + style="font-weight: normal;">}</span><br style="font-weight: normal;">
>> +<span style="font-weight: normal;">sum = tmp[0] + tmp[1] + tmp[2] +
>> +tmp[3];</span><br>
>> +<strong></strong></small></p>
>
> Useless style noise. Just use <pre>
>
>> +<p><strong><span style="text-decoration: underline;">TODO<br>
>> +</span></strong></p>
>
> Do not use <strong><span><p> here. Just use <h2>
>
>> +<p><strong><span style="text-decoration: underline;"><small>Step
>> 1</small><br>
>> +</span></strong></p>
>
> Just use <h3>
>
>> +Polly exports its polyhedral description in a JSCoP file. Define how
>> +memory
>
>> +<small><br>
>>
>> +</small>
>
> Useless noise. <br> not needed.
>
>> +layout transformations are going to be expressed in Polly and
>> +in
>> +the JSCOP file.<br>
>
>> +A simple example is given below.<br>
>> +<br>
>> +Consider the following loop.<br>
>> +<br>
>
> <br> not needed. Use <p> to mark a paragraph.
>
>> +<div style="margin-left: 40px;"><small><span style="font-style:
>> italic;">for
>> +(i
>> += 0; i< 12; i++)</span><br style="font-style: italic;">
>> +<span style="font-style: italic;">     A[i] =
>> 0;</span><br
>> + style="font-style: italic;">
>> +</small></div>
>
> Useless style noise. Just use <pre>.
>
>> +<br>
>> +In the JSCOP file the memory is represented as follows.<br>
>> +<br>
>> +<div style="margin-left: 40px;"><small><span style="font-style:
>> italic;">  
>> +"accesses":
>> +[{</span></small><br style="font-style: italic;">
>> +<small><span style="font-style:
>> italic;">          
>> +"kind":
>> +"write",</span></small><br style="font-style: italic;">
>> +<small><span style="font-style:
>> italic;">          
>> +"relation":
>> +"{
>> +Stmt[i] -></span><strong
>> + style="font-style: italic; font-weight: bold;">A</strong><span
>> + style="font-style: italic;"><span style="font-weight: bold;">[i]</span>
>> +}"</span></small><br style="font-style: italic;">
>> +<small><span style="font-style: italic;">   
>> }]</span></small><br
>> + style="font-style: italic;">
>> +</div>
>
> Useless style noise and  . Just use <pre>
>
>> +<br>
>> +Suppose
>> +we want to perform a transformation such that the following<br>
>> +code is generated<br>
>> +<br>
>
> Get rid of <br> and use a single <p>.
>
>> +<div style="margin-left: 40px;"><small><span style="font-style:
>> italic;">for
>> +(i
>> += 0; i< 12; i++)</span><br style="font-style: italic;">
>> +<span style="font-style: italic;">
>> +     A[0] = i;</span><br style="font-style: italic;">
>> +</small></div>
>
> Style noise. Use <pre>.
>
>> +<br>
>> +The corresponding JSCOP file represenation would be<br>
>> +<br>
>> +<div style="margin-left: 40px;"><small><span style="font-style:
>> italic;">   
>> +"accesses":
>> +[{</span><br style="font-style: italic;">
>> +<span style="font-style:
>> italic;">          
>> +"kind":
>> +"read",</span><br style="font-style: italic;">
>> +<span style="font-style:
>> italic;">          
>
> Style and   noise. Just use <pre>.
>
>> +"relation":
>> +"{
>> +Stmt[i] -></span><strong
>> + style="font-style: italic; font-weight: bold;">A</strong><span
>
> Please don't use any inline style specifiers. If you want to highlight
> something use <em> or <b>. For anything else define a new style in the .css
> files after verifying something similar is not available.
>
>> + style="font-style: italic;"><span style="font-weight: bold;">[0]</span>
>> +}"</span><br style="font-style: italic;">
>> +<span style="font-style: italic;">    }]</span><br
>> + style="font-style: italic;">
>> +</small></div>
>
> Style noise.
>
>> +<br>
>> +We need to detect this access function change.<br>
>> +</div>
>> +<span id="q_12f99e5de7fd0932_1" class="h4"></span>
>
> Is this needed for anything?
>
>> +</body>
>> +</html>
>
> Again, thanks for your work
> Tobi
>



-- 
Raghesh




More information about the llvm-commits mailing list