<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">
  <div class="submenu">
    <label>Information</label>
    <a href="/index.html">About Polly</a>
    <a href="/documentation.html">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>
  </div>

  <div class="submenu">
    <label>Development </label>
    <a href="http://lists.cs.uiuc.edu/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://buildd-clang.debian.net/coverage/">Code Coverage</a>
    <a href="http://buildd-clang.debian.net/scan-build/">Static analysis</a>
  </div>

  <div class="submenu">
    <label>The Code</label>
    <a href="/get_started.html">Get and Install</a>
    <a href="http://llvm.org/viewvc/llvm-project/polly/trunk/">
      Browse (ViewVC)
    </a>
    <a href="http://repo.or.cz/w/polly-mirror.git">Browse (GitWeb)</a>
  </div>

  <div class="submenu2">
  <label>polyhedral.info news</label>
  <script language="JavaScript"
  src="http://itde.vccs.edu/rss2js/feed2js.php?src=http%3A%2F%2Fpolyhedral.info%2Frss.xml&chan=n&num=5&desc=0&date=y&targ=n"
  type="text/javascript"></script>
  </div>
</div>

<script type="text/javascript">
  var _paq = _paq || [];
  _paq.push(["trackPageView"]);
  _paq.push(["enableLinkTracking"]);

  (function() {
    var u=(("https:" == document.location.protocol) ? "https" : "http") + "://www.grosser.es/piwik/piwik/";
    _paq.push(["setTrackerUrl", u+"piwik.php"]);
    _paq.push(["setSiteId", "3"]);
    var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0]; g.type="text/javascript";
    g.defer=true; g.async=true; g.src=u+"piwik.js"; s.parentNode.insertBefore(g,s);
  })();
</script>
<noscript>
<img src="http://www.grosser.es/piwik/piwik/piwik.php?idsite=3&amp;rec=1" style="border:0" alt="" />
</noscript>

