Well man.
I'm just poli****ng YARDstick and taking care of the legalese. It is a
major project of mine that measures up to ~25klines of code for now,
not to mention the external BSD-licensed libraries it uses.
I can't understand your attitude though. A great automation is not
va****, but you are.
YARDstick was presented at DATE'07 this April. Some guys from the
MORPHEUS project as well as a senior researcher from Synopsys had a
good look on the tool and its Tcl/Tk 8.5.a5 GUI.
Maybe you should ask MORPHEUS people, they have witnessed it.
Here follows part of my answer to the other post.
Check out a custom instruction from an edge detection filter. It has
been auto-identified and auto-dumped.
VCG dump:
graph: { title: "main_9"
x: 30
y: 30
height: 380
width: 560
xspace: 20
yspace: 30
display_edge_labels: yes
layoutalgorithm: minbackward
****t_sharing: no
node.borderwidth: 3
node.color: white
node.textcolor: black
node.bordercolor: black
edge.color: black
node: { title:"0" shape: ellipse label:" ior" color:yellow }
node: { title:"1" shape: ellipse label:" sl" color:yellow }
node: { title:"2" shape: ellipse label:" abs" color:yellow }
node: { title:"3" shape: ellipse label:" sub" color:yellow }
node: { title:"4" shape: ellipse label:" sl" color:yellow }
node: { title:"5" shape: ellipse label:" abs" color:yellow }
node: { title:"6" shape: ellipse label:" sub" color:yellow }
node: { title:"7" shape: ellipse label:" ldc" color:yellow }
node: { title:"8" shape: rhomb label:" 1" color:magenta }
edge: {sourcename:"8" targetname:"7"}
node: { title:"9" shape: triangle label:" vr234.s32" color:cyan }
edge: {sourcename:"0" targetname:"9"}
node: { title:"10" shape: triangle label:" vr235.s32" color:cyan }
edge: {sourcename:"7" targetname:"10"}
node: { title:"11" shape: box label:" vr60.s32" color:green }
edge: {sourcename:"11" targetname:"1"}
node: { title:"12" shape: box label:" vr207.s32" color:green }
edge: {sourcename:"12" targetname:"3"}
node: { title:"13" shape: box label:" vr210.s32" color:green }
edge: {sourcename:"13" targetname:"3"}
edge: {sourcename:"11" targetname:"4"}
edge: {sourcename:"12" targetname:"6"}
node: { title:"14" shape: box label:" vr220.s32" color:green }
edge: {sourcename:"14" targetname:"6"}
edge: {sourcename:"3" targetname:"2" label:"vr228.s32" }
edge: {sourcename:"2" targetname:"1" label:"vr229.s32" }
edge: {sourcename:"1" targetname:"0" label:"vr230.s32" }
edge: {sourcename:"6" targetname:"5" label:"vr231.s32" }
edge: {sourcename:"5" targetname:"4" label:"vr232.s32" }
edge: {sourcename:"4" targetname:"0" label:"vr233.s32" }
}
Graphviz dump:
digraph main_9 {
node [fontname=Courier,fontsize=14,style=filled];
0 [shape=ellipse,label="ior",fillcolor=yellow]
1 [shape=ellipse,label="sl",fillcolor=yellow]
2 [shape=ellipse,label="abs",fillcolor=yellow]
3 [shape=ellipse,label="sub",fillcolor=yellow]
4 [shape=ellipse,label="sl",fillcolor=yellow]
5 [shape=ellipse,label="abs",fillcolor=yellow]
6 [shape=ellipse,label="sub",fillcolor=yellow]
7 [shape=ellipse,label="ldc",fillcolor=yellow]
8 [shape=diamond,label="1",fillcolor=magenta]
8 -> 7;
9 [shape=triangle,label="vr234.s32",fillcolor=cyan]
0 -> 9;
10 [shape=triangle,label="vr235.s32",fillcolor=cyan]
7 -> 10;
11 [shape=invtriangle,label="vr60.s32",fillcolor=green]
11 -> 1;
12 [shape=invtriangle,label="vr207.s32",fillcolor=green]
12 -> 3;
13 [shape=invtriangle,label="vr210.s32",fillcolor=green]
13 -> 3;
11 -> 4;
12 -> 6;
14 [shape=invtriangle,label="vr220.s32",fillcolor=green]
14 -> 6;
3 -> 2 [label="vr228.s32"];
2 -> 1 [label="vr229.s32"];
1 -> 0 [label="vr230.s32"];
6 -> 5 [label="vr231.s32"];
5 -> 4 [label="vr232.s32"];
4 -> 0 [label="vr233.s32"];
}
Just copy-paste the stuff and use Graphviz (dot) and VCG to view
them.
Nikolaos Kavvadias
Computer Architecture Specialist and Compiler Developer
Ph.D. candidate


|