<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">Dear Rigel,<br>
<br>
The current version of SAFECode for LLVM 3.2 does not currently
use all the fancy optimizations developed in previous research
(namely, Dhurjati's et. al.'s type-safe load/store check
elimination optimization). As a result, it is essentially
Jones/Kelley. The source code for the optimizations are still
there; they simply aren't enabled.<br>
<br>
The reason for this is that we opted to make SAFECode a robust
debugging tool first and then make its optimizations and soundness
features robust later. However, I graduated before we could make
that code robust.<br>
<br>
If you want a production quality tool, I recommend Address
Sanitizer. If you want to use SAFECode and get the best speed out
of it, be sure to use at least -O2 optimization or higher; using
the SAFECode libLTO plugin may also help (though it may also hurt
performance by making more checks complete).<br>
<br>
As an FYI, we have a Google Summer of Code student working on
Baggy Bounds with Accurate Checking (an extension of Baggy Bounds
Checking that can do accurate bounds checking by storing extra
meta-data within the padding area). When sufficiently robust,
this should speed up SAFECode significantly. The goal is to get
infrastructure up and running which we will be using within my
research group; I hope that it will also be useful to others.<br>
<br>
On a final note, while good run-time check techniques like Address
Sanitizer and Baggy Bounds improve performance considerably, my
hunch is that we won't get *really* good performance without
aggressive inter-procedural compiler optimization.<br>
<br>
Regards,<br>
<br>
John Criswell<br>
<br>
On 6/20/16 1:51 AM, Rigel Gjomemo via llvm-dev wrote:<br>
</div>
<blockquote cite="mid:57679260.6040602@gmail.com" type="cite">Hello,
<br>
<br>
I have been using Safecode to add bounds checks to some programs
and am getting very high running times for those programs. In
average, the slowdown is up by a factor of 30, sometimes even 90.
Is there a way to improve on this?
<br>
<br>
I have followed the instructions about installing and using the
Link Time Optimizer on this page:
<a class="moz-txt-link-freetext" href="http://safecode.cs.illinois.edu/docs/Install.html">http://safecode.cs.illinois.edu/docs/Install.html</a>
<br>
<br>
Still, the runtime of the compiled files is about the same.
<br>
<br>
Are there any additional instructions that I am missing? Any other
options that may be needed?
<br>
<br>
Thank you
<br>
Rigel
<br>
<br>
_______________________________________________
<br>
LLVM Developers mailing list
<br>
<a class="moz-txt-link-abbreviated" href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>
<br>
<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>
<br>
</blockquote>
<br>
<p><br>
</p>
<pre class="moz-signature" cols="72">--
John Criswell
Assistant Professor
Department of Computer Science, University of Rochester
<a class="moz-txt-link-freetext" href="http://www.cs.rochester.edu/u/criswell">http://www.cs.rochester.edu/u/criswell</a></pre>
</body>
</html>