<div id="head" style="position: relative">
<h1><span><a href="/">Polly</a></span></h1>
<h2><span>LLVM Framework for High-Level Loop and Data-Locality
Optimizations</span></h2>


<p> Hexagonal tiling in 3D</p>

</div>
<div id="menu">
  <a href="http://llvm.org">llvm.org</a>
  <div class="submenu">
    <label>Information</label>
    <a href="/index.html">Overview and News</a>
    <a href="/get_started.html">Get and Install</a>
    </a>
    <a href="/docs">Documentation</a>
    <a href="/performance.html">Performance</a>
    <a href="/publications.html">Publications</a>
    <a href="/contributors.html">Contributors</a>
    <a href="/todo.html">TODO</a>
    <a href="/changelog.html">ChangeLog</a>
    <a href="/projects.html">Open Projects</a>
  </div>

  <div class="submenu">
    <label>Development </label>
    <a href="http://lists.llvm.org/mailman/listinfo/llvm-commits">
      Mailing List (patches)
    </a>
    <a href="http://groups.google.com/group/polly-dev">Mailing List (discussion)</a>
    <a href="/bugs.html">Bug Reports</a>
    <a href="http://lab.llvm.org:8011/console?category=polly">Buildbot</a>
    <a href="http://lab.llvm.org:8080/coverage/coverage-reports/polly/index.html">Code Coverage</a>
    <a href="http://llvm.org/reports/scan-build/">Static analysis</a>
    <a href="/doxygen/">Doxygen</a>
    <a href="https://github.com/llvm/llvm-project/tree/main/polly">Source @ GitHub</a>
  </div>

  <div class="submenu">
    <label>Resources</label>
    <br>
    <a href="https://www.pollylabs.org"><img style="padding-left: 3.5em;
    padding-right: 1em; width:10em" src="/images/pollylabs.png" /></a>
    <div class="container" style="width: 240px">
      <div class="inner_pollylabs" style="width: 240px"></div>
    </div>
    <a href="https://www.polyhedral.info">polyhedral.info</a>
    <div class="container" style="width: 240px">
      <div class="inner_polyinfo" style="width: 240px"></div>
    </div>
    <br>
  </div>
</div>

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-66123869-2', 'auto');
  ga('send', 'pageview');

</script>

<script
src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

<script>

$(document).ready(function() {
    
    var yql =
    "https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20rss%20where%20url%3D%22http%3A%2F%2Fpollylabs.org%2Frss.xml%22%20LIMIT%205&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys";
    
    $.getJSON(yql, function(res) {
	str = "<div class=\"rss-box\"><ul>";
	for (var i = 0; i < res.query.count; i++) {
	  var it = res.query.results.item[i];
          var date = it.pubDate.substr(5, 11);
	  str = str + "<li class=\"rss-item\" ><a href=\"" + it.link + "\">";
	  str = str + "<span class=\"rss-title\">" + res.query.results.item[i].title + "</span> ";
	  str = str + "<span class=\"rss-date\">(" + date + ")</span>";
          str = str + "</a></li>";
	}
	str = str + "<li class=\"rss-item\"><a href=\"http://pollylabs.org/blog.html\"><span class=\"rss-title\"> ...  more news </span></a></li>";
	str = str + "</ul></div>";
	$( ".inner_pollylabs" ).append(str);
    }, "jsonp");

    var yql_polyinfo =
    "https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20rss%20where%20url%3D%22http%3A%2F%2Fpolyhedral.info%2Frss.xml%22%20LIMIT%205&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys";
    
    $.getJSON(yql_polyinfo, function(res) {
	str = "<div class=\"rss-box\"><ul>";
	for (var i = 0; i < res.query.count; i++) {
	  var it = res.query.results.item[i];
          var date = it.pubDate.substr(5, 11);
	  str = str + "<li class=\"rss-item\" ><a href=\"" + it.link + "\">";
	  str = str + "<span class=\"rss-title\">" + res.query.results.item[i].title + "</span> ";
	  str = str + "<span class=\"rss-date\">(" + date + ")</span>";
          str = str + "</a></li>";
	}
	str = str + "<li class=\"rss-item\"><a href=\"http://polyhedral.info/blog.html\"><span class=\"rss-title\"> ...  more news </span></a></li>";
	str = str + "</ul></div>";
	$( ".inner_polyinfo" ).append(str);
	console.log(str);
    }, "jsonp");
    
});

</script>
