<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8"/>
    <title>Project-Team:COMPSYS</title>
    <link rel="stylesheet" href="../static/css/raweb.css" type="text/css"/>
    <meta name="description" content="New Results - Scaling Termination Proofs"/>
    <meta name="dc.title" content="New Results - Scaling Termination Proofs"/>
    <meta name="dc.creator" content="Laure Gonnord"/>
    <meta name="dc.creator" content="Gabriel Radanne"/>
    <meta name="dc.creator" content="David Monniaux"/>
    <meta name="dc.creator" content="Fernando Pereira"/>
    <meta name="dc.creator" content="Raphael Rodrigues"/>
    <meta name="dc.subject" content=""/>
    <meta name="dc.publisher" content="INRIA"/>
    <meta name="dc.date" content="(SCHEME=ISO8601) 2014-01"/>
    <meta name="dc.type" content="Report"/>
    <meta name="dc.language" content="(SCHEME=ISO639-1) en"/>
    <meta name="projet" content="COMPSYS"/>
    <!-- Piwik -->
    <script type="text/javascript" src="/rapportsactivite/piwik.js"></script>
    <noscript><p><img src="//piwik.inria.fr/piwik.php?idsite=49" style="border:0;" alt="" /></p></noscript>
    <!-- End Piwik Code -->
  </head>
  <body>
    <div class="tdmdiv">
      <div class="logo">
        <a href="http://www.inria.fr">
          <img style="align:bottom; border:none" src="../static/img/icons/logo_INRIA-coul.jpg" alt="Inria"/>
        </a>
      </div>
      <div class="TdmEntry">
        <div class="tdmentete">
          <a href="uid0.html">Project-Team Compsys</a>
        </div>
        <span>
          <a href="uid1.html">Members</a>
        </span>
      </div>
      <div class="TdmEntry">Overall Objectives<ul><li><a href="./uid3.html">Introduction</a></li><li><a href="./uid6.html">General Presentation</a></li><li><a href="./uid11.html">Summary of Compsys I Achievements</a></li><li><a href="./uid17.html">Quick view of Compsys II
Achievements and directions for Compsys III</a></li></ul></div>
      <div class="TdmEntry">Research Program<ul><li><a href="uid21.html&#10;&#9;&#9;  ">Architecture and compilation trends</a></li><li><a href="uid36.html&#10;&#9;&#9;  ">Code analysis, code transformations, code optimizations</a></li><li><a href="uid39.html&#10;&#9;&#9;  ">Mathematical tools</a></li></ul></div>
      <div class="TdmEntry">Application Domains<ul><li><a href="uid41.html&#10;&#9;&#9;  ">Compilers for Embedded Computing Systems</a></li><li><a href="uid42.html&#10;&#9;&#9;  ">Users of HPC Platforms and Scientific Computing</a></li></ul></div>
      <div class="TdmEntry">New Software and Platforms<ul><li><a href="uid46.html&#10;&#9;&#9;  ">Introduction</a></li><li><a href="uid47.html&#10;&#9;&#9;  ">Pip</a></li><li><a href="uid48.html&#10;&#9;&#9;  ">Cl@k</a></li><li><a href="uid49.html&#10;&#9;&#9;  ">Syntol</a></li><li><a href="uid52.html&#10;&#9;&#9;  ">Dcc</a></li><li><a href="uid53.html&#10;&#9;&#9;  ">PoCo</a></li><li><a href="uid58.html&#10;&#9;&#9;  ">Bee</a></li><li><a href="uid59.html&#10;&#9;&#9;  ">Chuba</a></li><li><a href="uid60.html&#10;&#9;&#9;  ">RanK</a></li><li><a href="uid61.html&#10;&#9;&#9;  ">Aspic</a></li><li><a href="uid62.html&#10;&#9;&#9;  ">C2fsm</a></li><li><a href="uid63.html&#10;&#9;&#9;  ">SToP</a></li><li><a href="uid64.html&#10;&#9;&#9;  ">Termite</a></li><li><a href="uid65.html&#10;&#9;&#9;  ">Simplifiers</a></li></ul></div>
      <div class="TdmEntry">New Results<ul><li><a href="uid67.html&#10;&#9;&#9;  ">Highlights of the Year</a></li><li><a href="uid78.html&#10;&#9;&#9;  ">Data-Aware Process Networks</a></li><li><a href="uid79.html&#10;&#9;&#9;  ">Preventing from Out-of-Bound Memory Accesses</a></li><li class="tdmActPage"><a href="uid82.html&#10;&#9;&#9;  ">Scaling Termination Proofs</a></li><li><a href="uid85.html&#10;&#9;&#9;  ">Equivalence-Checking of Programs with Reductions</a></li><li><a href="uid86.html&#10;&#9;&#9;  ">Analysis and Transformation of
Parallel Programs</a></li><li><a href="uid87.html&#10;&#9;&#9;  ">Handling Polynomials for Program Analysis and
Transformation</a></li><li><a href="uid88.html&#10;&#9;&#9;  ">Parametric Loop Tiling with Constant Aspect Ratio</a></li><li><a href="uid89.html&#10;&#9;&#9;  ">Exact and Approximated Data-Reuse Optimizations for Tiling with
Parametric Sizes</a></li><li><a href="uid90.html&#10;&#9;&#9;  ">Studying Optimal Spilling in the Light of SSA</a></li></ul></div>
      <div class="TdmEntry">Bilateral Contracts and Grants with Industry<ul><li><a href="uid92.html&#10;&#9;&#9;  ">ManycoreLabs Project with Kalray</a></li><li><a href="uid93.html&#10;&#9;&#9;  ">Technological Transfer: XtremLogic Start-Up</a></li></ul></div>
      <div class="TdmEntry">Partnerships and Cooperations<ul><li><a href="uid95.html&#10;&#9;&#9;  ">Regional Initiatives</a></li><li><a href="uid98.html&#10;&#9;&#9;  ">National Initiatives</a></li><li><a href="uid100.html&#10;&#9;&#9;  ">European Initiatives</a></li><li><a href="uid102.html&#10;&#9;&#9;  ">International Initiatives</a></li><li><a href="uid108.html&#10;&#9;&#9;  ">International Research Visitors</a></li></ul></div>
      <div class="TdmEntry">Dissemination<ul><li><a href="uid115.html&#10;&#9;&#9;  ">Promoting Scientific Activities</a></li><li><a href="uid126.html&#10;&#9;&#9;  ">Teaching - Supervision - Juries</a></li><li><a href="uid149.html&#10;&#9;&#9;  ">Popularization</a></li></ul></div>
      <div class="TdmEntry">
        <div>Bibliography</div>
      </div>
      <div class="TdmEntry">
        <ul>
          <li>
            <a id="tdmbibentyear" href="bibliography.html">Publications of the year</a>
          </li>
          <li>
            <a id="tdmbibentfoot" href="bibliography.html#References">References in notes</a>
          </li>
        </ul>
      </div>
    </div>
    <div id="main">
      <div class="mainentete">
        <div id="head_agauche">
          <small><a href="http://www.inria.fr">
	    
	    Inria
	  </a> | <a href="../index.html">
	    
	    Raweb 
	    2014</a> | <a href="http://www.inria.fr/en/teams/compsys">Presentation of the Project-Team COMPSYS</a> | <a href="http://www.ens-lyon.fr/LIP/COMPSYS/index.html.en">COMPSYS Web Site
	  </a></small>
        </div>
        <div id="head_adroite">
          <table class="qrcode">
            <tr>
              <td>
                <a href="compsys.xml">
                  <img style="align:bottom; border:none" alt="XML" src="../static/img/icons/xml_motif.png"/>
                </a>
              </td>
              <td>
                <a href="compsys.pdf">
                  <img style="align:bottom; border:none" alt="PDF" src="IMG/qrcode-compsys-pdf.png"/>
                </a>
              </td>
              <td>
                <a href="../compsys/compsys.epub">
                  <img style="align:bottom; border:none" alt="e-pub" src="IMG/qrcode-compsys-epub.png"/>
                </a>
              </td>
            </tr>
            <tr>
              <td/>
              <td>PDF
</td>
              <td>e-Pub
</td>
            </tr>
          </table>
        </div>
      </div>
      <!--FIN du corps du module-->
      <br/>
      <div class="bottomNavigation">
        <div class="tail_aucentre">
          <a href="./uid79.html" accesskey="P"><img style="align:bottom; border:none" alt="previous" src="../static/img/icons/previous_motif.jpg"/> Previous | </a>
          <a href="./uid0.html" accesskey="U"><img style="align:bottom; border:none" alt="up" src="../static/img/icons/up_motif.jpg"/>  Home</a>
          <a href="./uid85.html" accesskey="N"> | Next <img style="align:bottom; border:none" alt="next" src="../static/img/icons/next_motif.jpg"/></a>
        </div>
        <br/>
      </div>
      <div id="textepage">
        <!--DEBUT2 du corps du module-->
        <h2>Section: 
      New Results</h2>
        <h3 class="titre3">Scaling Termination Proofs</h3>
        <p class="participants"><span class="part">Participants</span> :
	Laure Gonnord, Gabriel Radanne [ENS Rennes] , David Monniaux [CNRS/VERIMAG] , Fernando Pereira [Univ. Mineas Gerais, Brasil] , Raphael Rodrigues [Univ. Mineas Gerais, Brasil] .</p>
        <p>In  <a href="./bibliography.html#compsys-2014-bid12">[15]</a> , we presented a new algorithm adapted from scheduling
techniques to synthesize (multi-dimensional) affine functions from general
flowcharts programs. But, as for other methods, our algorithm tried to solve
linear constraints on each control point and each transition, which can lead
to quasi-intractable linear programming instances.
In contrast to these approaches, we proposed a new algorithm based on the
following observations:</p>
        <ul>
          <li>
            <p class="notaparagraph"><a name="uid83"> </a>Searching for ranking functions for loop headers is sufficient to prove
termination.</p>
          </li>
          <li>
            <p class="notaparagraph"><a name="uid84"> </a>Furthermore, there exist loops such that there is a linear lexicographic
ranking function that decreases along each path inside the loop, from one
loop iteration to the next, but such that there is no lexicographic linear
ranking function that decreases at each step along these paths. For these
reasons, it is tempting to treat each path inside a loop as a single
transition.</p>
          </li>
        </ul>
        <p>Unfortunately the number of paths may be exponential in the size of the
program, thus the constraint system may become very large, even though it
features fewer variables. To face this theoretical complexity, even though the
number of paths may be large, we argue that, in practice, few of them actually
matter in the constraint system (we formalize this concept by giving a
characterization as geometric extremal points). Our algorithm therefore builds
the constraint system lazily, taking paths into account <i>on demand</i>.</p>
        <p>In 2014, we consolidated this approach with a work on complexity issues
(inspired by  <a href="./bibliography.html#compsys-2014-bid21">[19]</a> ) and a new
implementation: Termite (see Section <a title="Termite" href="./uid64.html">
	5.13</a> ).
A corresponding paper is currently under submission for PLDI.</p>
        <p>With Fernando Pereira's group in Brazil, we also studied the relevance of
fast and simple solutions to compute approximations of the number of
iterations of loops (<i>loop trip count</i>) of imperative real-world
programs.
The context of this work is the use of these approximations in
compiler optimizations: most of the time, the optimizations
yield greater benefits for large trip counts, and are either
innocuous or detrimental for small ones.
In our paper published at WST'14 <a href="./bibliography.html#compsys-2014-bid22">[10]</a> , we have shown that,
most of the time,
there is no need to use computationally-expensive state-of-the-art
methods to compute (an approximation of) it.
We support our position with an actual case study. We show that a
fast predictor can be used to speedup the JavaScript JIT compiler of
Firefox - one of the most well-engineered runtime environments in use
today.
</p>
      </div>
      <!--FIN du corps du module-->
      <br/>
      <div class="bottomNavigation">
        <div class="tail_aucentre">
          <a href="./uid79.html" accesskey="P"><img style="align:bottom; border:none" alt="previous" src="../static/img/icons/previous_motif.jpg"/> Previous | </a>
          <a href="./uid0.html" accesskey="U"><img style="align:bottom; border:none" alt="up" src="../static/img/icons/up_motif.jpg"/>  Home</a>
          <a href="./uid85.html" accesskey="N"> | Next <img style="align:bottom; border:none" alt="next" src="../static/img/icons/next_motif.jpg"/></a>
        </div>
        <br/>
      </div>
    </div>
  </body>
</html>
