Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Another bunch of minor fixes.

  • Loading branch information...
commit ef5ef865549a94ab3134e6e85ec2fcf4a68f67ca 1 parent 1ef49de
tdudziak authored
0  graphs/CFGCachesExample.dot → graphs/CFGCachesExample.dot.manual
View
File renamed without changes
BIN  graphs/CFGCachesExample.pdf
View
Binary file not shown
219 graphs/CFGCachesExample.svg
View
@@ -0,0 +1,219 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generated by graphviz version 2.26.3 (20100126.1600)
+ -->
+
+<!-- Title: program Pages: 1 -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="372pt"
+ height="64pt"
+ viewBox="0.00 0.00 372.00 64.00"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.2 r9819"
+ sodipodi:docname="CFGCachesExample.svg">
+ <metadata
+ id="metadata82">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs80" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1280"
+ inkscape:window-height="776"
+ id="namedview78"
+ showgrid="false"
+ inkscape:zoom="1.3935484"
+ inkscape:cx="192.15319"
+ inkscape:cy="-53.249248"
+ inkscape:window-x="0"
+ inkscape:window-y="24"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg2" />
+ <g
+ class="node"
+ id="node1"
+ transform="translate(4,56.8)">
+ <title
+ id="title10">start</title>
+ <polygon
+ style="fill:#d3d3d3;stroke:#000000"
+ id="polygon12"
+ points="54,-36 54,-36 1.42109e-14,-36 3.55271e-15,-1.06581e-14 54,0 " />
+ <text
+ style="font-size:14px;text-anchor:middle;font-family:'Times Roman,serif'"
+ id="text14"
+ font-size="14.00"
+ y="-14.4"
+ x="27">start</text>
+ </g>
+ <g
+ class="node"
+ id="node3"
+ transform="translate(4,56.8)">
+ <title
+ id="title17">1</title>
+ <polygon
+ style="fill:#d3d3d3;stroke:#000000"
+ id="polygon19"
+ points="154,-36 154,-36 100,-36 100,-1.06581e-14 154,0 " />
+ <text
+ style="font-size:14px;text-anchor:middle;font-family:'Times Roman,serif'"
+ id="text21"
+ font-size="14.00"
+ y="-14.4"
+ x="127">1</text>
+ </g>
+ <g
+ class="edge"
+ id="edge2"
+ transform="translate(4,56.8)">
+ <title
+ id="title24">start-&gt;1</title>
+ <path
+ style="fill:none;stroke:#000000"
+ inkscape:connector-curvature="0"
+ id="path26"
+ d="m 54.0614,-18 c 11.0055,0 23.9039,0 35.7686,0" />
+ <polygon
+ style="fill:#000000;stroke:#000000"
+ id="polygon28"
+ points="89.917,-21.5001 99.9169,-18 89.9169,-14.5001 89.917,-21.5001 " />
+ <text
+ style="font-size:14px;text-anchor:middle;font-family:'Times Roman,serif'"
+ id="text30"
+ font-size="14.00"
+ y="-23.4"
+ x="77">3</text>
+ </g>
+ <g
+ class="node"
+ id="node5"
+ transform="translate(4,56.8)">
+ <title
+ id="title33">2</title>
+ <polygon
+ style="fill:#d3d3d3;stroke:#000000"
+ id="polygon35"
+ points="272,-36 272,-36 218,-36 218,-1.06581e-14 272,0 " />
+ <text
+ style="font-size:14px;text-anchor:middle;font-family:'Times Roman,serif'"
+ id="text37"
+ font-size="14.00"
+ y="-14.4"
+ x="245">2</text>
+ </g>
+ <g
+ class="edge"
+ id="edge4"
+ transform="translate(3.712963,56.008536)">
+ <title
+ id="title40">1-&gt;2</title>
+ <path
+ style="fill:none;stroke:#000000"
+ inkscape:connector-curvature="0"
+ id="path42"
+ d="m 154.049,-31.4589 c 5.789,-2.2965 11.967,-4.3295 17.951,-5.5411 12.197,-2.4694 15.803,-2.4694 28,0 2.805,0.5679 5.653,1.3164 8.483,2.1878" />
+ <polygon
+ style="fill:#000000;stroke:#000000"
+ id="polygon44"
+ points="207.356,-31.4983 209.693,-38.0967 209.693,-38.0967 217.951,-31.4589 " />
+ <text
+ style="font-size:14px;text-anchor:middle;font-family:'Times Roman,serif'"
+ id="text46"
+ font-size="14.00"
+ y="-43.400002"
+ x="186">3</text>
+ </g>
+ <g
+ class="edge"
+ id="edge6"
+ transform="translate(4.287037,58.235185)">
+ <title
+ id="title49">1-&gt;2</title>
+ <path
+ style="fill:none;stroke:#000000"
+ inkscape:connector-curvature="0"
+ id="path51"
+ d="m 154.113,-15.8995 c 5.893,0.3747 12.096,0.7067 17.887,0.8995 12.438,0.4141 15.562,0.4141 28,0 2.534,-0.0844 5.146,-0.1954 7.777,-0.3249" />
+ <polygon
+ style="fill:#000000;stroke:#000000"
+ id="polygon53"
+ points="208.102,-11.8376 207.705,-18.8264 207.705,-18.8264 217.887,-15.8995 " />
+ <text
+ style="font-size:14px;text-anchor:middle;font-family:'Times Roman,serif'"
+ id="text55"
+ font-size="14.00"
+ y="-20.4"
+ x="186">103</text>
+ </g>
+ <g
+ class="node"
+ id="node9"
+ transform="translate(4,56.8)">
+ <title
+ id="title65">exit</title>
+ <polygon
+ style="fill:#d3d3d3;stroke:#000000"
+ id="polygon67"
+ points="364,-36 364,-36 310,-36 310,-1.06581e-14 364,0 " />
+ <text
+ style="font-size:14px;text-anchor:middle;font-family:'Times Roman,serif'"
+ id="text69"
+ font-size="14.00"
+ y="-14.4"
+ x="337">exit</text>
+ </g>
+ <g
+ class="edge"
+ id="edge10"
+ transform="translate(4,56.8)">
+ <title
+ id="title72">2-&gt;exit</title>
+ <path
+ style="fill:none;stroke:#000000"
+ inkscape:connector-curvature="0"
+ id="path74"
+ d="m 272.105,-18 c 8.627,0 18.326,0 27.545,0" />
+ <polygon
+ style="fill:#000000;stroke:#000000"
+ id="polygon76"
+ points="299.77,-21.5001 309.77,-18 299.77,-14.5001 299.77,-21.5001 " />
+ </g>
+ <g
+ id="g3134"
+ transform="matrix(-1,0,0,-1,381.06949,149.9917)">
+ <path
+ id="path42-7"
+ d="m 158.92863,97.017715 c 5.789,-2.2965 11.967,-4.3295 17.951,-5.5411 12.197,-2.4694 15.803,-2.4694 28,0 2.805,0.5679 5.653,1.3164 8.483,2.1878"
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000" />
+ <polygon
+ id="polygon44-2"
+ points="207.356,-31.4983 209.693,-38.0967 209.693,-38.0967 217.951,-31.4589 "
+ style="fill:#000000;stroke:#000000"
+ transform="translate(4.8796299,128.47661)" />
+ </g>
+</svg>
2  intro.tex
View
@@ -198,7 +198,7 @@ \section{The big picture}
A particular flavor of cache analysis that employs congruence analysis to achieve better modularity, customizability, and precision.
Described in Section~\ref{section-caches-rca}.
\item[congruence analysis]
- A helper analysis used in relational cache analysis that classifies a pair of symbolic names using value from the lattice described on Figure~\ref{fig-rels-hasse}. We developed a special variant of this analysis suited for programs manipulating pointer-based data structures.
+ A helper analysis used in relational cache analysis that classifies a pair of symbolic names using value from the lattice described in Figure~\ref{fig-rels-hasse}. We developed a special variant of this analysis suited for programs manipulating pointer-based data structures.
It is described in Chapter~\ref{section-CongruenceAnalysis} with Chapters \ref{section-Rels}, \ref{section-TVS.Model}, and \ref{section-CacheSets} providing necessary background.
\item[shape analysis]
A static program analysis that uses shape graphs to give a compact description of all possible states of the heap that may arise at a given program point.
5 src/CacheSets.lhs
View
@@ -290,10 +290,7 @@ $(b \geq a'-1) \land (b' \leq b)$
\section{Meet operator}
The lattice meet ($\sqcap$) operator for \hs{CacheSets} corresponds to intersection of intervals.
-This operation isn't really used in our analysis since we approximate the class of cache sets from above.
-But, since \hs{CacheSets} can be also used as a general representation for classes of cache sets, we define it for the sake of completeness.
-
-However, the implementation of \hs{meet} is rather simple and without too much focus on performance.
+Since this operation is not used extensively, the implementation is rather simple and was not made with much focus on performance.
Using a helper function \hs{intervalIntersect} we compute the intersection of each pair of intervals $\iota_1 \in S_1$ and $\iota_2 \in S_2$.
This results in a set $X$ such that $\gamma(X) = \gamma(S_1 \sqcap S_2)$ but $X$ may not be a valid \hs{CacheSets} value.
We normalize it to obtain the final result.
Please sign in to comment.
Something went wrong with that request. Please try again.