Merge branch 'main' of https://github.com/MPSLab-ASU/CCF-20.04 into main
This commit is contained in:
commit
3c2162cb9e
|
@ -1,14 +0,0 @@
|
||||||
X,4
|
|
||||||
Y,4
|
|
||||||
R,4
|
|
||||||
IC,0
|
|
||||||
Cclock,0.7
|
|
||||||
CPUclock,2
|
|
||||||
Mem,8GB
|
|
||||||
MODE,0
|
|
||||||
ALGO,RAMP
|
|
||||||
MSA,10
|
|
||||||
MAPII,10
|
|
||||||
MAX_MAP,1000
|
|
||||||
MAX_II,50
|
|
||||||
LAMBDA,0.02
|
|
|
|
@ -1,14 +0,0 @@
|
||||||
4
|
|
||||||
4
|
|
||||||
4
|
|
||||||
0
|
|
||||||
0.7
|
|
||||||
2
|
|
||||||
8GB
|
|
||||||
0
|
|
||||||
RAMP
|
|
||||||
10
|
|
||||||
10
|
|
||||||
1000
|
|
||||||
50
|
|
||||||
0.02
|
|
|
@ -1,5 +0,0 @@
|
||||||
3 0 1 TRU 0
|
|
||||||
2 1 1 TRU 0
|
|
||||||
1 2 0 TRU 0
|
|
||||||
0 3 0 TRU 0
|
|
||||||
3 4 0 TRU 0
|
|
|
@ -1,5 +0,0 @@
|
||||||
0 29 0
|
|
||||||
1 29 0
|
|
||||||
2 4 0
|
|
||||||
3 0 0
|
|
||||||
4 10 0
|
|
|
@ -1,20 +0,0 @@
|
||||||
digraph LoadConst {
|
|
||||||
{
|
|
||||||
0 [color=red ];
|
|
||||||
|
|
||||||
1 [color=red ];
|
|
||||||
|
|
||||||
2 [color=red ];
|
|
||||||
|
|
||||||
3 [color=red ];
|
|
||||||
|
|
||||||
4 [color=red ];
|
|
||||||
3 -> 0 [style=bold, color=red, label=1]
|
|
||||||
2 -> 1 [style=bold, color=red, label=1]
|
|
||||||
1 -> 2
|
|
||||||
0 -> 3
|
|
||||||
3 -> 4
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,33 +0,0 @@
|
||||||
digraph Success_MS_ {
|
|
||||||
{
|
|
||||||
0 [color=red ];
|
|
||||||
|
|
||||||
1 [color=red ];
|
|
||||||
|
|
||||||
2 [color=red ];
|
|
||||||
|
|
||||||
3 [color=red ];
|
|
||||||
|
|
||||||
4 [color=red ];
|
|
||||||
3 -> 0 [style=bold, color=red, label=1]
|
|
||||||
2 -> 1 [style=bold, color=red, label=1]
|
|
||||||
1 -> 2
|
|
||||||
0 -> 3
|
|
||||||
3 -> 4
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
node [shape=plaintext];
|
|
||||||
T0 -> T1;
|
|
||||||
}{ rank = same;
|
|
||||||
2; 3; T0;
|
|
||||||
};
|
|
||||||
{ rank = same;
|
|
||||||
0; 1; 4; T1;
|
|
||||||
};
|
|
||||||
{ rank = same;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,649 +0,0 @@
|
||||||
Inside insgen
|
|
||||||
|
|
||||||
UPDATING EDGES 3:0
|
|
||||||
|
|
||||||
UPDATING DEPENDENCY EDGES FOR NODE 0:1
|
|
||||||
|
|
||||||
UPDATING EDGES 2:1
|
|
||||||
|
|
||||||
UPDATING DEPENDENCY EDGES FOR NODE 1:1
|
|
||||||
|
|
||||||
UPDATING EDGES 1:2
|
|
||||||
|
|
||||||
UPDATING EDGES 0:3
|
|
||||||
|
|
||||||
UPDATING EDGES 3:4
|
|
||||||
|
|
||||||
UPDATING EDGES 5:0
|
|
||||||
|
|
||||||
UPDATING EDGES 5:1
|
|
||||||
|
|
||||||
UPDATING EDGES 5:2
|
|
||||||
|
|
||||||
UPDATING EDGES 5:3
|
|
||||||
|
|
||||||
UPDATING EDGES 6:4
|
|
||||||
|
|
||||||
UPDATING EDGES 110:111
|
|
||||||
|
|
||||||
UPDATING EDGES 2:111
|
|
||||||
|
|
||||||
UPDATING EDGES 109:111
|
|
||||||
file ptr:0 open:1 prolog_size:64
|
|
||||||
|
|
||||||
|
|
||||||
64
|
|
||||||
32
|
|
||||||
32
|
|
||||||
*********KERNEL*****************
|
|
||||||
*********EPILOG*****************
|
|
||||||
LiveOut_data_pe: 2 liveOut_data: 2
|
|
||||||
PE: 0 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 1 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 2 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 3 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 4 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 5 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 6 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 7 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 8 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 9 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 10 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 11 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 12 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 13 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 14 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 15 Configuration Boundary: 0 10e004000
|
|
||||||
reg_num: 0
|
|
||||||
node: 6
|
|
||||||
We have arrived after isLiveStoreData Line
|
|
||||||
We have arrived after getNodeType
|
|
||||||
constant node: 6
|
|
||||||
Generating Instructions To Store Address (Hex) 9a640
|
|
||||||
Node name: gVar1
|
|
||||||
Loading dynamic constant value. LDA and LDD are 168c02004: 105c04000 in pe 2
|
|
||||||
Load Dyn Cons 168c02004 105c04000
|
|
||||||
node: 6
|
|
||||||
reg_num: 0
|
|
||||||
node: 0
|
|
||||||
We have arrived after isLiveStoreData Line
|
|
||||||
We have arrived after getNodeType
|
|
||||||
node: 0
|
|
||||||
reg_num: 0
|
|
||||||
node: 1
|
|
||||||
We have arrived after isLiveStoreData Line
|
|
||||||
We have arrived after getNodeType
|
|
||||||
node: 1
|
|
||||||
reg_num: 1
|
|
||||||
node: 2
|
|
||||||
We have arrived after isLiveStoreData Line
|
|
||||||
We have arrived after getNodeType
|
|
||||||
node: 2
|
|
||||||
reg_num: 0
|
|
||||||
node: 3
|
|
||||||
We have arrived after isLiveStoreData Line
|
|
||||||
We have arrived after getNodeType
|
|
||||||
node: 3
|
|
||||||
reg_num: 2
|
|
||||||
node: 4
|
|
||||||
We have arrived after isLiveStoreData Line
|
|
||||||
We have arrived after getNodeType
|
|
||||||
node: 4
|
|
||||||
reg_num: 1
|
|
||||||
node: 5
|
|
||||||
We have arrived after isLiveStoreData Line
|
|
||||||
We have arrived after getNodeType
|
|
||||||
constant node: 5
|
|
||||||
Large Constant (Hex): 1 Constant (Decimal): 1
|
|
||||||
node: 5
|
|
||||||
reg_num: 3
|
|
||||||
node: 6
|
|
||||||
We have arrived after isLiveStoreData Line
|
|
||||||
We have arrived after getNodeType
|
|
||||||
constant node: 6
|
|
||||||
Generating Instructions To Store Address (Hex) 9a640
|
|
||||||
Node name: gVar1
|
|
||||||
Loading dynamic constant value. LDA and LDD are 168d82004: 105c1c000 in pe 2
|
|
||||||
Load Dyn Cons 168d82004 105c1c000
|
|
||||||
node: 6
|
|
||||||
reg_num: 2
|
|
||||||
node: 109
|
|
||||||
We have arrived after isLiveStoreData Line
|
|
||||||
We have arrived after getNodeType
|
|
||||||
constant node: 109
|
|
||||||
Generating Instructions To Store Address (Hex) 9a644
|
|
||||||
Node name: gVar2
|
|
||||||
node: 109
|
|
||||||
reg_num: 3
|
|
||||||
node: 110
|
|
||||||
We have arrived after isLiveStoreData Line
|
|
||||||
We have arrived after getNodeType
|
|
||||||
ld_add/st_add node: 110
|
|
||||||
|
|
||||||
Variable Address (Hex): 9a644 Node: 110 PE: 0 Address (Decimal): 632388 RegNum: 3
|
|
||||||
node: 110
|
|
||||||
reg_num: 4
|
|
||||||
node: 111
|
|
||||||
pe mem op
|
|
||||||
0 12
|
|
||||||
1 3
|
|
||||||
2 16
|
|
||||||
3 3
|
|
||||||
4 0
|
|
||||||
5 0
|
|
||||||
6 0
|
|
||||||
7 0
|
|
||||||
8 0
|
|
||||||
9 0
|
|
||||||
10 0
|
|
||||||
11 0
|
|
||||||
12 0
|
|
||||||
13 0
|
|
||||||
14 0
|
|
||||||
15 0
|
|
||||||
|
|
||||||
****** Generatina Instructions For Non-Phi Nodes *****
|
|
||||||
|
|
||||||
NODES SCHEDULED AT 1
|
|
||||||
|
|
||||||
|
|
||||||
NODES SCHEDULED AT 2
|
|
||||||
2 3
|
|
||||||
|
|
||||||
FOR NODE 2: Datatype:1 opcode:8 lmux:1 rmux:6 reg1:0 reg2:0 we:1 wreg:4 imm:1 ab:0 db:0
|
|
||||||
Decoded 181c04001
|
|
||||||
|
|
||||||
FOR NODE 3: Datatype:1 opcode:0 lmux:2 rmux:6 reg1:0 reg2:0 we:0 wreg:0 imm:1 ab:0 db:0
|
|
||||||
Decoded 102c00001
|
|
||||||
|
|
||||||
NODES SCHEDULED AT 3
|
|
||||||
4
|
|
||||||
|
|
||||||
FOR NODE 4: Datatype:1 opcode:12 lmux:2 rmux:0 reg1:0 reg2:3 we:0 wreg:0 imm:0 ab:0 db:0
|
|
||||||
Decoded 1c2060000
|
|
||||||
|
|
||||||
****** Generating Instructions For Phi Nodes *****
|
|
||||||
|
|
||||||
NODES SCHEDULED AT 1
|
|
||||||
0 1
|
|
||||||
Phi Instructions
|
|
||||||
|
|
||||||
Phi! Prolog! FOR NODE 0: Datatype:1 opcode:1 lmux:6 rmux:0 reg1:0 reg2:0 we:0 wreg:0 imm:1 ab:0 db:0
|
|
||||||
Decoded 11e000001
|
|
||||||
|
|
||||||
Phi! Prolog! FOR NODE 1: Datatype:1 opcode:1 lmux:6 rmux:0 reg1:0 reg2:0 we:0 wreg:0 imm:1 ab:0 db:0
|
|
||||||
Decoded 11e000001
|
|
||||||
|
|
||||||
Kernel Instructions
|
|
||||||
|
|
||||||
FOR NODE 0: Datatype:1 opcode:1 lmux:1 rmux:6 reg1:0 reg2:0 we:0 wreg:0 imm:0 ab:0 db:0
|
|
||||||
Decoded 119c00000
|
|
||||||
|
|
||||||
FOR NODE 1: Datatype:1 opcode:1 lmux:2 rmux:6 reg1:0 reg2:0 we:0 wreg:0 imm:0 ab:0 db:0
|
|
||||||
Decoded 11ac00000
|
|
||||||
|
|
||||||
****** Generating Instructions For Store Nodes For Live Variables*****
|
|
||||||
|
|
||||||
NODES SCHEDULED AT 4
|
|
||||||
|
|
||||||
NODES SCHEDULED AT STORE CYCLE 0
|
|
||||||
110 111
|
|
||||||
|
|
||||||
FOR NODE 110: Datatype:1 opcode:6 lmux:0 rmux:6 reg1:3 reg2:0 we:0 wreg:0 imm:4 ab:1 db:0
|
|
||||||
Decoded 168d82004
|
|
||||||
|
|
||||||
FOR NODE 111: Datatype:1 opcode:0 lmux:0 rmux:6 reg1:4 reg2:0 we:0 wreg:0 imm:0 ab:0 db:1
|
|
||||||
Decoded 100c01000
|
|
||||||
*******PROLOG*********
|
|
||||||
0: 10e004000
|
|
||||||
1: 10e004000
|
|
||||||
2: 10e004000
|
|
||||||
3: 10e004000
|
|
||||||
4: 10e004000
|
|
||||||
5: 10e004000
|
|
||||||
6: 10e004000
|
|
||||||
7: 10e004000
|
|
||||||
8: 10e004000
|
|
||||||
9: 10e004000
|
|
||||||
10: 10e004000
|
|
||||||
11: 10e004000
|
|
||||||
12: 10e004000
|
|
||||||
13: 10e004000
|
|
||||||
14: 10e004000
|
|
||||||
15: 10e004000
|
|
||||||
16: 11e00c001
|
|
||||||
17: 177e00000
|
|
||||||
18: 11e004640
|
|
||||||
19: 177e00000
|
|
||||||
20: 177e00000
|
|
||||||
21: 177e00000
|
|
||||||
22: 177e00000
|
|
||||||
23: 177e00000
|
|
||||||
24: 177e00000
|
|
||||||
25: 177e00000
|
|
||||||
26: 177e00000
|
|
||||||
27: 177e00000
|
|
||||||
28: 177e00000
|
|
||||||
29: 177e00000
|
|
||||||
30: 177e00000
|
|
||||||
31: 177e00000
|
|
||||||
32: 12e00c000
|
|
||||||
33: 177e00000
|
|
||||||
34: 12e00409a
|
|
||||||
35: 177e00000
|
|
||||||
36: 177e00000
|
|
||||||
37: 177e00000
|
|
||||||
38: 177e00000
|
|
||||||
39: 177e00000
|
|
||||||
40: 177e00000
|
|
||||||
41: 177e00000
|
|
||||||
42: 177e00000
|
|
||||||
43: 177e00000
|
|
||||||
44: 177e00000
|
|
||||||
45: 177e00000
|
|
||||||
46: 177e00000
|
|
||||||
47: 177e00000
|
|
||||||
48: 13e00c000
|
|
||||||
49: 177e00000
|
|
||||||
50: 13e004000
|
|
||||||
51: 177e00000
|
|
||||||
52: 177e00000
|
|
||||||
53: 177e00000
|
|
||||||
54: 177e00000
|
|
||||||
55: 177e00000
|
|
||||||
56: 177e00000
|
|
||||||
57: 177e00000
|
|
||||||
58: 177e00000
|
|
||||||
59: 177e00000
|
|
||||||
60: 177e00000
|
|
||||||
61: 177e00000
|
|
||||||
62: 177e00000
|
|
||||||
63: 177e00000
|
|
||||||
64: 11e014644
|
|
||||||
65: 177e00000
|
|
||||||
66: 168c02004
|
|
||||||
67: 177e00000
|
|
||||||
68: 177e00000
|
|
||||||
69: 177e00000
|
|
||||||
70: 177e00000
|
|
||||||
71: 177e00000
|
|
||||||
72: 177e00000
|
|
||||||
73: 177e00000
|
|
||||||
74: 177e00000
|
|
||||||
75: 177e00000
|
|
||||||
76: 177e00000
|
|
||||||
77: 177e00000
|
|
||||||
78: 177e00000
|
|
||||||
79: 177e00000
|
|
||||||
80: 12e01409a
|
|
||||||
81: 177e00000
|
|
||||||
82: 105c04000
|
|
||||||
83: 177e00000
|
|
||||||
84: 177e00000
|
|
||||||
85: 177e00000
|
|
||||||
86: 177e00000
|
|
||||||
87: 177e00000
|
|
||||||
88: 177e00000
|
|
||||||
89: 177e00000
|
|
||||||
90: 177e00000
|
|
||||||
91: 177e00000
|
|
||||||
92: 177e00000
|
|
||||||
93: 177e00000
|
|
||||||
94: 177e00000
|
|
||||||
95: 177e00000
|
|
||||||
96: 13e014000
|
|
||||||
97: 177e00000
|
|
||||||
98: 11e01c640
|
|
||||||
99: 177e00000
|
|
||||||
100: 177e00000
|
|
||||||
101: 177e00000
|
|
||||||
102: 177e00000
|
|
||||||
103: 177e00000
|
|
||||||
104: 177e00000
|
|
||||||
105: 177e00000
|
|
||||||
106: 177e00000
|
|
||||||
107: 177e00000
|
|
||||||
108: 177e00000
|
|
||||||
109: 177e00000
|
|
||||||
110: 177e00000
|
|
||||||
111: 177e00000
|
|
||||||
112: 11e01c644
|
|
||||||
113: 177e00000
|
|
||||||
114: 12e01c09a
|
|
||||||
115: 177e00000
|
|
||||||
116: 177e00000
|
|
||||||
117: 177e00000
|
|
||||||
118: 177e00000
|
|
||||||
119: 177e00000
|
|
||||||
120: 177e00000
|
|
||||||
121: 177e00000
|
|
||||||
122: 177e00000
|
|
||||||
123: 177e00000
|
|
||||||
124: 177e00000
|
|
||||||
125: 177e00000
|
|
||||||
126: 177e00000
|
|
||||||
127: 177e00000
|
|
||||||
128: 12e01c09a
|
|
||||||
129: 177e00000
|
|
||||||
130: 13e01c000
|
|
||||||
131: 177e00000
|
|
||||||
132: 177e00000
|
|
||||||
133: 177e00000
|
|
||||||
134: 177e00000
|
|
||||||
135: 177e00000
|
|
||||||
136: 177e00000
|
|
||||||
137: 177e00000
|
|
||||||
138: 177e00000
|
|
||||||
139: 177e00000
|
|
||||||
140: 177e00000
|
|
||||||
141: 177e00000
|
|
||||||
142: 177e00000
|
|
||||||
143: 177e00000
|
|
||||||
144: 13e01c000
|
|
||||||
145: 177e00000
|
|
||||||
146: 168d82004
|
|
||||||
147: 177e00000
|
|
||||||
148: 177e00000
|
|
||||||
149: 177e00000
|
|
||||||
150: 177e00000
|
|
||||||
151: 177e00000
|
|
||||||
152: 177e00000
|
|
||||||
153: 177e00000
|
|
||||||
154: 177e00000
|
|
||||||
155: 177e00000
|
|
||||||
156: 177e00000
|
|
||||||
157: 177e00000
|
|
||||||
158: 177e00000
|
|
||||||
159: 177e00000
|
|
||||||
160: 177e00000
|
|
||||||
161: 177e00000
|
|
||||||
162: 105c1c000
|
|
||||||
163: 177e00000
|
|
||||||
164: 177e00000
|
|
||||||
165: 177e00000
|
|
||||||
166: 177e00000
|
|
||||||
167: 177e00000
|
|
||||||
168: 177e00000
|
|
||||||
169: 177e00000
|
|
||||||
170: 177e00000
|
|
||||||
171: 177e00000
|
|
||||||
172: 177e00000
|
|
||||||
173: 177e00000
|
|
||||||
174: 177e00000
|
|
||||||
175: 177e00000
|
|
||||||
176: 177e00000
|
|
||||||
177: 177e00000
|
|
||||||
178: 177e00000
|
|
||||||
179: 177e00000
|
|
||||||
180: 177e00000
|
|
||||||
181: 177e00000
|
|
||||||
182: 177e00000
|
|
||||||
183: 177e00000
|
|
||||||
184: 177e00000
|
|
||||||
185: 177e00000
|
|
||||||
186: 177e00000
|
|
||||||
187: 177e00000
|
|
||||||
188: 177e00000
|
|
||||||
189: 177e00000
|
|
||||||
190: 177e00000
|
|
||||||
191: 177e00000
|
|
||||||
192: 177e00000
|
|
||||||
193: 177e00000
|
|
||||||
194: 177e00000
|
|
||||||
195: 177e00000
|
|
||||||
196: 177e00000
|
|
||||||
197: 177e00000
|
|
||||||
198: 177e00000
|
|
||||||
199: 177e00000
|
|
||||||
200: 177e00000
|
|
||||||
201: 177e00000
|
|
||||||
202: 177e00000
|
|
||||||
203: 177e00000
|
|
||||||
204: 177e00000
|
|
||||||
205: 177e00000
|
|
||||||
206: 177e00000
|
|
||||||
207: 177e00000
|
|
||||||
208: 177e00000
|
|
||||||
209: 177e00000
|
|
||||||
210: 177e00000
|
|
||||||
211: 177e00000
|
|
||||||
212: 177e00000
|
|
||||||
213: 177e00000
|
|
||||||
214: 177e00000
|
|
||||||
215: 177e00000
|
|
||||||
216: 177e00000
|
|
||||||
217: 177e00000
|
|
||||||
218: 177e00000
|
|
||||||
219: 177e00000
|
|
||||||
220: 177e00000
|
|
||||||
221: 177e00000
|
|
||||||
222: 177e00000
|
|
||||||
223: 177e00000
|
|
||||||
224: 177e00000
|
|
||||||
225: 177e00000
|
|
||||||
226: 177e00000
|
|
||||||
227: 177e00000
|
|
||||||
228: 177e00000
|
|
||||||
229: 177e00000
|
|
||||||
230: 177e00000
|
|
||||||
231: 177e00000
|
|
||||||
232: 177e00000
|
|
||||||
233: 177e00000
|
|
||||||
234: 177e00000
|
|
||||||
235: 177e00000
|
|
||||||
236: 177e00000
|
|
||||||
237: 177e00000
|
|
||||||
238: 177e00000
|
|
||||||
239: 177e00000
|
|
||||||
240: 177e00000
|
|
||||||
241: 177e00000
|
|
||||||
242: 177e00000
|
|
||||||
243: 177e00000
|
|
||||||
244: 177e00000
|
|
||||||
245: 177e00000
|
|
||||||
246: 177e00000
|
|
||||||
247: 177e00000
|
|
||||||
248: 177e00000
|
|
||||||
249: 177e00000
|
|
||||||
250: 177e00000
|
|
||||||
251: 177e00000
|
|
||||||
252: 177e00000
|
|
||||||
253: 177e00000
|
|
||||||
254: 177e00000
|
|
||||||
255: 177e00000
|
|
||||||
256: 177e00000
|
|
||||||
257: 177e00000
|
|
||||||
258: 177e00000
|
|
||||||
259: 177e00000
|
|
||||||
260: 177e00000
|
|
||||||
261: 177e00000
|
|
||||||
262: 177e00000
|
|
||||||
263: 177e00000
|
|
||||||
264: 177e00000
|
|
||||||
265: 177e00000
|
|
||||||
266: 177e00000
|
|
||||||
267: 177e00000
|
|
||||||
268: 177e00000
|
|
||||||
269: 177e00000
|
|
||||||
270: 177e00000
|
|
||||||
271: 177e00000
|
|
||||||
272: 177e00000
|
|
||||||
273: 177e00000
|
|
||||||
274: 177e00000
|
|
||||||
275: 177e00000
|
|
||||||
276: 177e00000
|
|
||||||
277: 177e00000
|
|
||||||
278: 177e00000
|
|
||||||
279: 177e00000
|
|
||||||
280: 177e00000
|
|
||||||
281: 177e00000
|
|
||||||
282: 177e00000
|
|
||||||
283: 177e00000
|
|
||||||
284: 177e00000
|
|
||||||
285: 177e00000
|
|
||||||
286: 177e00000
|
|
||||||
287: 177e00000
|
|
||||||
288: 177e00000
|
|
||||||
289: 177e00000
|
|
||||||
290: 177e00000
|
|
||||||
291: 177e00000
|
|
||||||
292: 177e00000
|
|
||||||
293: 177e00000
|
|
||||||
294: 177e00000
|
|
||||||
295: 177e00000
|
|
||||||
296: 177e00000
|
|
||||||
297: 177e00000
|
|
||||||
298: 177e00000
|
|
||||||
299: 177e00000
|
|
||||||
300: 177e00000
|
|
||||||
301: 177e00000
|
|
||||||
302: 177e00000
|
|
||||||
303: 177e00000
|
|
||||||
304: 11e000001
|
|
||||||
305: 11e000001
|
|
||||||
306: 177e00000
|
|
||||||
307: 177e00000
|
|
||||||
308: 177e00000
|
|
||||||
309: 177e00000
|
|
||||||
310: 177e00000
|
|
||||||
311: 177e00000
|
|
||||||
312: 177e00000
|
|
||||||
313: 177e00000
|
|
||||||
314: 177e00000
|
|
||||||
315: 177e00000
|
|
||||||
316: 177e00000
|
|
||||||
317: 177e00000
|
|
||||||
318: 177e00000
|
|
||||||
319: 177e00000
|
|
||||||
320: 177e00000
|
|
||||||
321: 177e00000
|
|
||||||
322: 181c04001
|
|
||||||
323: 102c00001
|
|
||||||
324: 177e00000
|
|
||||||
325: 177e00000
|
|
||||||
326: 177e00000
|
|
||||||
327: 177e00000
|
|
||||||
328: 177e00000
|
|
||||||
329: 177e00000
|
|
||||||
330: 177e00000
|
|
||||||
331: 177e00000
|
|
||||||
332: 177e00000
|
|
||||||
333: 177e00000
|
|
||||||
334: 177e00000
|
|
||||||
335: 177e00000
|
|
||||||
336: 119c00000
|
|
||||||
337: 11ac00000
|
|
||||||
338: 1c2060000
|
|
||||||
339: 177e00000
|
|
||||||
340: 177e00000
|
|
||||||
341: 177e00000
|
|
||||||
342: 177e00000
|
|
||||||
343: 177e00000
|
|
||||||
344: 177e00000
|
|
||||||
345: 177e00000
|
|
||||||
346: 177e00000
|
|
||||||
347: 177e00000
|
|
||||||
348: 177e00000
|
|
||||||
349: 177e00000
|
|
||||||
350: 177e00000
|
|
||||||
351: 177e00000
|
|
||||||
*******KERNEl*********
|
|
||||||
0: 177e00000
|
|
||||||
1: 177e00000
|
|
||||||
2: 181c04001
|
|
||||||
3: 102c00001
|
|
||||||
4: 177e00000
|
|
||||||
5: 177e00000
|
|
||||||
6: 177e00000
|
|
||||||
7: 177e00000
|
|
||||||
8: 177e00000
|
|
||||||
9: 177e00000
|
|
||||||
10: 177e00000
|
|
||||||
11: 177e00000
|
|
||||||
12: 177e00000
|
|
||||||
13: 177e00000
|
|
||||||
14: 177e00000
|
|
||||||
15: 177e00000
|
|
||||||
16: 119c00000
|
|
||||||
17: 11ac00000
|
|
||||||
18: 1c2060000
|
|
||||||
19: 177e00000
|
|
||||||
20: 177e00000
|
|
||||||
21: 177e00000
|
|
||||||
22: 177e00000
|
|
||||||
23: 177e00000
|
|
||||||
24: 177e00000
|
|
||||||
25: 177e00000
|
|
||||||
26: 177e00000
|
|
||||||
27: 177e00000
|
|
||||||
28: 177e00000
|
|
||||||
29: 177e00000
|
|
||||||
30: 177e00000
|
|
||||||
31: 177e00000
|
|
||||||
Store instr: 168d82004
|
|
||||||
Store instr: 100c01000
|
|
||||||
*******EPILOG*********
|
|
||||||
0: 177e00000
|
|
||||||
1: 177e00000
|
|
||||||
2: 181c04001
|
|
||||||
3: 102c00001
|
|
||||||
4: 177e00000
|
|
||||||
5: 177e00000
|
|
||||||
6: 177e00000
|
|
||||||
7: 177e00000
|
|
||||||
8: 177e00000
|
|
||||||
9: 177e00000
|
|
||||||
10: 177e00000
|
|
||||||
11: 177e00000
|
|
||||||
12: 177e00000
|
|
||||||
13: 177e00000
|
|
||||||
14: 177e00000
|
|
||||||
15: 177e00000
|
|
||||||
16: 177e00000
|
|
||||||
17: 177e00000
|
|
||||||
18: 1c2060000
|
|
||||||
19: 177e00000
|
|
||||||
20: 177e00000
|
|
||||||
21: 177e00000
|
|
||||||
22: 177e00000
|
|
||||||
23: 177e00000
|
|
||||||
24: 177e00000
|
|
||||||
25: 177e00000
|
|
||||||
26: 177e00000
|
|
||||||
27: 177e00000
|
|
||||||
28: 177e00000
|
|
||||||
29: 177e00000
|
|
||||||
30: 177e00000
|
|
||||||
31: 177e00000
|
|
||||||
32: 168d82004
|
|
||||||
33: 177e00000
|
|
||||||
34: 100c01000
|
|
||||||
35: 177e00000
|
|
||||||
36: 177e00000
|
|
||||||
37: 177e00000
|
|
||||||
38: 177e00000
|
|
||||||
39: 177e00000
|
|
||||||
40: 177e00000
|
|
||||||
41: 177e00000
|
|
||||||
42: 177e00000
|
|
||||||
43: 177e00000
|
|
||||||
44: 177e00000
|
|
||||||
45: 177e00000
|
|
||||||
46: 177e00000
|
|
||||||
47: 177e00000
|
|
||||||
48: 177e00000
|
|
||||||
49: 177e00000
|
|
||||||
50: 177e00000
|
|
||||||
51: 177e00000
|
|
||||||
52: 177e00000
|
|
||||||
53: 177e00000
|
|
||||||
54: 177e00000
|
|
||||||
55: 177e00000
|
|
||||||
56: 177e00000
|
|
||||||
57: 177e00000
|
|
||||||
58: 177e00000
|
|
||||||
59: 177e00000
|
|
||||||
60: 177e00000
|
|
||||||
61: 177e00000
|
|
||||||
62: 177e00000
|
|
||||||
63: 177e00000
|
|
|
@ -1,21 +0,0 @@
|
||||||
Mapping has started
|
|
||||||
Curerent II: 2 rec_MII: 2
|
|
||||||
|
|
||||||
Trying to schedule DDG at II: 2
|
|
||||||
5
|
|
||||||
5
|
|
||||||
Feasible II is 2 Schedule Len is 2
|
|
||||||
|
|
||||||
II after scheduling is: 2
|
|
||||||
Start Placement for II = 2
|
|
||||||
Node 0 is scheduled at 1 ASAP: 0 ALAP: 1 Mod: 1
|
|
||||||
Node 1 is scheduled at 1 ASAP: 0 ALAP: 1 Mod: 1
|
|
||||||
Node 2 is scheduled at 2 ASAP: 1 ALAP: 2 Mod: 0
|
|
||||||
Node 3 is scheduled at 2 ASAP: 1 ALAP: 2 Mod: 0
|
|
||||||
Node 4 is scheduled at 3 ASAP: 2 ALAP: 3 Mod: 1
|
|
||||||
Graph has n = 80 vertices.
|
|
||||||
Find a Clique of size at least k = 5
|
|
||||||
Attempt total number 1, Clique Size: 5
|
|
||||||
|
|
||||||
MII = 2 Current II=2
|
|
||||||
Mapping is completed
|
|
|
@ -1,33 +0,0 @@
|
||||||
-1
|
|
||||||
-1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
4
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
32
|
|
Binary file not shown.
|
@ -1,7 +0,0 @@
|
||||||
0 29 1
|
|
||||||
1 29 1
|
|
||||||
2 4 1
|
|
||||||
3 0 1
|
|
||||||
4 10 1
|
|
||||||
5 30 1
|
|
||||||
6 30 1
|
|
|
@ -1,10 +0,0 @@
|
||||||
2011168768
|
|
||||||
2011168768
|
|
||||||
2
|
|
||||||
4
|
|
||||||
22
|
|
||||||
3
|
|
||||||
1
|
|
||||||
673384
|
|
||||||
673904
|
|
||||||
676728
|
|
|
@ -1,33 +0,0 @@
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
2 0 2
|
|
||||||
3 0 2
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
0 0 1
|
|
||||||
1 0 1
|
|
||||||
4 0 3
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
32
|
|
|
@ -1 +0,0 @@
|
||||||
-2
|
|
Binary file not shown.
|
@ -1,3 +0,0 @@
|
||||||
107 108 0 LRE 0
|
|
||||||
108 4 0 TRU 1
|
|
||||||
6 107 0 TRU 0
|
|
|
@ -1,4 +0,0 @@
|
||||||
4 10 4 1
|
|
||||||
6 30 gVar1 1
|
|
||||||
107 19 ld_add_gVar1 1
|
|
||||||
108 20 ld_data_gVar1 1
|
|
|
@ -1,3 +0,0 @@
|
||||||
110 111 0 SRE 0
|
|
||||||
2 111 0 TRU 0
|
|
||||||
109 111 0 TRU 1
|
|
|
@ -1,4 +0,0 @@
|
||||||
2 4 2 0 1
|
|
||||||
109 30 gVar2 0 1
|
|
||||||
110 21 st_add_gVar2 4 1
|
|
||||||
111 22 st_data_gVar2 0 1
|
|
|
@ -1 +0,0 @@
|
||||||
16
|
|
|
@ -1,10 +0,0 @@
|
||||||
3 0 1 TRU 0
|
|
||||||
5 0 0 TRU 1
|
|
||||||
2 1 1 TRU 0
|
|
||||||
5 1 0 TRU 1
|
|
||||||
1 2 0 TRU 0
|
|
||||||
5 2 0 TRU 1
|
|
||||||
0 3 0 TRU 0
|
|
||||||
5 3 0 TRU 1
|
|
||||||
3 4 0 TRU 0
|
|
||||||
6 4 0 LIE 1
|
|
|
@ -1,7 +0,0 @@
|
||||||
0 29 0 0 1
|
|
||||||
1 29 1 0 1
|
|
||||||
2 4 2 0 1
|
|
||||||
3 0 3 0 1
|
|
||||||
4 10 4 0 1
|
|
||||||
5 30 ConstInt1 0 1
|
|
||||||
6 30 gVar1 4 1
|
|
|
@ -1,32 +0,0 @@
|
||||||
digraph loop_12 {
|
|
||||||
{
|
|
||||||
0 [shape=box, color=red, label="0\nPHI"];
|
|
||||||
|
|
||||||
1 [shape=box, color=red, label="1\nPHI"];
|
|
||||||
|
|
||||||
2 [shape=triangle, color=purple, label="2\nShiftl"];
|
|
||||||
|
|
||||||
3 [shape=polygon, color=purple, label="3\nAdd"];
|
|
||||||
|
|
||||||
4 [shape=trapezium, color=orange, label="4\nCMPEQ"];
|
|
||||||
|
|
||||||
5 [color=black, label="ConstInt1\n"];
|
|
||||||
|
|
||||||
6 [color=black, label="gVar1\n"];
|
|
||||||
|
|
||||||
109 [color=black, label="gVar2\n"];
|
|
||||||
3 -> 0 [style=bold, color=red, label=1]
|
|
||||||
5 -> 0 [color=gray]
|
|
||||||
2 -> 1 [style=bold, color=red, label=1]
|
|
||||||
5 -> 1 [color=gray]
|
|
||||||
1 -> 2
|
|
||||||
5 -> 2 [color=gray]
|
|
||||||
0 -> 3
|
|
||||||
5 -> 3 [color=gray]
|
|
||||||
3 -> 4
|
|
||||||
6 -> 4 [color=orange, label=4]
|
|
||||||
2 -> 109 [color=orange, label=4]
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1 +0,0 @@
|
||||||
0
|
|
|
@ -1,5 +0,0 @@
|
||||||
0 1
|
|
||||||
1 1
|
|
||||||
2 1
|
|
||||||
3 1
|
|
||||||
4 1
|
|
|
@ -1,65 +0,0 @@
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
0
|
|
||||||
1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
0
|
|
||||||
1
|
|
||||||
4
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
64
|
|
Binary file not shown.
|
@ -1,16 +0,0 @@
|
||||||
0 0
|
|
||||||
1 0
|
|
||||||
2 0
|
|
||||||
3 0
|
|
||||||
4 0
|
|
||||||
5 0
|
|
||||||
6 0
|
|
||||||
7 0
|
|
||||||
8 0
|
|
||||||
9 0
|
|
||||||
10 0
|
|
||||||
11 0
|
|
||||||
12 0
|
|
||||||
13 0
|
|
||||||
14 0
|
|
||||||
15 0
|
|
|
@ -1,112 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
############################################
|
|
||||||
############################################
|
|
||||||
## Author : Shail Dave ##
|
|
||||||
## Arizona State University ##
|
|
||||||
## ##
|
|
||||||
## Notes : Script File To Compile A Loop ##
|
|
||||||
## for its Execution on CGRA ##
|
|
||||||
## ##
|
|
||||||
############################################
|
|
||||||
############################################
|
|
||||||
|
|
||||||
#Set Architecture Parameters
|
|
||||||
#X=4
|
|
||||||
#Y=4
|
|
||||||
#R=4
|
|
||||||
|
|
||||||
X=0
|
|
||||||
Y=0
|
|
||||||
R=0
|
|
||||||
IC=0
|
|
||||||
CGRAclock=0
|
|
||||||
CPUClock=0
|
|
||||||
ALGO=""
|
|
||||||
MSA=10
|
|
||||||
MAPII=10
|
|
||||||
MAX_MAP=1000
|
|
||||||
MAX_II=50
|
|
||||||
LAMBDA=0.02
|
|
||||||
|
|
||||||
if [ -f "CGRA_config.csv" ]; then
|
|
||||||
INPUTFILE="CGRA_config.csv"
|
|
||||||
X=$(grep -w X $INPUTFILE | cut -d, -f2)
|
|
||||||
Y=$(grep -w Y $INPUTFILE | cut -d, -f2)
|
|
||||||
R=$(grep -w R $INPUTFILE | cut -d, -f2)
|
|
||||||
ALGO=$(grep -w ALGO $INPUTFILE | cut -d, -f2)
|
|
||||||
MSA=$(grep -w MSA $INPUTFILE | cut -d, -f2)
|
|
||||||
MAPII=$(grep -w MAPII $INPUTFILE | cut -d, -f2)
|
|
||||||
MAX_MAP=$(grep -w MAX_MAP $INPUTFILE | cut -d, -f2)
|
|
||||||
MAX_II=$(grep -w MAX_II $INPUTFILE | cut -d, -f2)
|
|
||||||
LAMBDA=$(grep -w LAMBDA $INPUTFILE | cut -d, -f2)
|
|
||||||
|
|
||||||
|
|
||||||
else
|
|
||||||
echo "Please include CGRA architecture file"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
obj="$1"
|
|
||||||
|
|
||||||
#Setting Paths
|
|
||||||
LEVEL=../..
|
|
||||||
#toolchain="/home/shail/ccf-init"
|
|
||||||
ccf_root="$2"
|
|
||||||
script="$ccf_root/scripts"
|
|
||||||
opcodegen="$ccf_root/InstructionGenerator/insgen"
|
|
||||||
opcodegen1="$ccf_root/InstructionGenerator/falcon_insgen"
|
|
||||||
|
|
||||||
#Detect node and edge file
|
|
||||||
llvmedge="$(find . -name "*.txt" | grep -i loop | grep -i edge)"
|
|
||||||
llvmnode="$(find . -name "*.txt" | grep -i loop | grep -i node)"
|
|
||||||
|
|
||||||
echo $llvmnode
|
|
||||||
|
|
||||||
#RAMP - Scheduling and Mapping
|
|
||||||
#if [ $ALGO -eq 0 ]; then
|
|
||||||
# $script/map.sh $llvmnode $llvmedge -X $X -Y $Y -R $R
|
|
||||||
#elif [ $ALGO -eq 1 ]; then
|
|
||||||
# $script/map1.sh $llvmnode $llvmedge $X $Y $R $MODE
|
|
||||||
#elif [ $ALGO -eq 2 ]; then
|
|
||||||
# $script/map2.sh $llvmnode $llvmedge $X $Y $R $MODE
|
|
||||||
#elif [ $ALGO -eq 3 ]; then
|
|
||||||
# $script/map3.sh $llvmnode $llvmedge $X $Y $R $MODE
|
|
||||||
#else
|
|
||||||
# $script/map4.sh $llvmnode $llvmedge $X $Y $R $MODE $SCHED
|
|
||||||
#fi
|
|
||||||
|
|
||||||
pwd
|
|
||||||
find ${ccf_root}/mappings -maxdepth 1 -mindepth 1 -type d | while read dir; do
|
|
||||||
if [[ $dir == *"$ALGO" ]]; then
|
|
||||||
map="$dir/Release"
|
|
||||||
nodefile="$dir/DFGFiles"
|
|
||||||
$map/$ALGO -EDGE $llvmedge -NODE $llvmnode -X $X -Y $Y -R $R -MSA $MSA -MAPII $MAPII -MAX_MAP $MAX_MAP -MAX_II $MAX_II -LAMBDA $LAMBDA #> $schfile
|
|
||||||
$nodefile/nodefile $llvmnode DUMP_node.txt > final_node.txt
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
finalnode="$(find ./ -name "*.txt" | grep -i final | grep -i node)"
|
|
||||||
node="$(find ./ -name "*.txt" | grep -i DUMP | grep -i node)"
|
|
||||||
edge="$(find ./ -name "*.txt" | grep -i DUMP | grep -i edge)"
|
|
||||||
|
|
||||||
liveoutnode="$(find ./ -name "*.txt" | grep -i liveout | grep -i node)"
|
|
||||||
liveoutedge="$(find ./ -name "*.txt" | grep -i liveout | grep -i edge)"
|
|
||||||
|
|
||||||
if [ $R -eq 0 ]; then
|
|
||||||
R=4
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#echo "Num regs is $R"
|
|
||||||
|
|
||||||
#Instruction Generator
|
|
||||||
echo Instruction Generator
|
|
||||||
if [ $ALGO == "FalconCrimson" ]; then
|
|
||||||
echo running FalcomCrimson
|
|
||||||
$opcodegen1 $finalnode $edge $llvmnode $llvmedge $obj prolog.sch kernel.sch epilog.sch $X $Y $R $liveoutnode $liveoutedge > cgra_instructions.txt
|
|
||||||
else
|
|
||||||
echo Running something else
|
|
||||||
#$opcodegen $finalnode $edge $llvmnode $llvmedge $obj prolog.sch kernel.sch epilog.sch $X $Y $R $liveoutnode $liveoutedge > cgra_instructions.txt
|
|
||||||
$opcodegen $finalnode $edge $llvmnode $llvmedge $obj prolog.sch kernel.sch epilog.sch $X $Y $R $liveoutnode $liveoutedge &> cgra_instructions.debug
|
|
||||||
fi
|
|
|
@ -1 +0,0 @@
|
||||||
1
|
|
|
@ -1,575 +0,0 @@
|
||||||
; ModuleID = 'CGRAGen.bc'
|
|
||||||
source_filename = "llvm-link"
|
|
||||||
target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"
|
|
||||||
target triple = "armv7-none-linux-eabi"
|
|
||||||
|
|
||||||
%struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i32, i16, i8, [1 x i8], i8*, i64, %struct._IO_codecvt*, %struct._IO_wide_data*, %struct._IO_FILE*, i8*, i32, i32, [40 x i8] }
|
|
||||||
%struct._IO_marker = type opaque
|
|
||||||
%struct._IO_codecvt = type opaque
|
|
||||||
%struct._IO_wide_data = type opaque
|
|
||||||
|
|
||||||
@.str = private unnamed_addr constant [24 x i8] c"***** %d^%d = %d *****\0A\00", align 1
|
|
||||||
@totalLoops = dso_local global i32 0, align 4
|
|
||||||
@dynamicTCVal = dso_local local_unnamed_addr global i32 0, align 4
|
|
||||||
@initCGRA = dso_local local_unnamed_addr global i32* null, align 4
|
|
||||||
@epilog = dso_local local_unnamed_addr global i32* null, align 4
|
|
||||||
@prolog = dso_local local_unnamed_addr global i32* null, align 4
|
|
||||||
@kernel = dso_local local_unnamed_addr global i32* null, align 4
|
|
||||||
@prologPtr = dso_local local_unnamed_addr global i32* null, align 4
|
|
||||||
@epilogPtr = dso_local local_unnamed_addr global i32* null, align 4
|
|
||||||
@kernelPtr = dso_local local_unnamed_addr global i32* null, align 4
|
|
||||||
@ArrPtr = dso_local local_unnamed_addr global i32* null, align 4
|
|
||||||
@pth = dso_local local_unnamed_addr global i32 0, align 4
|
|
||||||
@str = private unnamed_addr constant [34 x i8] c"from cgra.c Initialize Parameters\00", align 1
|
|
||||||
@__const.configureCGRA.directoryPath = private unnamed_addr constant [20 x i8] c"./CGRAExec/L\00\00\00\00\00\00\00\00", align 1
|
|
||||||
@.str.1 = private unnamed_addr constant [3 x i8] c"%d\00", align 1
|
|
||||||
@.str.2 = private unnamed_addr constant [16 x i8] c"/epilog_ins.bin\00", align 1
|
|
||||||
@.str.3 = private unnamed_addr constant [16 x i8] c"/prolog_ins.bin\00", align 1
|
|
||||||
@.str.4 = private unnamed_addr constant [16 x i8] c"/kernel_ins.bin\00", align 1
|
|
||||||
@.str.5 = private unnamed_addr constant [17 x i8] c"/CGRA_config.txt\00", align 1
|
|
||||||
@.str.6 = private unnamed_addr constant [3 x i8] c"rb\00", align 1
|
|
||||||
@.str.7 = private unnamed_addr constant [2 x i8] c"r\00", align 1
|
|
||||||
@.str.8 = private unnamed_addr constant [32 x i8] c"\0A**********EPISIZE %d*********\0A\00", align 1
|
|
||||||
@.str.9 = private unnamed_addr constant [32 x i8] c"\0A**********PROSIZE %d*********\0A\00", align 1
|
|
||||||
@.str.10 = private unnamed_addr constant [33 x i8] c"\0A**********KERNSIZE %d*********\0A\00", align 1
|
|
||||||
@.str.11 = private unnamed_addr constant [37 x i8] c"\0A******SIZE OF UNSIGNED LONG%d*****\0A\00", align 1
|
|
||||||
@.str.12 = private unnamed_addr constant [42 x i8] c"\0A******SIZE OF UNSIGNED LONG LONG%d*****\0A\00", align 1
|
|
||||||
@.str.13 = private unnamed_addr constant [26 x i8] c"/livevar_st_ins_count.txt\00", align 1
|
|
||||||
@.str.14 = private unnamed_addr constant [39 x i8] c"\0A************XDIM and YDim are %d, %d\0A\00", align 1
|
|
||||||
@.str.15 = private unnamed_addr constant [18 x i8] c"/kernel_count.txt\00", align 1
|
|
||||||
@.str.16 = private unnamed_addr constant [16 x i8] c"Loop Count: %d\0A\00", align 1
|
|
||||||
@.str.17 = private unnamed_addr constant [55 x i8] c"From FILE: PROLOGPC= %lx, EPILOGPC=%lx, KernelPC=%lx\0A\00", align 1
|
|
||||||
@str.34 = private unnamed_addr constant [14 x i8] c"configureCGRA\00", align 1
|
|
||||||
@.str.19 = private unnamed_addr constant [14 x i8] c"\0Aloopno = %s\0A\00", align 1
|
|
||||||
@.str.20 = private unnamed_addr constant [17 x i8] c"newTC = %d + %d\0A\00", align 1
|
|
||||||
@__const.configureCGRA.initCGRAfile = private unnamed_addr constant [40 x i8] c"./CGRAExec/L1\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", align 1
|
|
||||||
@.str.21 = private unnamed_addr constant [14 x i8] c"/initCGRA.txt\00", align 1
|
|
||||||
@.str.22 = private unnamed_addr constant [3 x i8] c"wb\00", align 1
|
|
||||||
@.str.23 = private unnamed_addr constant [4 x i8] c"%d\0A\00", align 1
|
|
||||||
@.str.24 = private unnamed_addr constant [5 x i8] c"%ld\0A\00", align 1
|
|
||||||
@str.35 = private unnamed_addr constant [16 x i8] c"checkTotalLoops\00", align 1
|
|
||||||
@__const.checkTotalLoops.myfile = private unnamed_addr constant [40 x i8] c"./CGRAExec/total_loops.txt\00\00\00\00\00\00\00\00\00\00\00\00\00\00", align 1
|
|
||||||
@.str.26 = private unnamed_addr constant [3 x i8] c"%u\00", align 1
|
|
||||||
@str.36 = private unnamed_addr constant [12 x i8] c"\0A\0ArunOnCGRA\00", align 1
|
|
||||||
@str.37 = private unnamed_addr constant [19 x i8] c"\0A\0AaccelerateOnCGRA\00", align 1
|
|
||||||
@.str.30 = private unnamed_addr constant [35 x i8] c"Core will execute loop %u on CGRA\0A\00", align 1
|
|
||||||
@str.38 = private unnamed_addr constant [15 x i8] c"\0Adeleting cgra\00", align 1
|
|
||||||
@str.39 = private unnamed_addr constant [11 x i8] c"createCGRA\00", align 1
|
|
||||||
@str.40 = private unnamed_addr constant [35 x i8] c"Main thread calling CGRA thread...\00", align 1
|
|
||||||
@gVar1 = common local_unnamed_addr global i32 0
|
|
||||||
@gVar2 = common local_unnamed_addr global i32 0
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
define dso_local i32 @main(i32 %0, i8** nocapture readonly %1) local_unnamed_addr #0 {
|
|
||||||
call void @createCGRA()
|
|
||||||
%3 = getelementptr inbounds i8*, i8** %1, i32 1
|
|
||||||
%4 = load i8*, i8** %3, align 4, !tbaa !5
|
|
||||||
%5 = tail call i32 @strtol(i8* nocapture nonnull %4, i8** null, i32 10) #11
|
|
||||||
%6 = icmp sgt i32 %5, 1
|
|
||||||
store i32 %5, i32* @gVar1, align 4
|
|
||||||
br i1 %6, label %.preheader.preheader, label %.loopexit
|
|
||||||
|
|
||||||
.preheader.preheader: ; preds = %2
|
|
||||||
%7 = sub i32 %5, 1
|
|
||||||
%8 = sdiv i32 %7, 1
|
|
||||||
store i32 %8, i32* @dynamicTCVal, align 4
|
|
||||||
br label %9
|
|
||||||
|
|
||||||
9: ; preds = %.preheader.preheader
|
|
||||||
call void @accelerateOnCGRA(i32 1)
|
|
||||||
br label %.loopexit.loopexit
|
|
||||||
|
|
||||||
.loopexit.loopexit: ; preds = %9
|
|
||||||
br label %10
|
|
||||||
|
|
||||||
10: ; preds = %.loopexit.loopexit
|
|
||||||
%11 = load i32, i32* @gVar2, align 4
|
|
||||||
br label %.loopexit
|
|
||||||
|
|
||||||
.loopexit: ; preds = %10, %2
|
|
||||||
%12 = phi i32 [ 1, %2 ], [ %11, %10 ]
|
|
||||||
%13 = tail call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([24 x i8], [24 x i8]* @.str, i32 0, i32 0), i32 2, i32 %5, i32 %12)
|
|
||||||
call void @deleteCGRA()
|
|
||||||
ret i32 0
|
|
||||||
}
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind willreturn
|
|
||||||
declare dso_local i32 @strtol(i8* readonly, i8** nocapture, i32) local_unnamed_addr #1
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
declare dso_local noundef i32 @printf(i8* nocapture noundef readonly, ...) local_unnamed_addr #2
|
|
||||||
|
|
||||||
; Function Attrs: nounwind
|
|
||||||
define dso_local i32 @initializeParameters(i32 %0) local_unnamed_addr #3 {
|
|
||||||
%2 = alloca [25 x i8], align 1
|
|
||||||
%3 = alloca [20 x i8], align 1
|
|
||||||
%4 = alloca [40 x i8], align 1
|
|
||||||
%5 = alloca [40 x i8], align 1
|
|
||||||
%6 = alloca [40 x i8], align 1
|
|
||||||
%7 = alloca [40 x i8], align 1
|
|
||||||
%8 = alloca [40 x i8], align 1
|
|
||||||
%9 = alloca i32, align 4
|
|
||||||
%10 = alloca i32, align 4
|
|
||||||
%11 = alloca i32, align 4
|
|
||||||
%12 = alloca i32, align 4
|
|
||||||
%13 = alloca [256 x i8], align 1
|
|
||||||
%14 = alloca [40 x i8], align 1
|
|
||||||
%15 = alloca i32, align 4
|
|
||||||
%16 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([34 x i8], [34 x i8]* @str, i32 0, i32 0))
|
|
||||||
%17 = load i32*, i32** @initCGRA, align 4, !tbaa !5
|
|
||||||
%18 = add i32 %0, -1
|
|
||||||
%19 = mul i32 %18, 7
|
|
||||||
%20 = getelementptr inbounds i32, i32* %17, i32 %19
|
|
||||||
store i32 2011168768, i32* %20, align 4, !tbaa !9
|
|
||||||
%21 = getelementptr inbounds i32, i32* %20, i32 1
|
|
||||||
store i32 2011168768, i32* %21, align 4, !tbaa !9
|
|
||||||
%22 = getelementptr inbounds i32, i32* %20, i32 2
|
|
||||||
%23 = getelementptr inbounds [25 x i8], [25 x i8]* %2, i32 0, i32 0
|
|
||||||
%24 = bitcast i32* %22 to i8*
|
|
||||||
tail call void @llvm.memset.p0i8.i64(i8* nonnull align 4 dereferenceable(20) %24, i8 0, i64 20, i1 false)
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 25, i8* nonnull %23) #11
|
|
||||||
%25 = getelementptr inbounds [20 x i8], [20 x i8]* %3, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 20, i8* nonnull %25) #11
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(20) %25, i8* nonnull align 1 dereferenceable(20) getelementptr inbounds ([20 x i8], [20 x i8]* @__const.configureCGRA.directoryPath, i32 0, i32 0), i32 20, i1 false)
|
|
||||||
%26 = call i32 (i8*, i8*, ...) @sprintf(i8* nonnull %23, i8* nonnull dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i32 0, i32 0), i32 %0) #11
|
|
||||||
%27 = call i8* @strcat(i8* nonnull %25, i8* nonnull %23) #11
|
|
||||||
%28 = getelementptr inbounds [40 x i8], [40 x i8]* %4, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %28) #11
|
|
||||||
call void @llvm.memset.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %28, i8 0, i32 40, i1 false)
|
|
||||||
%29 = getelementptr inbounds [40 x i8], [40 x i8]* %5, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %29) #11
|
|
||||||
call void @llvm.memset.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %29, i8 0, i32 40, i1 false)
|
|
||||||
%30 = getelementptr inbounds [40 x i8], [40 x i8]* %6, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %30) #11
|
|
||||||
call void @llvm.memset.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %30, i8 0, i32 40, i1 false)
|
|
||||||
%31 = getelementptr inbounds [40 x i8], [40 x i8]* %7, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %31) #11
|
|
||||||
call void @llvm.memset.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %31, i8 0, i32 40, i1 false)
|
|
||||||
%32 = getelementptr inbounds [40 x i8], [40 x i8]* %8, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %32) #11
|
|
||||||
call void @llvm.memset.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %32, i8 0, i32 40, i1 false)
|
|
||||||
%33 = call i8* @strcat(i8* nonnull %28, i8* nonnull %25) #11
|
|
||||||
%34 = call i32 @strlen(i8* nonnull %28)
|
|
||||||
%35 = getelementptr [40 x i8], [40 x i8]* %4, i32 0, i32 %34
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(16) %35, i8* nonnull align 1 dereferenceable(16) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i32 0, i32 0), i32 16, i1 false)
|
|
||||||
%36 = call i8* @strcat(i8* nonnull %29, i8* nonnull %25) #11
|
|
||||||
%37 = call i32 @strlen(i8* nonnull %29)
|
|
||||||
%38 = getelementptr [40 x i8], [40 x i8]* %5, i32 0, i32 %37
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(16) %38, i8* nonnull align 1 dereferenceable(16) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.3, i32 0, i32 0), i32 16, i1 false)
|
|
||||||
%39 = call i8* @strcat(i8* nonnull %30, i8* nonnull %25) #11
|
|
||||||
%40 = call i32 @strlen(i8* nonnull %30)
|
|
||||||
%41 = getelementptr [40 x i8], [40 x i8]* %6, i32 0, i32 %40
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(16) %41, i8* nonnull align 1 dereferenceable(16) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.4, i32 0, i32 0), i32 16, i1 false)
|
|
||||||
%42 = call i8* @strcat(i8* nonnull %32, i8* nonnull %25) #11
|
|
||||||
%43 = call i32 @strlen(i8* nonnull %32)
|
|
||||||
%44 = getelementptr [40 x i8], [40 x i8]* %8, i32 0, i32 %43
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(17) %44, i8* nonnull align 1 dereferenceable(17) getelementptr inbounds ([17 x i8], [17 x i8]* @.str.5, i32 0, i32 0), i32 17, i1 false)
|
|
||||||
%45 = call %struct._IO_FILE* @fopen(i8* nonnull %28, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.6, i32 0, i32 0))
|
|
||||||
%46 = call %struct._IO_FILE* @fopen(i8* nonnull %29, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.6, i32 0, i32 0))
|
|
||||||
%47 = call %struct._IO_FILE* @fopen(i8* nonnull %30, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.6, i32 0, i32 0))
|
|
||||||
%48 = call %struct._IO_FILE* @fopen(i8* nonnull %32, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.7, i32 0, i32 0))
|
|
||||||
%49 = bitcast i32* %9 to i8*
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %49) #11
|
|
||||||
%50 = bitcast i32* %10 to i8*
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %50) #11
|
|
||||||
%51 = bitcast i32* %11 to i8*
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %51) #11
|
|
||||||
%52 = bitcast i32* %12 to i8*
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %52) #11
|
|
||||||
%53 = call i32 @fread(i8* nonnull %49, i32 4, i32 1, %struct._IO_FILE* %45)
|
|
||||||
%54 = call i32 @fread(i8* nonnull %50, i32 4, i32 1, %struct._IO_FILE* %46)
|
|
||||||
%55 = call i32 @fread(i8* nonnull %51, i32 4, i32 1, %struct._IO_FILE* %47)
|
|
||||||
%56 = load i32, i32* %9, align 4, !tbaa !9
|
|
||||||
%57 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.8, i32 0, i32 0), i32 %56)
|
|
||||||
%58 = load i32, i32* %10, align 4, !tbaa !9
|
|
||||||
%59 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.9, i32 0, i32 0), i32 %58)
|
|
||||||
%60 = load i32, i32* %11, align 4, !tbaa !9
|
|
||||||
%61 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([33 x i8], [33 x i8]* @.str.10, i32 0, i32 0), i32 %60)
|
|
||||||
%62 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([37 x i8], [37 x i8]* @.str.11, i32 0, i32 0), i32 4)
|
|
||||||
%63 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([42 x i8], [42 x i8]* @.str.12, i32 0, i32 0), i32 8)
|
|
||||||
%64 = shl i32 %56, 3
|
|
||||||
%65 = call noalias i8* @malloc(i32 %64) #11
|
|
||||||
store i8* %65, i8** bitcast (i32** @epilog to i8**), align 4, !tbaa !5
|
|
||||||
%66 = shl i32 %58, 3
|
|
||||||
%67 = call noalias i8* @malloc(i32 %66) #11
|
|
||||||
store i8* %67, i8** bitcast (i32** @prolog to i8**), align 4, !tbaa !5
|
|
||||||
%68 = shl i32 %60, 3
|
|
||||||
%69 = call noalias i8* @malloc(i32 %68) #11
|
|
||||||
store i8* %69, i8** bitcast (i32** @kernel to i8**), align 4, !tbaa !5
|
|
||||||
%70 = call i32 @fread(i8* %65, i32 8, i32 %56, %struct._IO_FILE* %45)
|
|
||||||
%71 = load i8*, i8** bitcast (i32** @prolog to i8**), align 4, !tbaa !5
|
|
||||||
%72 = call i32 @fread(i8* %71, i32 8, i32 %58, %struct._IO_FILE* %46)
|
|
||||||
%73 = load i8*, i8** bitcast (i32** @kernel to i8**), align 4, !tbaa !5
|
|
||||||
%74 = call i32 @fread(i8* %73, i32 8, i32 %60, %struct._IO_FILE* %47)
|
|
||||||
%75 = call i8* @strcat(i8* nonnull %31, i8* nonnull %25) #11
|
|
||||||
%76 = call i32 @strlen(i8* nonnull %31)
|
|
||||||
%77 = getelementptr [40 x i8], [40 x i8]* %7, i32 0, i32 %76
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(26) %77, i8* nonnull align 1 dereferenceable(26) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.13, i32 0, i32 0), i32 26, i1 false)
|
|
||||||
%78 = call %struct._IO_FILE* @fopen(i8* nonnull %31, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.7, i32 0, i32 0))
|
|
||||||
%79 = call i32 (%struct._IO_FILE*, i8*, ...) @__isoc99_fscanf(%struct._IO_FILE* %78, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i32 0, i32 0), i32* nonnull %12) #11
|
|
||||||
%80 = getelementptr inbounds [256 x i8], [256 x i8]* %13, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 256, i8* nonnull %80) #11
|
|
||||||
%81 = call i8* @fgets(i8* nonnull %80, i32 256, %struct._IO_FILE* %48)
|
|
||||||
%82 = icmp eq i8* %81, null
|
|
||||||
br i1 %82, label %.loopexit, label %.preheader.preheader
|
|
||||||
|
|
||||||
.preheader.preheader: ; preds = %1
|
|
||||||
br label %.preheader
|
|
||||||
|
|
||||||
.preheader: ; preds = %94, %.preheader.preheader
|
|
||||||
%83 = phi i32 [ %96, %94 ], [ 0, %.preheader.preheader ]
|
|
||||||
%84 = phi i32 [ %95, %94 ], [ 0, %.preheader.preheader ]
|
|
||||||
%85 = phi i32 [ %86, %94 ], [ 0, %.preheader.preheader ]
|
|
||||||
%86 = add nuw nsw i32 %85, 1
|
|
||||||
%87 = icmp eq i32 %85, 0
|
|
||||||
br i1 %87, label %88, label %90
|
|
||||||
|
|
||||||
88: ; preds = %.preheader
|
|
||||||
%89 = call i32 @strtol(i8* nocapture nonnull %80, i8** null, i32 10) #11
|
|
||||||
br label %94
|
|
||||||
|
|
||||||
90: ; preds = %.preheader
|
|
||||||
%91 = icmp eq i32 %86, 2
|
|
||||||
br i1 %91, label %92, label %.loopexit.loopexit
|
|
||||||
|
|
||||||
92: ; preds = %90
|
|
||||||
%93 = call i32 @strtol(i8* nocapture nonnull %80, i8** null, i32 10) #11
|
|
||||||
br label %94
|
|
||||||
|
|
||||||
94: ; preds = %92, %88
|
|
||||||
%95 = phi i32 [ %84, %88 ], [ %93, %92 ]
|
|
||||||
%96 = phi i32 [ %89, %88 ], [ %83, %92 ]
|
|
||||||
%97 = call i8* @fgets(i8* nonnull %80, i32 256, %struct._IO_FILE* %48)
|
|
||||||
%98 = icmp eq i8* %97, null
|
|
||||||
br i1 %98, label %.loopexit.loopexit, label %.preheader, !llvm.loop !11
|
|
||||||
|
|
||||||
.loopexit.loopexit: ; preds = %94, %90
|
|
||||||
%.ph = phi i32 [ %95, %94 ], [ %84, %90 ]
|
|
||||||
%.ph6 = phi i32 [ %96, %94 ], [ %83, %90 ]
|
|
||||||
br label %.loopexit
|
|
||||||
|
|
||||||
.loopexit: ; preds = %.loopexit.loopexit, %1
|
|
||||||
%99 = phi i32 [ 0, %1 ], [ %.ph, %.loopexit.loopexit ]
|
|
||||||
%100 = phi i32 [ 0, %1 ], [ %.ph6, %.loopexit.loopexit ]
|
|
||||||
%101 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.14, i32 0, i32 0), i32 %100, i32 %99)
|
|
||||||
%102 = mul nsw i32 %100, %99
|
|
||||||
%103 = sdiv i32 %60, %102
|
|
||||||
%104 = sdiv i32 %56, %102
|
|
||||||
%105 = sdiv i32 %58, %102
|
|
||||||
%106 = load i32*, i32** @initCGRA, align 4, !tbaa !5
|
|
||||||
%107 = getelementptr inbounds i32, i32* %106, i32 %19
|
|
||||||
%108 = getelementptr inbounds i32, i32* %107, i32 2
|
|
||||||
store i32 %103, i32* %108, align 4, !tbaa !9
|
|
||||||
%109 = getelementptr inbounds i32, i32* %107, i32 3
|
|
||||||
store i32 %104, i32* %109, align 4, !tbaa !9
|
|
||||||
%110 = getelementptr inbounds i32, i32* %107, i32 4
|
|
||||||
store i32 %105, i32* %110, align 4, !tbaa !9
|
|
||||||
%111 = load i32, i32* %12, align 4, !tbaa !9
|
|
||||||
%112 = sdiv i32 %111, %102
|
|
||||||
%113 = getelementptr inbounds i32, i32* %107, i32 6
|
|
||||||
store i32 %112, i32* %113, align 4, !tbaa !9
|
|
||||||
%114 = call i32 @fclose(%struct._IO_FILE* %45)
|
|
||||||
%115 = call i32 @fclose(%struct._IO_FILE* %46)
|
|
||||||
%116 = call i32 @fclose(%struct._IO_FILE* %47)
|
|
||||||
%117 = call i32 @fclose(%struct._IO_FILE* %78)
|
|
||||||
%118 = call i32 @fclose(%struct._IO_FILE* %48)
|
|
||||||
%119 = getelementptr inbounds [40 x i8], [40 x i8]* %14, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %119) #11
|
|
||||||
call void @llvm.memset.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %119, i8 0, i32 40, i1 false)
|
|
||||||
%120 = call i8* @strcat(i8* nonnull %119, i8* nonnull %25) #11
|
|
||||||
%121 = call i32 @strlen(i8* nonnull %119)
|
|
||||||
%122 = getelementptr [40 x i8], [40 x i8]* %14, i32 0, i32 %121
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(18) %122, i8* nonnull align 1 dereferenceable(18) getelementptr inbounds ([18 x i8], [18 x i8]* @.str.15, i32 0, i32 0), i32 18, i1 false)
|
|
||||||
%123 = bitcast i32* %15 to i8*
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %123) #11
|
|
||||||
store i32 0, i32* %15, align 4, !tbaa !9
|
|
||||||
%124 = call %struct._IO_FILE* @fopen(i8* nonnull %119, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.7, i32 0, i32 0))
|
|
||||||
%125 = call i32 (%struct._IO_FILE*, i8*, ...) @__isoc99_fscanf(%struct._IO_FILE* %124, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i32 0, i32 0), i32* nonnull %15) #11
|
|
||||||
%126 = call i32 @fclose(%struct._IO_FILE* %124)
|
|
||||||
%127 = load i32, i32* %15, align 4, !tbaa !9
|
|
||||||
%128 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.16, i32 0, i32 0), i32 %127)
|
|
||||||
%129 = load i32, i32* %15, align 4, !tbaa !9
|
|
||||||
%130 = load i32*, i32** @initCGRA, align 4, !tbaa !5
|
|
||||||
%131 = getelementptr inbounds i32, i32* %130, i32 %19
|
|
||||||
%132 = getelementptr inbounds i32, i32* %131, i32 5
|
|
||||||
store i32 %129, i32* %132, align 4, !tbaa !9
|
|
||||||
%133 = load i32*, i32** @prolog, align 4, !tbaa !5
|
|
||||||
%134 = ptrtoint i32* %133 to i32
|
|
||||||
%135 = load i32*, i32** @epilog, align 4, !tbaa !5
|
|
||||||
%136 = ptrtoint i32* %135 to i32
|
|
||||||
%137 = load i32*, i32** @kernel, align 4, !tbaa !5
|
|
||||||
%138 = ptrtoint i32* %137 to i32
|
|
||||||
%139 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([55 x i8], [55 x i8]* @.str.17, i32 0, i32 0), i32 %134, i32 %136, i32 %138)
|
|
||||||
%140 = load i32*, i32** @prolog, align 4, !tbaa !5
|
|
||||||
%141 = ptrtoint i32* %140 to i32
|
|
||||||
%142 = load i32*, i32** @prologPtr, align 4, !tbaa !5
|
|
||||||
%143 = getelementptr inbounds i32, i32* %142, i32 %18
|
|
||||||
store i32 %141, i32* %143, align 4, !tbaa !14
|
|
||||||
%144 = load i32*, i32** @epilog, align 4, !tbaa !5
|
|
||||||
%145 = ptrtoint i32* %144 to i32
|
|
||||||
%146 = load i32*, i32** @epilogPtr, align 4, !tbaa !5
|
|
||||||
%147 = getelementptr inbounds i32, i32* %146, i32 %18
|
|
||||||
store i32 %145, i32* %147, align 4, !tbaa !14
|
|
||||||
%148 = load i32*, i32** @kernel, align 4, !tbaa !5
|
|
||||||
%149 = ptrtoint i32* %148 to i32
|
|
||||||
%150 = load i32*, i32** @kernelPtr, align 4, !tbaa !5
|
|
||||||
%151 = getelementptr inbounds i32, i32* %150, i32 %18
|
|
||||||
store i32 %149, i32* %151, align 4, !tbaa !14
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %123) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %119) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 256, i8* nonnull %80) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %52) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %51) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %50) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %49) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %32) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %31) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %30) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %29) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %28) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 20, i8* nonnull %25) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 25, i8* nonnull %23) #11
|
|
||||||
ret i32 0
|
|
||||||
}
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
declare noundef i32 @puts(i8* nocapture noundef readonly) local_unnamed_addr #4
|
|
||||||
|
|
||||||
; Function Attrs: argmemonly nofree nosync nounwind willreturn writeonly
|
|
||||||
declare void @llvm.memset.p0i8.i64(i8* nocapture writeonly, i8, i64, i1 immarg) #5
|
|
||||||
|
|
||||||
; Function Attrs: argmemonly nofree nosync nounwind willreturn
|
|
||||||
declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) #6
|
|
||||||
|
|
||||||
; Function Attrs: argmemonly nofree nosync nounwind willreturn
|
|
||||||
declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #6
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
declare dso_local noundef i32 @sprintf(i8* noalias nocapture noundef writeonly, i8* nocapture noundef readonly, ...) local_unnamed_addr #2
|
|
||||||
|
|
||||||
; Function Attrs: argmemonly nofree nounwind willreturn
|
|
||||||
declare dso_local i8* @strcat(i8* noalias returned writeonly, i8* noalias nocapture readonly) local_unnamed_addr #7
|
|
||||||
|
|
||||||
; Function Attrs: argmemonly nofree nosync nounwind willreturn writeonly
|
|
||||||
declare void @llvm.memset.p0i8.i32(i8* nocapture writeonly, i8, i32, i1 immarg) #5
|
|
||||||
|
|
||||||
; Function Attrs: argmemonly nofree nounwind readonly willreturn
|
|
||||||
declare i32 @strlen(i8* nocapture) local_unnamed_addr #8
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
declare dso_local noalias noundef %struct._IO_FILE* @fopen(i8* nocapture noundef readonly, i8* nocapture noundef readonly) local_unnamed_addr #2
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
declare dso_local noundef i32 @fread(i8* nocapture noundef, i32 noundef, i32 noundef, %struct._IO_FILE* nocapture noundef) local_unnamed_addr #2
|
|
||||||
|
|
||||||
; Function Attrs: inaccessiblememonly nofree nounwind willreturn
|
|
||||||
declare dso_local noalias noundef i8* @malloc(i32) local_unnamed_addr #9
|
|
||||||
|
|
||||||
declare dso_local i32 @__isoc99_fscanf(%struct._IO_FILE*, i8*, ...) local_unnamed_addr #10
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
declare dso_local noundef i8* @fgets(i8* noundef, i32 noundef, %struct._IO_FILE* nocapture noundef) local_unnamed_addr #2
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
declare dso_local noundef i32 @fclose(%struct._IO_FILE* nocapture noundef) local_unnamed_addr #2
|
|
||||||
|
|
||||||
; Function Attrs: argmemonly nofree nosync nounwind willreturn
|
|
||||||
declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #6
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
define dso_local i32 @configureCGRA(i32 %0) local_unnamed_addr #0 {
|
|
||||||
%2 = alloca [25 x i8], align 1
|
|
||||||
%3 = alloca [20 x i8], align 1
|
|
||||||
%4 = alloca [40 x i8], align 1
|
|
||||||
%5 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @str.34, i32 0, i32 0))
|
|
||||||
%6 = load i32*, i32** @initCGRA, align 4, !tbaa !5
|
|
||||||
%7 = add i32 %0, -1
|
|
||||||
%8 = mul i32 %7, 7
|
|
||||||
%9 = getelementptr inbounds i32, i32* %6, i32 %8
|
|
||||||
%10 = getelementptr inbounds i32, i32* %9, i32 5
|
|
||||||
%11 = load i32, i32* %10, align 4, !tbaa !9
|
|
||||||
%12 = getelementptr inbounds [25 x i8], [25 x i8]* %2, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 25, i8* nonnull %12) #11
|
|
||||||
%13 = getelementptr inbounds [20 x i8], [20 x i8]* %3, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 20, i8* nonnull %13) #11
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(20) %13, i8* nonnull align 1 dereferenceable(20) getelementptr inbounds ([20 x i8], [20 x i8]* @__const.configureCGRA.directoryPath, i32 0, i32 0), i32 20, i1 false)
|
|
||||||
%14 = call i32 (i8*, i8*, ...) @sprintf(i8* nonnull %12, i8* nonnull dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i32 0, i32 0), i32 %0) #11
|
|
||||||
%15 = call i8* @strcat(i8* nonnull %13, i8* nonnull %12) #11
|
|
||||||
%16 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.19, i32 0, i32 0), i8* nonnull %12)
|
|
||||||
%17 = icmp slt i32 %11, 1
|
|
||||||
br i1 %17, label %18, label %25
|
|
||||||
|
|
||||||
18: ; preds = %1
|
|
||||||
%19 = load i32, i32* @dynamicTCVal, align 4, !tbaa !9
|
|
||||||
%20 = add nsw i32 %19, %11
|
|
||||||
%21 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @.str.20, i32 0, i32 0), i32 %11, i32 %19)
|
|
||||||
%22 = load i32*, i32** @initCGRA, align 4, !tbaa !5
|
|
||||||
%23 = getelementptr inbounds i32, i32* %22, i32 %8
|
|
||||||
%24 = getelementptr inbounds i32, i32* %23, i32 5
|
|
||||||
store i32 %20, i32* %24, align 4, !tbaa !9
|
|
||||||
br label %25
|
|
||||||
|
|
||||||
25: ; preds = %18, %1
|
|
||||||
%26 = getelementptr inbounds [40 x i8], [40 x i8]* %4, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %26) #11
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %26, i8* nonnull align 1 dereferenceable(40) getelementptr inbounds ([40 x i8], [40 x i8]* @__const.configureCGRA.initCGRAfile, i32 0, i32 0), i32 40, i1 false)
|
|
||||||
%27 = call i32 @strlen(i8* nonnull %26)
|
|
||||||
%28 = getelementptr [40 x i8], [40 x i8]* %4, i32 0, i32 %27
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(14) %28, i8* nonnull align 1 dereferenceable(14) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.21, i32 0, i32 0), i32 14, i1 false)
|
|
||||||
%29 = call %struct._IO_FILE* @fopen(i8* nonnull %26, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.22, i32 0, i32 0))
|
|
||||||
br label %30
|
|
||||||
|
|
||||||
30: ; preds = %30, %25
|
|
||||||
%31 = phi i32 [ 0, %25 ], [ %37, %30 ]
|
|
||||||
%32 = load i32*, i32** @initCGRA, align 4, !tbaa !5
|
|
||||||
%33 = getelementptr inbounds i32, i32* %32, i32 %8
|
|
||||||
%34 = getelementptr inbounds i32, i32* %33, i32 %31
|
|
||||||
%35 = load i32, i32* %34, align 4, !tbaa !9
|
|
||||||
%36 = call i32 (%struct._IO_FILE*, i8*, ...) @fprintf(%struct._IO_FILE* %29, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.23, i32 0, i32 0), i32 %35)
|
|
||||||
%37 = add nuw nsw i32 %31, 1
|
|
||||||
%38 = icmp eq i32 %37, 7
|
|
||||||
br i1 %38, label %39, label %30, !llvm.loop !16
|
|
||||||
|
|
||||||
39: ; preds = %30
|
|
||||||
%40 = load i32*, i32** @epilogPtr, align 4, !tbaa !5
|
|
||||||
%41 = getelementptr inbounds i32, i32* %40, i32 %7
|
|
||||||
%42 = load i32, i32* %41, align 4, !tbaa !14
|
|
||||||
%43 = zext i32 %42 to i64
|
|
||||||
%44 = call i32 (%struct._IO_FILE*, i8*, ...) @fprintf(%struct._IO_FILE* %29, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.24, i32 0, i32 0), i64 %43)
|
|
||||||
%45 = load i32*, i32** @prologPtr, align 4, !tbaa !5
|
|
||||||
%46 = getelementptr inbounds i32, i32* %45, i32 %7
|
|
||||||
%47 = load i32, i32* %46, align 4, !tbaa !14
|
|
||||||
%48 = zext i32 %47 to i64
|
|
||||||
%49 = call i32 (%struct._IO_FILE*, i8*, ...) @fprintf(%struct._IO_FILE* %29, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.24, i32 0, i32 0), i64 %48)
|
|
||||||
%50 = load i32*, i32** @kernelPtr, align 4, !tbaa !5
|
|
||||||
%51 = getelementptr inbounds i32, i32* %50, i32 %7
|
|
||||||
%52 = load i32, i32* %51, align 4, !tbaa !14
|
|
||||||
%53 = zext i32 %52 to i64
|
|
||||||
%54 = call i32 (%struct._IO_FILE*, i8*, ...) @fprintf(%struct._IO_FILE* %29, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.24, i32 0, i32 0), i64 %53)
|
|
||||||
%55 = call i32 @fclose(%struct._IO_FILE* %29)
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %26) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 20, i8* nonnull %13) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 25, i8* nonnull %12) #11
|
|
||||||
ret i32 0
|
|
||||||
}
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
declare dso_local noundef i32 @fprintf(%struct._IO_FILE* nocapture noundef, i8* nocapture noundef readonly, ...) local_unnamed_addr #2
|
|
||||||
|
|
||||||
; Function Attrs: nounwind
|
|
||||||
define dso_local void @checkTotalLoops() local_unnamed_addr #3 {
|
|
||||||
%1 = alloca [40 x i8], align 1
|
|
||||||
%2 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @str.35, i32 0, i32 0))
|
|
||||||
%3 = getelementptr inbounds [40 x i8], [40 x i8]* %1, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %3) #11
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %3, i8* nonnull align 1 dereferenceable(40) getelementptr inbounds ([40 x i8], [40 x i8]* @__const.checkTotalLoops.myfile, i32 0, i32 0), i32 40, i1 false)
|
|
||||||
%4 = call %struct._IO_FILE* @fopen(i8* nonnull %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.7, i32 0, i32 0))
|
|
||||||
%5 = tail call i32 (%struct._IO_FILE*, i8*, ...) @__isoc99_fscanf(%struct._IO_FILE* %4, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i32 0, i32 0), i32* nonnull @totalLoops) #11
|
|
||||||
%6 = tail call i32 @fclose(%struct._IO_FILE* %4)
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %3) #11
|
|
||||||
ret void
|
|
||||||
}
|
|
||||||
|
|
||||||
; Function Attrs: nounwind
|
|
||||||
define dso_local i8* @runOnCGRA() local_unnamed_addr #3 {
|
|
||||||
%1 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @str.36, i32 0, i32 0))
|
|
||||||
tail call void asm sideeffect "mov r11,$0", "r"(i32 15) #11, !srcloc !17
|
|
||||||
ret i8* null
|
|
||||||
}
|
|
||||||
|
|
||||||
; Function Attrs: nounwind
|
|
||||||
define dso_local void @accelerateOnCGRA(i32 %0) local_unnamed_addr #3 {
|
|
||||||
%2 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([19 x i8], [19 x i8]* @str.37, i32 0, i32 0))
|
|
||||||
%3 = tail call i32 @configureCGRA(i32 %0)
|
|
||||||
%4 = tail call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @.str.30, i32 0, i32 0), i32 %0)
|
|
||||||
%5 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @str.36, i32 0, i32 0)) #11
|
|
||||||
tail call void asm sideeffect "mov r11,$0", "r"(i32 15) #11, !srcloc !17
|
|
||||||
ret void
|
|
||||||
}
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
define dso_local void @deleteCGRA() local_unnamed_addr #0 {
|
|
||||||
%1 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @str.38, i32 0, i32 0))
|
|
||||||
ret void
|
|
||||||
}
|
|
||||||
|
|
||||||
; Function Attrs: nounwind
|
|
||||||
define dso_local void @createCGRA() local_unnamed_addr #3 {
|
|
||||||
%1 = alloca [40 x i8], align 1
|
|
||||||
%2 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @str.39, i32 0, i32 0))
|
|
||||||
%3 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @str.35, i32 0, i32 0)) #11
|
|
||||||
%4 = getelementptr inbounds [40 x i8], [40 x i8]* %1, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %4) #11
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %4, i8* nonnull align 1 dereferenceable(40) getelementptr inbounds ([40 x i8], [40 x i8]* @__const.checkTotalLoops.myfile, i32 0, i32 0), i32 40, i1 false) #11
|
|
||||||
%5 = call %struct._IO_FILE* @fopen(i8* nonnull %4, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.7, i32 0, i32 0)) #11
|
|
||||||
%6 = tail call i32 (%struct._IO_FILE*, i8*, ...) @__isoc99_fscanf(%struct._IO_FILE* %5, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i32 0, i32 0), i32* nonnull @totalLoops) #11
|
|
||||||
%7 = tail call i32 @fclose(%struct._IO_FILE* %5) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %4) #11
|
|
||||||
%8 = load i32, i32* @totalLoops, align 4, !tbaa !9
|
|
||||||
%9 = mul i32 %8, 28
|
|
||||||
%10 = tail call noalias i8* @malloc(i32 %9) #11
|
|
||||||
store i8* %10, i8** bitcast (i32** @initCGRA to i8**), align 4, !tbaa !5
|
|
||||||
%11 = shl i32 %8, 2
|
|
||||||
%12 = tail call noalias i8* @malloc(i32 %11) #11
|
|
||||||
store i8* %12, i8** bitcast (i32** @prologPtr to i8**), align 4, !tbaa !5
|
|
||||||
%13 = tail call noalias i8* @malloc(i32 %11) #11
|
|
||||||
store i8* %13, i8** bitcast (i32** @kernelPtr to i8**), align 4, !tbaa !5
|
|
||||||
%14 = tail call noalias i8* @malloc(i32 %11) #11
|
|
||||||
store i8* %14, i8** bitcast (i32** @epilogPtr to i8**), align 4, !tbaa !5
|
|
||||||
%15 = icmp eq i32 %8, 0
|
|
||||||
br i1 %15, label %.loopexit, label %.preheader.preheader
|
|
||||||
|
|
||||||
.preheader.preheader: ; preds = %0
|
|
||||||
br label %.preheader
|
|
||||||
|
|
||||||
.preheader: ; preds = %.preheader, %.preheader.preheader
|
|
||||||
%16 = phi i32 [ %18, %.preheader ], [ 1, %.preheader.preheader ]
|
|
||||||
%17 = tail call i32 @initializeParameters(i32 %16)
|
|
||||||
%18 = add i32 %16, 1
|
|
||||||
%19 = load i32, i32* @totalLoops, align 4, !tbaa !9
|
|
||||||
%20 = icmp ugt i32 %18, %19
|
|
||||||
br i1 %20, label %.loopexit.loopexit, label %.preheader, !llvm.loop !18
|
|
||||||
|
|
||||||
.loopexit.loopexit: ; preds = %.preheader
|
|
||||||
br label %.loopexit
|
|
||||||
|
|
||||||
.loopexit: ; preds = %.loopexit.loopexit, %0
|
|
||||||
%21 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @str.40, i32 0, i32 0))
|
|
||||||
ret void
|
|
||||||
}
|
|
||||||
|
|
||||||
attributes #0 = { nofree nounwind "disable-tail-calls"="false" "frame-pointer"="none" "min-legal-vector-width"="0" "no-jump-tables"="false" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+armv7-a,+d32,+dsp,+fp64,+neon,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,-thumb-mode" }
|
|
||||||
attributes #1 = { nofree nounwind willreturn "disable-tail-calls"="false" "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+armv7-a,+d32,+dsp,+fp64,+neon,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,-thumb-mode" }
|
|
||||||
attributes #2 = { nofree nounwind "disable-tail-calls"="false" "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+armv7-a,+d32,+dsp,+fp64,+neon,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,-thumb-mode" }
|
|
||||||
attributes #3 = { nounwind "disable-tail-calls"="false" "frame-pointer"="none" "min-legal-vector-width"="0" "no-jump-tables"="false" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+armv7-a,+d32,+dsp,+fp64,+neon,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,-thumb-mode" }
|
|
||||||
attributes #4 = { nofree nounwind }
|
|
||||||
attributes #5 = { argmemonly nofree nosync nounwind willreturn writeonly }
|
|
||||||
attributes #6 = { argmemonly nofree nosync nounwind willreturn }
|
|
||||||
attributes #7 = { argmemonly nofree nounwind willreturn "disable-tail-calls"="false" "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+armv7-a,+d32,+dsp,+fp64,+neon,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,-thumb-mode" }
|
|
||||||
attributes #8 = { argmemonly nofree nounwind readonly willreturn }
|
|
||||||
attributes #9 = { inaccessiblememonly nofree nounwind willreturn "disable-tail-calls"="false" "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+armv7-a,+d32,+dsp,+fp64,+neon,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,-thumb-mode" }
|
|
||||||
attributes #10 = { "disable-tail-calls"="false" "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+armv7-a,+d32,+dsp,+fp64,+neon,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,-thumb-mode" }
|
|
||||||
attributes #11 = { nounwind }
|
|
||||||
|
|
||||||
!llvm.ident = !{!0, !0}
|
|
||||||
!llvm.module.flags = !{!1, !2, !3, !4}
|
|
||||||
|
|
||||||
!0 = !{!"clang version 13.0.0 (https://github.com/MPSLab-ASU/CCF-20.04/ 05285de7579f417a4d73ad832b8f4cc497f25235)"}
|
|
||||||
!1 = !{i32 7, !"Dwarf Version", i32 4}
|
|
||||||
!2 = !{i32 2, !"Debug Info Version", i32 3}
|
|
||||||
!3 = !{i32 1, !"wchar_size", i32 4}
|
|
||||||
!4 = !{i32 1, !"min_enum_size", i32 4}
|
|
||||||
!5 = !{!6, !6, i64 0}
|
|
||||||
!6 = !{!"any pointer", !7, i64 0}
|
|
||||||
!7 = !{!"omnipotent char", !8, i64 0}
|
|
||||||
!8 = !{!"Simple C/C++ TBAA"}
|
|
||||||
!9 = !{!10, !10, i64 0}
|
|
||||||
!10 = !{!"int", !7, i64 0}
|
|
||||||
!11 = distinct !{!11, !12, !13}
|
|
||||||
!12 = !{!"llvm.loop.mustprogress"}
|
|
||||||
!13 = !{!"llvm.loop.unroll.disable"}
|
|
||||||
!14 = !{!15, !15, i64 0}
|
|
||||||
!15 = !{!"long", !7, i64 0}
|
|
||||||
!16 = distinct !{!16, !12, !13}
|
|
||||||
!17 = !{i32 5341}
|
|
||||||
!18 = distinct !{!18, !12, !13}
|
|
|
@ -6,7 +6,7 @@ Cclock,0.7
|
||||||
CPUclock,2
|
CPUclock,2
|
||||||
Mem,8GB
|
Mem,8GB
|
||||||
MODE,0
|
MODE,0
|
||||||
ALGO,RAMP
|
ALGO,GraphMinor
|
||||||
MSA,10
|
MSA,10
|
||||||
MAPII,10
|
MAPII,10
|
||||||
MAX_MAP,1000
|
MAX_MAP,1000
|
||||||
|
|
|
|
@ -1,579 +0,0 @@
|
||||||
; ModuleID = 'CondDDGGen.bc'
|
|
||||||
source_filename = "llvm-link"
|
|
||||||
target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"
|
|
||||||
target triple = "armv7-none-linux-eabi"
|
|
||||||
|
|
||||||
%struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i32, i16, i8, [1 x i8], i8*, i64, %struct._IO_codecvt*, %struct._IO_wide_data*, %struct._IO_FILE*, i8*, i32, i32, [40 x i8] }
|
|
||||||
%struct._IO_marker = type opaque
|
|
||||||
%struct._IO_codecvt = type opaque
|
|
||||||
%struct._IO_wide_data = type opaque
|
|
||||||
|
|
||||||
@.str = private unnamed_addr constant [24 x i8] c"***** %d^%d = %d *****\0A\00", align 1
|
|
||||||
@totalLoops = dso_local global i32 0, align 4
|
|
||||||
@dynamicTCVal = dso_local local_unnamed_addr global i32 0, align 4
|
|
||||||
@initCGRA = dso_local local_unnamed_addr global i32* null, align 4
|
|
||||||
@epilog = dso_local local_unnamed_addr global i32* null, align 4
|
|
||||||
@prolog = dso_local local_unnamed_addr global i32* null, align 4
|
|
||||||
@kernel = dso_local local_unnamed_addr global i32* null, align 4
|
|
||||||
@prologPtr = dso_local local_unnamed_addr global i32* null, align 4
|
|
||||||
@epilogPtr = dso_local local_unnamed_addr global i32* null, align 4
|
|
||||||
@kernelPtr = dso_local local_unnamed_addr global i32* null, align 4
|
|
||||||
@ArrPtr = dso_local local_unnamed_addr global i32* null, align 4
|
|
||||||
@pth = dso_local local_unnamed_addr global i32 0, align 4
|
|
||||||
@str = private unnamed_addr constant [34 x i8] c"from cgra.c Initialize Parameters\00", align 1
|
|
||||||
@__const.configureCGRA.directoryPath = private unnamed_addr constant [20 x i8] c"./CGRAExec/L\00\00\00\00\00\00\00\00", align 1
|
|
||||||
@.str.1 = private unnamed_addr constant [3 x i8] c"%d\00", align 1
|
|
||||||
@.str.2 = private unnamed_addr constant [16 x i8] c"/epilog_ins.bin\00", align 1
|
|
||||||
@.str.3 = private unnamed_addr constant [16 x i8] c"/prolog_ins.bin\00", align 1
|
|
||||||
@.str.4 = private unnamed_addr constant [16 x i8] c"/kernel_ins.bin\00", align 1
|
|
||||||
@.str.5 = private unnamed_addr constant [17 x i8] c"/CGRA_config.txt\00", align 1
|
|
||||||
@.str.6 = private unnamed_addr constant [3 x i8] c"rb\00", align 1
|
|
||||||
@.str.7 = private unnamed_addr constant [2 x i8] c"r\00", align 1
|
|
||||||
@.str.8 = private unnamed_addr constant [32 x i8] c"\0A**********EPISIZE %d*********\0A\00", align 1
|
|
||||||
@.str.9 = private unnamed_addr constant [32 x i8] c"\0A**********PROSIZE %d*********\0A\00", align 1
|
|
||||||
@.str.10 = private unnamed_addr constant [33 x i8] c"\0A**********KERNSIZE %d*********\0A\00", align 1
|
|
||||||
@.str.11 = private unnamed_addr constant [37 x i8] c"\0A******SIZE OF UNSIGNED LONG%d*****\0A\00", align 1
|
|
||||||
@.str.12 = private unnamed_addr constant [42 x i8] c"\0A******SIZE OF UNSIGNED LONG LONG%d*****\0A\00", align 1
|
|
||||||
@.str.13 = private unnamed_addr constant [26 x i8] c"/livevar_st_ins_count.txt\00", align 1
|
|
||||||
@.str.14 = private unnamed_addr constant [39 x i8] c"\0A************XDIM and YDim are %d, %d\0A\00", align 1
|
|
||||||
@.str.15 = private unnamed_addr constant [18 x i8] c"/kernel_count.txt\00", align 1
|
|
||||||
@.str.16 = private unnamed_addr constant [16 x i8] c"Loop Count: %d\0A\00", align 1
|
|
||||||
@.str.17 = private unnamed_addr constant [55 x i8] c"From FILE: PROLOGPC= %lx, EPILOGPC=%lx, KernelPC=%lx\0A\00", align 1
|
|
||||||
@str.34 = private unnamed_addr constant [14 x i8] c"configureCGRA\00", align 1
|
|
||||||
@.str.19 = private unnamed_addr constant [14 x i8] c"\0Aloopno = %s\0A\00", align 1
|
|
||||||
@.str.20 = private unnamed_addr constant [17 x i8] c"newTC = %d + %d\0A\00", align 1
|
|
||||||
@__const.configureCGRA.initCGRAfile = private unnamed_addr constant [40 x i8] c"./CGRAExec/L1\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", align 1
|
|
||||||
@.str.21 = private unnamed_addr constant [14 x i8] c"/initCGRA.txt\00", align 1
|
|
||||||
@.str.22 = private unnamed_addr constant [3 x i8] c"wb\00", align 1
|
|
||||||
@.str.23 = private unnamed_addr constant [4 x i8] c"%d\0A\00", align 1
|
|
||||||
@.str.24 = private unnamed_addr constant [5 x i8] c"%ld\0A\00", align 1
|
|
||||||
@str.35 = private unnamed_addr constant [16 x i8] c"checkTotalLoops\00", align 1
|
|
||||||
@__const.checkTotalLoops.myfile = private unnamed_addr constant [40 x i8] c"./CGRAExec/total_loops.txt\00\00\00\00\00\00\00\00\00\00\00\00\00\00", align 1
|
|
||||||
@.str.26 = private unnamed_addr constant [3 x i8] c"%u\00", align 1
|
|
||||||
@str.36 = private unnamed_addr constant [12 x i8] c"\0A\0ArunOnCGRA\00", align 1
|
|
||||||
@str.37 = private unnamed_addr constant [19 x i8] c"\0A\0AaccelerateOnCGRA\00", align 1
|
|
||||||
@.str.30 = private unnamed_addr constant [35 x i8] c"Core will execute loop %u on CGRA\0A\00", align 1
|
|
||||||
@str.38 = private unnamed_addr constant [15 x i8] c"\0Adeleting cgra\00", align 1
|
|
||||||
@str.39 = private unnamed_addr constant [11 x i8] c"createCGRA\00", align 1
|
|
||||||
@str.40 = private unnamed_addr constant [35 x i8] c"Main thread calling CGRA thread...\00", align 1
|
|
||||||
@gVar1 = common local_unnamed_addr global i32 0
|
|
||||||
@gVar2 = common local_unnamed_addr global i32 0
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
define dso_local i32 @main(i32 %0, i8** nocapture readonly %1) local_unnamed_addr #0 {
|
|
||||||
%3 = getelementptr inbounds i8*, i8** %1, i32 1
|
|
||||||
%4 = load i8*, i8** %3, align 4, !tbaa !5
|
|
||||||
%5 = tail call i32 @strtol(i8* nocapture nonnull %4, i8** null, i32 10) #11
|
|
||||||
%6 = icmp sgt i32 %5, 1
|
|
||||||
store i32 %5, i32* @gVar1, align 4
|
|
||||||
br i1 %6, label %.preheader.preheader, label %.loopexit
|
|
||||||
|
|
||||||
.preheader.preheader: ; preds = %2
|
|
||||||
%7 = sub i32 %5, 1
|
|
||||||
%8 = sdiv i32 %7, 1
|
|
||||||
store i32 %8, i32* @dynamicTCVal, align 4
|
|
||||||
br label %.preheader
|
|
||||||
|
|
||||||
.loopexit.loopexit: ; preds = %.preheader
|
|
||||||
br label %9
|
|
||||||
|
|
||||||
9: ; preds = %.loopexit.loopexit
|
|
||||||
%10 = load i32, i32* @gVar2, align 4
|
|
||||||
br label %.loopexit
|
|
||||||
|
|
||||||
.loopexit: ; preds = %9, %2
|
|
||||||
%11 = phi i32 [ 1, %2 ], [ %10, %9 ]
|
|
||||||
%12 = tail call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([24 x i8], [24 x i8]* @.str, i32 0, i32 0), i32 2, i32 %5, i32 %11)
|
|
||||||
ret i32 0
|
|
||||||
|
|
||||||
.preheader: ; preds = %.preheader, %.preheader.preheader
|
|
||||||
%13 = phi i32 [ %16, %.preheader ], [ 1, %.preheader.preheader ]
|
|
||||||
%14 = phi i32 [ %15, %.preheader ], [ 1, %.preheader.preheader ]
|
|
||||||
%15 = shl nsw i32 %14, 1
|
|
||||||
%16 = add nuw nsw i32 %13, 1
|
|
||||||
%17 = icmp eq i32 %16, %5
|
|
||||||
br i1 %17, label %.loopexit.loopexit, label %.preheader, !llvm.loop !9
|
|
||||||
}
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind willreturn
|
|
||||||
declare dso_local i32 @strtol(i8* readonly, i8** nocapture, i32) local_unnamed_addr #1
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
declare dso_local noundef i32 @printf(i8* nocapture noundef readonly, ...) local_unnamed_addr #2
|
|
||||||
|
|
||||||
; Function Attrs: nounwind
|
|
||||||
define dso_local i32 @initializeParameters(i32 %0) local_unnamed_addr #3 {
|
|
||||||
%2 = alloca [25 x i8], align 1
|
|
||||||
%3 = alloca [20 x i8], align 1
|
|
||||||
%4 = alloca [40 x i8], align 1
|
|
||||||
%5 = alloca [40 x i8], align 1
|
|
||||||
%6 = alloca [40 x i8], align 1
|
|
||||||
%7 = alloca [40 x i8], align 1
|
|
||||||
%8 = alloca [40 x i8], align 1
|
|
||||||
%9 = alloca i32, align 4
|
|
||||||
%10 = alloca i32, align 4
|
|
||||||
%11 = alloca i32, align 4
|
|
||||||
%12 = alloca i32, align 4
|
|
||||||
%13 = alloca [256 x i8], align 1
|
|
||||||
%14 = alloca [40 x i8], align 1
|
|
||||||
%15 = alloca i32, align 4
|
|
||||||
%16 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([34 x i8], [34 x i8]* @str, i32 0, i32 0))
|
|
||||||
%17 = load i32*, i32** @initCGRA, align 4, !tbaa !5
|
|
||||||
%18 = add i32 %0, -1
|
|
||||||
%19 = mul i32 %18, 7
|
|
||||||
%20 = getelementptr inbounds i32, i32* %17, i32 %19
|
|
||||||
store i32 2011168768, i32* %20, align 4, !tbaa !13
|
|
||||||
%21 = getelementptr inbounds i32, i32* %20, i32 1
|
|
||||||
store i32 2011168768, i32* %21, align 4, !tbaa !13
|
|
||||||
%22 = getelementptr inbounds i32, i32* %20, i32 2
|
|
||||||
%23 = getelementptr inbounds [25 x i8], [25 x i8]* %2, i32 0, i32 0
|
|
||||||
%24 = bitcast i32* %22 to i8*
|
|
||||||
tail call void @llvm.memset.p0i8.i64(i8* nonnull align 4 dereferenceable(20) %24, i8 0, i64 20, i1 false)
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 25, i8* nonnull %23) #11
|
|
||||||
%25 = getelementptr inbounds [20 x i8], [20 x i8]* %3, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 20, i8* nonnull %25) #11
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(20) %25, i8* nonnull align 1 dereferenceable(20) getelementptr inbounds ([20 x i8], [20 x i8]* @__const.configureCGRA.directoryPath, i32 0, i32 0), i32 20, i1 false)
|
|
||||||
%26 = call i32 (i8*, i8*, ...) @sprintf(i8* nonnull %23, i8* nonnull dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i32 0, i32 0), i32 %0) #11
|
|
||||||
%27 = call i8* @strcat(i8* nonnull %25, i8* nonnull %23) #11
|
|
||||||
%28 = getelementptr inbounds [40 x i8], [40 x i8]* %4, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %28) #11
|
|
||||||
call void @llvm.memset.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %28, i8 0, i32 40, i1 false)
|
|
||||||
%29 = getelementptr inbounds [40 x i8], [40 x i8]* %5, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %29) #11
|
|
||||||
call void @llvm.memset.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %29, i8 0, i32 40, i1 false)
|
|
||||||
%30 = getelementptr inbounds [40 x i8], [40 x i8]* %6, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %30) #11
|
|
||||||
call void @llvm.memset.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %30, i8 0, i32 40, i1 false)
|
|
||||||
%31 = getelementptr inbounds [40 x i8], [40 x i8]* %7, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %31) #11
|
|
||||||
call void @llvm.memset.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %31, i8 0, i32 40, i1 false)
|
|
||||||
%32 = getelementptr inbounds [40 x i8], [40 x i8]* %8, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %32) #11
|
|
||||||
call void @llvm.memset.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %32, i8 0, i32 40, i1 false)
|
|
||||||
%33 = call i8* @strcat(i8* nonnull %28, i8* nonnull %25) #11
|
|
||||||
%34 = call i32 @strlen(i8* nonnull %28)
|
|
||||||
%35 = getelementptr [40 x i8], [40 x i8]* %4, i32 0, i32 %34
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(16) %35, i8* nonnull align 1 dereferenceable(16) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i32 0, i32 0), i32 16, i1 false)
|
|
||||||
%36 = call i8* @strcat(i8* nonnull %29, i8* nonnull %25) #11
|
|
||||||
%37 = call i32 @strlen(i8* nonnull %29)
|
|
||||||
%38 = getelementptr [40 x i8], [40 x i8]* %5, i32 0, i32 %37
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(16) %38, i8* nonnull align 1 dereferenceable(16) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.3, i32 0, i32 0), i32 16, i1 false)
|
|
||||||
%39 = call i8* @strcat(i8* nonnull %30, i8* nonnull %25) #11
|
|
||||||
%40 = call i32 @strlen(i8* nonnull %30)
|
|
||||||
%41 = getelementptr [40 x i8], [40 x i8]* %6, i32 0, i32 %40
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(16) %41, i8* nonnull align 1 dereferenceable(16) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.4, i32 0, i32 0), i32 16, i1 false)
|
|
||||||
%42 = call i8* @strcat(i8* nonnull %32, i8* nonnull %25) #11
|
|
||||||
%43 = call i32 @strlen(i8* nonnull %32)
|
|
||||||
%44 = getelementptr [40 x i8], [40 x i8]* %8, i32 0, i32 %43
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(17) %44, i8* nonnull align 1 dereferenceable(17) getelementptr inbounds ([17 x i8], [17 x i8]* @.str.5, i32 0, i32 0), i32 17, i1 false)
|
|
||||||
%45 = call %struct._IO_FILE* @fopen(i8* nonnull %28, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.6, i32 0, i32 0))
|
|
||||||
%46 = call %struct._IO_FILE* @fopen(i8* nonnull %29, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.6, i32 0, i32 0))
|
|
||||||
%47 = call %struct._IO_FILE* @fopen(i8* nonnull %30, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.6, i32 0, i32 0))
|
|
||||||
%48 = call %struct._IO_FILE* @fopen(i8* nonnull %32, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.7, i32 0, i32 0))
|
|
||||||
%49 = bitcast i32* %9 to i8*
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %49) #11
|
|
||||||
%50 = bitcast i32* %10 to i8*
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %50) #11
|
|
||||||
%51 = bitcast i32* %11 to i8*
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %51) #11
|
|
||||||
%52 = bitcast i32* %12 to i8*
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %52) #11
|
|
||||||
%53 = call i32 @fread(i8* nonnull %49, i32 4, i32 1, %struct._IO_FILE* %45)
|
|
||||||
%54 = call i32 @fread(i8* nonnull %50, i32 4, i32 1, %struct._IO_FILE* %46)
|
|
||||||
%55 = call i32 @fread(i8* nonnull %51, i32 4, i32 1, %struct._IO_FILE* %47)
|
|
||||||
%56 = load i32, i32* %9, align 4, !tbaa !13
|
|
||||||
%57 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.8, i32 0, i32 0), i32 %56)
|
|
||||||
%58 = load i32, i32* %10, align 4, !tbaa !13
|
|
||||||
%59 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.9, i32 0, i32 0), i32 %58)
|
|
||||||
%60 = load i32, i32* %11, align 4, !tbaa !13
|
|
||||||
%61 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([33 x i8], [33 x i8]* @.str.10, i32 0, i32 0), i32 %60)
|
|
||||||
%62 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([37 x i8], [37 x i8]* @.str.11, i32 0, i32 0), i32 4)
|
|
||||||
%63 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([42 x i8], [42 x i8]* @.str.12, i32 0, i32 0), i32 8)
|
|
||||||
%64 = shl i32 %56, 3
|
|
||||||
%65 = call noalias i8* @malloc(i32 %64) #11
|
|
||||||
store i8* %65, i8** bitcast (i32** @epilog to i8**), align 4, !tbaa !5
|
|
||||||
%66 = shl i32 %58, 3
|
|
||||||
%67 = call noalias i8* @malloc(i32 %66) #11
|
|
||||||
store i8* %67, i8** bitcast (i32** @prolog to i8**), align 4, !tbaa !5
|
|
||||||
%68 = shl i32 %60, 3
|
|
||||||
%69 = call noalias i8* @malloc(i32 %68) #11
|
|
||||||
store i8* %69, i8** bitcast (i32** @kernel to i8**), align 4, !tbaa !5
|
|
||||||
%70 = call i32 @fread(i8* %65, i32 8, i32 %56, %struct._IO_FILE* %45)
|
|
||||||
%71 = load i8*, i8** bitcast (i32** @prolog to i8**), align 4, !tbaa !5
|
|
||||||
%72 = call i32 @fread(i8* %71, i32 8, i32 %58, %struct._IO_FILE* %46)
|
|
||||||
%73 = load i8*, i8** bitcast (i32** @kernel to i8**), align 4, !tbaa !5
|
|
||||||
%74 = call i32 @fread(i8* %73, i32 8, i32 %60, %struct._IO_FILE* %47)
|
|
||||||
%75 = call i8* @strcat(i8* nonnull %31, i8* nonnull %25) #11
|
|
||||||
%76 = call i32 @strlen(i8* nonnull %31)
|
|
||||||
%77 = getelementptr [40 x i8], [40 x i8]* %7, i32 0, i32 %76
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(26) %77, i8* nonnull align 1 dereferenceable(26) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.13, i32 0, i32 0), i32 26, i1 false)
|
|
||||||
%78 = call %struct._IO_FILE* @fopen(i8* nonnull %31, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.7, i32 0, i32 0))
|
|
||||||
%79 = call i32 (%struct._IO_FILE*, i8*, ...) @__isoc99_fscanf(%struct._IO_FILE* %78, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i32 0, i32 0), i32* nonnull %12) #11
|
|
||||||
%80 = getelementptr inbounds [256 x i8], [256 x i8]* %13, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 256, i8* nonnull %80) #11
|
|
||||||
%81 = call i8* @fgets(i8* nonnull %80, i32 256, %struct._IO_FILE* %48)
|
|
||||||
%82 = icmp eq i8* %81, null
|
|
||||||
br i1 %82, label %.loopexit, label %.preheader.preheader
|
|
||||||
|
|
||||||
.preheader.preheader: ; preds = %1
|
|
||||||
br label %.preheader
|
|
||||||
|
|
||||||
.preheader: ; preds = %94, %.preheader.preheader
|
|
||||||
%83 = phi i32 [ %96, %94 ], [ 0, %.preheader.preheader ]
|
|
||||||
%84 = phi i32 [ %95, %94 ], [ 0, %.preheader.preheader ]
|
|
||||||
%85 = phi i32 [ %86, %94 ], [ 0, %.preheader.preheader ]
|
|
||||||
%86 = add nuw nsw i32 %85, 1
|
|
||||||
%87 = icmp eq i32 %85, 0
|
|
||||||
br i1 %87, label %88, label %90
|
|
||||||
|
|
||||||
88: ; preds = %.preheader
|
|
||||||
%89 = call i32 @strtol(i8* nocapture nonnull %80, i8** null, i32 10) #11
|
|
||||||
br label %94
|
|
||||||
|
|
||||||
90: ; preds = %.preheader
|
|
||||||
%91 = icmp eq i32 %86, 2
|
|
||||||
br i1 %91, label %92, label %.loopexit.loopexit
|
|
||||||
|
|
||||||
92: ; preds = %90
|
|
||||||
%93 = call i32 @strtol(i8* nocapture nonnull %80, i8** null, i32 10) #11
|
|
||||||
br label %94
|
|
||||||
|
|
||||||
94: ; preds = %92, %88
|
|
||||||
%95 = phi i32 [ %84, %88 ], [ %93, %92 ]
|
|
||||||
%96 = phi i32 [ %89, %88 ], [ %83, %92 ]
|
|
||||||
%97 = call i8* @fgets(i8* nonnull %80, i32 256, %struct._IO_FILE* %48)
|
|
||||||
%98 = icmp eq i8* %97, null
|
|
||||||
br i1 %98, label %.loopexit.loopexit, label %.preheader, !llvm.loop !15
|
|
||||||
|
|
||||||
.loopexit.loopexit: ; preds = %94, %90
|
|
||||||
%.ph = phi i32 [ %95, %94 ], [ %84, %90 ]
|
|
||||||
%.ph6 = phi i32 [ %96, %94 ], [ %83, %90 ]
|
|
||||||
br label %.loopexit
|
|
||||||
|
|
||||||
.loopexit: ; preds = %.loopexit.loopexit, %1
|
|
||||||
%99 = phi i32 [ 0, %1 ], [ %.ph, %.loopexit.loopexit ]
|
|
||||||
%100 = phi i32 [ 0, %1 ], [ %.ph6, %.loopexit.loopexit ]
|
|
||||||
%101 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.14, i32 0, i32 0), i32 %100, i32 %99)
|
|
||||||
%102 = mul nsw i32 %100, %99
|
|
||||||
%103 = sdiv i32 %60, %102
|
|
||||||
%104 = sdiv i32 %56, %102
|
|
||||||
%105 = sdiv i32 %58, %102
|
|
||||||
%106 = load i32*, i32** @initCGRA, align 4, !tbaa !5
|
|
||||||
%107 = getelementptr inbounds i32, i32* %106, i32 %19
|
|
||||||
%108 = getelementptr inbounds i32, i32* %107, i32 2
|
|
||||||
store i32 %103, i32* %108, align 4, !tbaa !13
|
|
||||||
%109 = getelementptr inbounds i32, i32* %107, i32 3
|
|
||||||
store i32 %104, i32* %109, align 4, !tbaa !13
|
|
||||||
%110 = getelementptr inbounds i32, i32* %107, i32 4
|
|
||||||
store i32 %105, i32* %110, align 4, !tbaa !13
|
|
||||||
%111 = load i32, i32* %12, align 4, !tbaa !13
|
|
||||||
%112 = sdiv i32 %111, %102
|
|
||||||
%113 = getelementptr inbounds i32, i32* %107, i32 6
|
|
||||||
store i32 %112, i32* %113, align 4, !tbaa !13
|
|
||||||
%114 = call i32 @fclose(%struct._IO_FILE* %45)
|
|
||||||
%115 = call i32 @fclose(%struct._IO_FILE* %46)
|
|
||||||
%116 = call i32 @fclose(%struct._IO_FILE* %47)
|
|
||||||
%117 = call i32 @fclose(%struct._IO_FILE* %78)
|
|
||||||
%118 = call i32 @fclose(%struct._IO_FILE* %48)
|
|
||||||
%119 = getelementptr inbounds [40 x i8], [40 x i8]* %14, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %119) #11
|
|
||||||
call void @llvm.memset.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %119, i8 0, i32 40, i1 false)
|
|
||||||
%120 = call i8* @strcat(i8* nonnull %119, i8* nonnull %25) #11
|
|
||||||
%121 = call i32 @strlen(i8* nonnull %119)
|
|
||||||
%122 = getelementptr [40 x i8], [40 x i8]* %14, i32 0, i32 %121
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(18) %122, i8* nonnull align 1 dereferenceable(18) getelementptr inbounds ([18 x i8], [18 x i8]* @.str.15, i32 0, i32 0), i32 18, i1 false)
|
|
||||||
%123 = bitcast i32* %15 to i8*
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %123) #11
|
|
||||||
store i32 0, i32* %15, align 4, !tbaa !13
|
|
||||||
%124 = call %struct._IO_FILE* @fopen(i8* nonnull %119, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.7, i32 0, i32 0))
|
|
||||||
%125 = call i32 (%struct._IO_FILE*, i8*, ...) @__isoc99_fscanf(%struct._IO_FILE* %124, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i32 0, i32 0), i32* nonnull %15) #11
|
|
||||||
%126 = call i32 @fclose(%struct._IO_FILE* %124)
|
|
||||||
%127 = load i32, i32* %15, align 4, !tbaa !13
|
|
||||||
%128 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.16, i32 0, i32 0), i32 %127)
|
|
||||||
%129 = load i32, i32* %15, align 4, !tbaa !13
|
|
||||||
%130 = load i32*, i32** @initCGRA, align 4, !tbaa !5
|
|
||||||
%131 = getelementptr inbounds i32, i32* %130, i32 %19
|
|
||||||
%132 = getelementptr inbounds i32, i32* %131, i32 5
|
|
||||||
store i32 %129, i32* %132, align 4, !tbaa !13
|
|
||||||
%133 = load i32*, i32** @prolog, align 4, !tbaa !5
|
|
||||||
%134 = ptrtoint i32* %133 to i32
|
|
||||||
%135 = load i32*, i32** @epilog, align 4, !tbaa !5
|
|
||||||
%136 = ptrtoint i32* %135 to i32
|
|
||||||
%137 = load i32*, i32** @kernel, align 4, !tbaa !5
|
|
||||||
%138 = ptrtoint i32* %137 to i32
|
|
||||||
%139 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([55 x i8], [55 x i8]* @.str.17, i32 0, i32 0), i32 %134, i32 %136, i32 %138)
|
|
||||||
%140 = load i32*, i32** @prolog, align 4, !tbaa !5
|
|
||||||
%141 = ptrtoint i32* %140 to i32
|
|
||||||
%142 = load i32*, i32** @prologPtr, align 4, !tbaa !5
|
|
||||||
%143 = getelementptr inbounds i32, i32* %142, i32 %18
|
|
||||||
store i32 %141, i32* %143, align 4, !tbaa !16
|
|
||||||
%144 = load i32*, i32** @epilog, align 4, !tbaa !5
|
|
||||||
%145 = ptrtoint i32* %144 to i32
|
|
||||||
%146 = load i32*, i32** @epilogPtr, align 4, !tbaa !5
|
|
||||||
%147 = getelementptr inbounds i32, i32* %146, i32 %18
|
|
||||||
store i32 %145, i32* %147, align 4, !tbaa !16
|
|
||||||
%148 = load i32*, i32** @kernel, align 4, !tbaa !5
|
|
||||||
%149 = ptrtoint i32* %148 to i32
|
|
||||||
%150 = load i32*, i32** @kernelPtr, align 4, !tbaa !5
|
|
||||||
%151 = getelementptr inbounds i32, i32* %150, i32 %18
|
|
||||||
store i32 %149, i32* %151, align 4, !tbaa !16
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %123) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %119) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 256, i8* nonnull %80) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %52) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %51) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %50) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %49) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %32) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %31) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %30) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %29) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %28) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 20, i8* nonnull %25) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 25, i8* nonnull %23) #11
|
|
||||||
ret i32 0
|
|
||||||
}
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
declare noundef i32 @puts(i8* nocapture noundef readonly) local_unnamed_addr #4
|
|
||||||
|
|
||||||
; Function Attrs: argmemonly nofree nosync nounwind willreturn writeonly
|
|
||||||
declare void @llvm.memset.p0i8.i64(i8* nocapture writeonly, i8, i64, i1 immarg) #5
|
|
||||||
|
|
||||||
; Function Attrs: argmemonly nofree nosync nounwind willreturn
|
|
||||||
declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) #6
|
|
||||||
|
|
||||||
; Function Attrs: argmemonly nofree nosync nounwind willreturn
|
|
||||||
declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #6
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
declare dso_local noundef i32 @sprintf(i8* noalias nocapture noundef writeonly, i8* nocapture noundef readonly, ...) local_unnamed_addr #2
|
|
||||||
|
|
||||||
; Function Attrs: argmemonly nofree nounwind willreturn
|
|
||||||
declare dso_local i8* @strcat(i8* noalias returned writeonly, i8* noalias nocapture readonly) local_unnamed_addr #7
|
|
||||||
|
|
||||||
; Function Attrs: argmemonly nofree nosync nounwind willreturn writeonly
|
|
||||||
declare void @llvm.memset.p0i8.i32(i8* nocapture writeonly, i8, i32, i1 immarg) #5
|
|
||||||
|
|
||||||
; Function Attrs: argmemonly nofree nounwind readonly willreturn
|
|
||||||
declare i32 @strlen(i8* nocapture) local_unnamed_addr #8
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
declare dso_local noalias noundef %struct._IO_FILE* @fopen(i8* nocapture noundef readonly, i8* nocapture noundef readonly) local_unnamed_addr #2
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
declare dso_local noundef i32 @fread(i8* nocapture noundef, i32 noundef, i32 noundef, %struct._IO_FILE* nocapture noundef) local_unnamed_addr #2
|
|
||||||
|
|
||||||
; Function Attrs: inaccessiblememonly nofree nounwind willreturn
|
|
||||||
declare dso_local noalias noundef i8* @malloc(i32) local_unnamed_addr #9
|
|
||||||
|
|
||||||
declare dso_local i32 @__isoc99_fscanf(%struct._IO_FILE*, i8*, ...) local_unnamed_addr #10
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
declare dso_local noundef i8* @fgets(i8* noundef, i32 noundef, %struct._IO_FILE* nocapture noundef) local_unnamed_addr #2
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
declare dso_local noundef i32 @fclose(%struct._IO_FILE* nocapture noundef) local_unnamed_addr #2
|
|
||||||
|
|
||||||
; Function Attrs: argmemonly nofree nosync nounwind willreturn
|
|
||||||
declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #6
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
define dso_local i32 @configureCGRA(i32 %0) local_unnamed_addr #0 {
|
|
||||||
%2 = alloca [25 x i8], align 1
|
|
||||||
%3 = alloca [20 x i8], align 1
|
|
||||||
%4 = alloca [40 x i8], align 1
|
|
||||||
%5 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @str.34, i32 0, i32 0))
|
|
||||||
%6 = load i32*, i32** @initCGRA, align 4, !tbaa !5
|
|
||||||
%7 = add i32 %0, -1
|
|
||||||
%8 = mul i32 %7, 7
|
|
||||||
%9 = getelementptr inbounds i32, i32* %6, i32 %8
|
|
||||||
%10 = getelementptr inbounds i32, i32* %9, i32 5
|
|
||||||
%11 = load i32, i32* %10, align 4, !tbaa !13
|
|
||||||
%12 = getelementptr inbounds [25 x i8], [25 x i8]* %2, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 25, i8* nonnull %12) #11
|
|
||||||
%13 = getelementptr inbounds [20 x i8], [20 x i8]* %3, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 20, i8* nonnull %13) #11
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(20) %13, i8* nonnull align 1 dereferenceable(20) getelementptr inbounds ([20 x i8], [20 x i8]* @__const.configureCGRA.directoryPath, i32 0, i32 0), i32 20, i1 false)
|
|
||||||
%14 = call i32 (i8*, i8*, ...) @sprintf(i8* nonnull %12, i8* nonnull dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i32 0, i32 0), i32 %0) #11
|
|
||||||
%15 = call i8* @strcat(i8* nonnull %13, i8* nonnull %12) #11
|
|
||||||
%16 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.19, i32 0, i32 0), i8* nonnull %12)
|
|
||||||
%17 = icmp slt i32 %11, 1
|
|
||||||
br i1 %17, label %18, label %25
|
|
||||||
|
|
||||||
18: ; preds = %1
|
|
||||||
%19 = load i32, i32* @dynamicTCVal, align 4, !tbaa !13
|
|
||||||
%20 = add nsw i32 %19, %11
|
|
||||||
%21 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @.str.20, i32 0, i32 0), i32 %11, i32 %19)
|
|
||||||
%22 = load i32*, i32** @initCGRA, align 4, !tbaa !5
|
|
||||||
%23 = getelementptr inbounds i32, i32* %22, i32 %8
|
|
||||||
%24 = getelementptr inbounds i32, i32* %23, i32 5
|
|
||||||
store i32 %20, i32* %24, align 4, !tbaa !13
|
|
||||||
br label %25
|
|
||||||
|
|
||||||
25: ; preds = %18, %1
|
|
||||||
%26 = getelementptr inbounds [40 x i8], [40 x i8]* %4, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %26) #11
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %26, i8* nonnull align 1 dereferenceable(40) getelementptr inbounds ([40 x i8], [40 x i8]* @__const.configureCGRA.initCGRAfile, i32 0, i32 0), i32 40, i1 false)
|
|
||||||
%27 = call i32 @strlen(i8* nonnull %26)
|
|
||||||
%28 = getelementptr [40 x i8], [40 x i8]* %4, i32 0, i32 %27
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(14) %28, i8* nonnull align 1 dereferenceable(14) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.21, i32 0, i32 0), i32 14, i1 false)
|
|
||||||
%29 = call %struct._IO_FILE* @fopen(i8* nonnull %26, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.22, i32 0, i32 0))
|
|
||||||
br label %30
|
|
||||||
|
|
||||||
30: ; preds = %30, %25
|
|
||||||
%31 = phi i32 [ 0, %25 ], [ %37, %30 ]
|
|
||||||
%32 = load i32*, i32** @initCGRA, align 4, !tbaa !5
|
|
||||||
%33 = getelementptr inbounds i32, i32* %32, i32 %8
|
|
||||||
%34 = getelementptr inbounds i32, i32* %33, i32 %31
|
|
||||||
%35 = load i32, i32* %34, align 4, !tbaa !13
|
|
||||||
%36 = call i32 (%struct._IO_FILE*, i8*, ...) @fprintf(%struct._IO_FILE* %29, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.23, i32 0, i32 0), i32 %35)
|
|
||||||
%37 = add nuw nsw i32 %31, 1
|
|
||||||
%38 = icmp eq i32 %37, 7
|
|
||||||
br i1 %38, label %39, label %30, !llvm.loop !18
|
|
||||||
|
|
||||||
39: ; preds = %30
|
|
||||||
%40 = load i32*, i32** @epilogPtr, align 4, !tbaa !5
|
|
||||||
%41 = getelementptr inbounds i32, i32* %40, i32 %7
|
|
||||||
%42 = load i32, i32* %41, align 4, !tbaa !16
|
|
||||||
%43 = zext i32 %42 to i64
|
|
||||||
%44 = call i32 (%struct._IO_FILE*, i8*, ...) @fprintf(%struct._IO_FILE* %29, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.24, i32 0, i32 0), i64 %43)
|
|
||||||
%45 = load i32*, i32** @prologPtr, align 4, !tbaa !5
|
|
||||||
%46 = getelementptr inbounds i32, i32* %45, i32 %7
|
|
||||||
%47 = load i32, i32* %46, align 4, !tbaa !16
|
|
||||||
%48 = zext i32 %47 to i64
|
|
||||||
%49 = call i32 (%struct._IO_FILE*, i8*, ...) @fprintf(%struct._IO_FILE* %29, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.24, i32 0, i32 0), i64 %48)
|
|
||||||
%50 = load i32*, i32** @kernelPtr, align 4, !tbaa !5
|
|
||||||
%51 = getelementptr inbounds i32, i32* %50, i32 %7
|
|
||||||
%52 = load i32, i32* %51, align 4, !tbaa !16
|
|
||||||
%53 = zext i32 %52 to i64
|
|
||||||
%54 = call i32 (%struct._IO_FILE*, i8*, ...) @fprintf(%struct._IO_FILE* %29, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.24, i32 0, i32 0), i64 %53)
|
|
||||||
%55 = call i32 @fclose(%struct._IO_FILE* %29)
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %26) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 20, i8* nonnull %13) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 25, i8* nonnull %12) #11
|
|
||||||
ret i32 0
|
|
||||||
}
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
declare dso_local noundef i32 @fprintf(%struct._IO_FILE* nocapture noundef, i8* nocapture noundef readonly, ...) local_unnamed_addr #2
|
|
||||||
|
|
||||||
; Function Attrs: nounwind
|
|
||||||
define dso_local void @checkTotalLoops() local_unnamed_addr #3 {
|
|
||||||
%1 = alloca [40 x i8], align 1
|
|
||||||
%2 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @str.35, i32 0, i32 0))
|
|
||||||
%3 = getelementptr inbounds [40 x i8], [40 x i8]* %1, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %3) #11
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %3, i8* nonnull align 1 dereferenceable(40) getelementptr inbounds ([40 x i8], [40 x i8]* @__const.checkTotalLoops.myfile, i32 0, i32 0), i32 40, i1 false)
|
|
||||||
%4 = call %struct._IO_FILE* @fopen(i8* nonnull %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.7, i32 0, i32 0))
|
|
||||||
%5 = tail call i32 (%struct._IO_FILE*, i8*, ...) @__isoc99_fscanf(%struct._IO_FILE* %4, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i32 0, i32 0), i32* nonnull @totalLoops) #11
|
|
||||||
%6 = tail call i32 @fclose(%struct._IO_FILE* %4)
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %3) #11
|
|
||||||
ret void
|
|
||||||
}
|
|
||||||
|
|
||||||
; Function Attrs: nounwind
|
|
||||||
define dso_local i8* @runOnCGRA() local_unnamed_addr #3 {
|
|
||||||
%1 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @str.36, i32 0, i32 0))
|
|
||||||
tail call void asm sideeffect "mov r11,$0", "r"(i32 15) #11, !srcloc !19
|
|
||||||
ret i8* null
|
|
||||||
}
|
|
||||||
|
|
||||||
; Function Attrs: nounwind
|
|
||||||
define dso_local void @accelerateOnCGRA(i32 %0) local_unnamed_addr #3 {
|
|
||||||
%2 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([19 x i8], [19 x i8]* @str.37, i32 0, i32 0))
|
|
||||||
%3 = tail call i32 @configureCGRA(i32 %0)
|
|
||||||
%4 = tail call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @.str.30, i32 0, i32 0), i32 %0)
|
|
||||||
%5 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @str.36, i32 0, i32 0)) #11
|
|
||||||
tail call void asm sideeffect "mov r11,$0", "r"(i32 15) #11, !srcloc !19
|
|
||||||
ret void
|
|
||||||
}
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
define dso_local void @deleteCGRA() local_unnamed_addr #0 {
|
|
||||||
%1 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @str.38, i32 0, i32 0))
|
|
||||||
ret void
|
|
||||||
}
|
|
||||||
|
|
||||||
; Function Attrs: nounwind
|
|
||||||
define dso_local void @createCGRA() local_unnamed_addr #3 {
|
|
||||||
%1 = alloca [40 x i8], align 1
|
|
||||||
%2 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @str.39, i32 0, i32 0))
|
|
||||||
%3 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @str.35, i32 0, i32 0)) #11
|
|
||||||
%4 = getelementptr inbounds [40 x i8], [40 x i8]* %1, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %4) #11
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %4, i8* nonnull align 1 dereferenceable(40) getelementptr inbounds ([40 x i8], [40 x i8]* @__const.checkTotalLoops.myfile, i32 0, i32 0), i32 40, i1 false) #11
|
|
||||||
%5 = call %struct._IO_FILE* @fopen(i8* nonnull %4, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.7, i32 0, i32 0)) #11
|
|
||||||
%6 = tail call i32 (%struct._IO_FILE*, i8*, ...) @__isoc99_fscanf(%struct._IO_FILE* %5, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i32 0, i32 0), i32* nonnull @totalLoops) #11
|
|
||||||
%7 = tail call i32 @fclose(%struct._IO_FILE* %5) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %4) #11
|
|
||||||
%8 = load i32, i32* @totalLoops, align 4, !tbaa !13
|
|
||||||
%9 = mul i32 %8, 28
|
|
||||||
%10 = tail call noalias i8* @malloc(i32 %9) #11
|
|
||||||
store i8* %10, i8** bitcast (i32** @initCGRA to i8**), align 4, !tbaa !5
|
|
||||||
%11 = shl i32 %8, 2
|
|
||||||
%12 = tail call noalias i8* @malloc(i32 %11) #11
|
|
||||||
store i8* %12, i8** bitcast (i32** @prologPtr to i8**), align 4, !tbaa !5
|
|
||||||
%13 = tail call noalias i8* @malloc(i32 %11) #11
|
|
||||||
store i8* %13, i8** bitcast (i32** @kernelPtr to i8**), align 4, !tbaa !5
|
|
||||||
%14 = tail call noalias i8* @malloc(i32 %11) #11
|
|
||||||
store i8* %14, i8** bitcast (i32** @epilogPtr to i8**), align 4, !tbaa !5
|
|
||||||
%15 = icmp eq i32 %8, 0
|
|
||||||
br i1 %15, label %.loopexit, label %.preheader.preheader
|
|
||||||
|
|
||||||
.preheader.preheader: ; preds = %0
|
|
||||||
br label %.preheader
|
|
||||||
|
|
||||||
.preheader: ; preds = %.preheader, %.preheader.preheader
|
|
||||||
%16 = phi i32 [ %18, %.preheader ], [ 1, %.preheader.preheader ]
|
|
||||||
%17 = tail call i32 @initializeParameters(i32 %16)
|
|
||||||
%18 = add i32 %16, 1
|
|
||||||
%19 = load i32, i32* @totalLoops, align 4, !tbaa !13
|
|
||||||
%20 = icmp ugt i32 %18, %19
|
|
||||||
br i1 %20, label %.loopexit.loopexit, label %.preheader, !llvm.loop !20
|
|
||||||
|
|
||||||
.loopexit.loopexit: ; preds = %.preheader
|
|
||||||
br label %.loopexit
|
|
||||||
|
|
||||||
.loopexit: ; preds = %.loopexit.loopexit, %0
|
|
||||||
%21 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @str.40, i32 0, i32 0))
|
|
||||||
ret void
|
|
||||||
}
|
|
||||||
|
|
||||||
attributes #0 = { nofree nounwind "disable-tail-calls"="false" "frame-pointer"="none" "min-legal-vector-width"="0" "no-jump-tables"="false" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+armv7-a,+d32,+dsp,+fp64,+neon,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,-thumb-mode" }
|
|
||||||
attributes #1 = { nofree nounwind willreturn "disable-tail-calls"="false" "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+armv7-a,+d32,+dsp,+fp64,+neon,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,-thumb-mode" }
|
|
||||||
attributes #2 = { nofree nounwind "disable-tail-calls"="false" "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+armv7-a,+d32,+dsp,+fp64,+neon,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,-thumb-mode" }
|
|
||||||
attributes #3 = { nounwind "disable-tail-calls"="false" "frame-pointer"="none" "min-legal-vector-width"="0" "no-jump-tables"="false" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+armv7-a,+d32,+dsp,+fp64,+neon,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,-thumb-mode" }
|
|
||||||
attributes #4 = { nofree nounwind }
|
|
||||||
attributes #5 = { argmemonly nofree nosync nounwind willreturn writeonly }
|
|
||||||
attributes #6 = { argmemonly nofree nosync nounwind willreturn }
|
|
||||||
attributes #7 = { argmemonly nofree nounwind willreturn "disable-tail-calls"="false" "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+armv7-a,+d32,+dsp,+fp64,+neon,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,-thumb-mode" }
|
|
||||||
attributes #8 = { argmemonly nofree nounwind readonly willreturn }
|
|
||||||
attributes #9 = { inaccessiblememonly nofree nounwind willreturn "disable-tail-calls"="false" "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+armv7-a,+d32,+dsp,+fp64,+neon,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,-thumb-mode" }
|
|
||||||
attributes #10 = { "disable-tail-calls"="false" "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+armv7-a,+d32,+dsp,+fp64,+neon,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,-thumb-mode" }
|
|
||||||
attributes #11 = { nounwind }
|
|
||||||
|
|
||||||
!llvm.ident = !{!0, !0}
|
|
||||||
!llvm.module.flags = !{!1, !2, !3, !4}
|
|
||||||
|
|
||||||
!0 = !{!"clang version 13.0.0 (https://github.com/MPSLab-ASU/CCF-20.04/ 05285de7579f417a4d73ad832b8f4cc497f25235)"}
|
|
||||||
!1 = !{i32 7, !"Dwarf Version", i32 4}
|
|
||||||
!2 = !{i32 2, !"Debug Info Version", i32 3}
|
|
||||||
!3 = !{i32 1, !"wchar_size", i32 4}
|
|
||||||
!4 = !{i32 1, !"min_enum_size", i32 4}
|
|
||||||
!5 = !{!6, !6, i64 0}
|
|
||||||
!6 = !{!"any pointer", !7, i64 0}
|
|
||||||
!7 = !{!"omnipotent char", !8, i64 0}
|
|
||||||
!8 = !{!"Simple C/C++ TBAA"}
|
|
||||||
!9 = distinct !{!9, !10, !11, !12}
|
|
||||||
!10 = !{!"llvm.loop.mustprogress"}
|
|
||||||
!11 = !{!"llvm.loop.CGRA.enable"}
|
|
||||||
!12 = !{!"llvm.loop.unroll.disable"}
|
|
||||||
!13 = !{!14, !14, i64 0}
|
|
||||||
!14 = !{!"int", !7, i64 0}
|
|
||||||
!15 = distinct !{!15, !10, !12}
|
|
||||||
!16 = !{!17, !17, i64 0}
|
|
||||||
!17 = !{!"long", !7, i64 0}
|
|
||||||
!18 = distinct !{!18, !10, !12}
|
|
||||||
!19 = !{i32 5341}
|
|
||||||
!20 = distinct !{!20, !10, !12}
|
|
|
@ -1,573 +0,0 @@
|
||||||
; ModuleID = 'InvokeCGRA.bc'
|
|
||||||
source_filename = "llvm-link"
|
|
||||||
target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"
|
|
||||||
target triple = "armv7-none-linux-eabi"
|
|
||||||
|
|
||||||
%struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i32, i16, i8, [1 x i8], i8*, i64, %struct._IO_codecvt*, %struct._IO_wide_data*, %struct._IO_FILE*, i8*, i32, i32, [40 x i8] }
|
|
||||||
%struct._IO_marker = type opaque
|
|
||||||
%struct._IO_codecvt = type opaque
|
|
||||||
%struct._IO_wide_data = type opaque
|
|
||||||
|
|
||||||
@.str = private unnamed_addr constant [24 x i8] c"***** %d^%d = %d *****\0A\00", align 1
|
|
||||||
@totalLoops = dso_local global i32 0, align 4
|
|
||||||
@dynamicTCVal = dso_local local_unnamed_addr global i32 0, align 4
|
|
||||||
@initCGRA = dso_local local_unnamed_addr global i32* null, align 4
|
|
||||||
@epilog = dso_local local_unnamed_addr global i32* null, align 4
|
|
||||||
@prolog = dso_local local_unnamed_addr global i32* null, align 4
|
|
||||||
@kernel = dso_local local_unnamed_addr global i32* null, align 4
|
|
||||||
@prologPtr = dso_local local_unnamed_addr global i32* null, align 4
|
|
||||||
@epilogPtr = dso_local local_unnamed_addr global i32* null, align 4
|
|
||||||
@kernelPtr = dso_local local_unnamed_addr global i32* null, align 4
|
|
||||||
@ArrPtr = dso_local local_unnamed_addr global i32* null, align 4
|
|
||||||
@pth = dso_local local_unnamed_addr global i32 0, align 4
|
|
||||||
@str = private unnamed_addr constant [34 x i8] c"from cgra.c Initialize Parameters\00", align 1
|
|
||||||
@__const.configureCGRA.directoryPath = private unnamed_addr constant [20 x i8] c"./CGRAExec/L\00\00\00\00\00\00\00\00", align 1
|
|
||||||
@.str.1 = private unnamed_addr constant [3 x i8] c"%d\00", align 1
|
|
||||||
@.str.2 = private unnamed_addr constant [16 x i8] c"/epilog_ins.bin\00", align 1
|
|
||||||
@.str.3 = private unnamed_addr constant [16 x i8] c"/prolog_ins.bin\00", align 1
|
|
||||||
@.str.4 = private unnamed_addr constant [16 x i8] c"/kernel_ins.bin\00", align 1
|
|
||||||
@.str.5 = private unnamed_addr constant [17 x i8] c"/CGRA_config.txt\00", align 1
|
|
||||||
@.str.6 = private unnamed_addr constant [3 x i8] c"rb\00", align 1
|
|
||||||
@.str.7 = private unnamed_addr constant [2 x i8] c"r\00", align 1
|
|
||||||
@.str.8 = private unnamed_addr constant [32 x i8] c"\0A**********EPISIZE %d*********\0A\00", align 1
|
|
||||||
@.str.9 = private unnamed_addr constant [32 x i8] c"\0A**********PROSIZE %d*********\0A\00", align 1
|
|
||||||
@.str.10 = private unnamed_addr constant [33 x i8] c"\0A**********KERNSIZE %d*********\0A\00", align 1
|
|
||||||
@.str.11 = private unnamed_addr constant [37 x i8] c"\0A******SIZE OF UNSIGNED LONG%d*****\0A\00", align 1
|
|
||||||
@.str.12 = private unnamed_addr constant [42 x i8] c"\0A******SIZE OF UNSIGNED LONG LONG%d*****\0A\00", align 1
|
|
||||||
@.str.13 = private unnamed_addr constant [26 x i8] c"/livevar_st_ins_count.txt\00", align 1
|
|
||||||
@.str.14 = private unnamed_addr constant [39 x i8] c"\0A************XDIM and YDim are %d, %d\0A\00", align 1
|
|
||||||
@.str.15 = private unnamed_addr constant [18 x i8] c"/kernel_count.txt\00", align 1
|
|
||||||
@.str.16 = private unnamed_addr constant [16 x i8] c"Loop Count: %d\0A\00", align 1
|
|
||||||
@.str.17 = private unnamed_addr constant [55 x i8] c"From FILE: PROLOGPC= %lx, EPILOGPC=%lx, KernelPC=%lx\0A\00", align 1
|
|
||||||
@str.34 = private unnamed_addr constant [14 x i8] c"configureCGRA\00", align 1
|
|
||||||
@.str.19 = private unnamed_addr constant [14 x i8] c"\0Aloopno = %s\0A\00", align 1
|
|
||||||
@.str.20 = private unnamed_addr constant [17 x i8] c"newTC = %d + %d\0A\00", align 1
|
|
||||||
@__const.configureCGRA.initCGRAfile = private unnamed_addr constant [40 x i8] c"./CGRAExec/L1\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", align 1
|
|
||||||
@.str.21 = private unnamed_addr constant [14 x i8] c"/initCGRA.txt\00", align 1
|
|
||||||
@.str.22 = private unnamed_addr constant [3 x i8] c"wb\00", align 1
|
|
||||||
@.str.23 = private unnamed_addr constant [4 x i8] c"%d\0A\00", align 1
|
|
||||||
@.str.24 = private unnamed_addr constant [5 x i8] c"%ld\0A\00", align 1
|
|
||||||
@str.35 = private unnamed_addr constant [16 x i8] c"checkTotalLoops\00", align 1
|
|
||||||
@__const.checkTotalLoops.myfile = private unnamed_addr constant [40 x i8] c"./CGRAExec/total_loops.txt\00\00\00\00\00\00\00\00\00\00\00\00\00\00", align 1
|
|
||||||
@.str.26 = private unnamed_addr constant [3 x i8] c"%u\00", align 1
|
|
||||||
@str.36 = private unnamed_addr constant [12 x i8] c"\0A\0ArunOnCGRA\00", align 1
|
|
||||||
@str.37 = private unnamed_addr constant [19 x i8] c"\0A\0AaccelerateOnCGRA\00", align 1
|
|
||||||
@.str.30 = private unnamed_addr constant [35 x i8] c"Core will execute loop %u on CGRA\0A\00", align 1
|
|
||||||
@str.38 = private unnamed_addr constant [15 x i8] c"\0Adeleting cgra\00", align 1
|
|
||||||
@str.39 = private unnamed_addr constant [11 x i8] c"createCGRA\00", align 1
|
|
||||||
@str.40 = private unnamed_addr constant [35 x i8] c"Main thread calling CGRA thread...\00", align 1
|
|
||||||
@gVar1 = common local_unnamed_addr global i32 0
|
|
||||||
@gVar2 = common local_unnamed_addr global i32 0
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
define dso_local i32 @main(i32 %0, i8** nocapture readonly %1) local_unnamed_addr #0 {
|
|
||||||
%3 = getelementptr inbounds i8*, i8** %1, i32 1
|
|
||||||
%4 = load i8*, i8** %3, align 4, !tbaa !5
|
|
||||||
%5 = tail call i32 @strtol(i8* nocapture nonnull %4, i8** null, i32 10) #11
|
|
||||||
%6 = icmp sgt i32 %5, 1
|
|
||||||
store i32 %5, i32* @gVar1, align 4
|
|
||||||
br i1 %6, label %.preheader.preheader, label %.loopexit
|
|
||||||
|
|
||||||
.preheader.preheader: ; preds = %2
|
|
||||||
%7 = sub i32 %5, 1
|
|
||||||
%8 = sdiv i32 %7, 1
|
|
||||||
store i32 %8, i32* @dynamicTCVal, align 4
|
|
||||||
br label %9
|
|
||||||
|
|
||||||
9: ; preds = %.preheader.preheader
|
|
||||||
call void @accelerateOnCGRA(i32 1)
|
|
||||||
br label %.loopexit.loopexit
|
|
||||||
|
|
||||||
.loopexit.loopexit: ; preds = %9
|
|
||||||
br label %10
|
|
||||||
|
|
||||||
10: ; preds = %.loopexit.loopexit
|
|
||||||
%11 = load i32, i32* @gVar2, align 4
|
|
||||||
br label %.loopexit
|
|
||||||
|
|
||||||
.loopexit: ; preds = %10, %2
|
|
||||||
%12 = phi i32 [ 1, %2 ], [ %11, %10 ]
|
|
||||||
%13 = tail call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([24 x i8], [24 x i8]* @.str, i32 0, i32 0), i32 2, i32 %5, i32 %12)
|
|
||||||
ret i32 0
|
|
||||||
}
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind willreturn
|
|
||||||
declare dso_local i32 @strtol(i8* readonly, i8** nocapture, i32) local_unnamed_addr #1
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
declare dso_local noundef i32 @printf(i8* nocapture noundef readonly, ...) local_unnamed_addr #2
|
|
||||||
|
|
||||||
; Function Attrs: nounwind
|
|
||||||
define dso_local i32 @initializeParameters(i32 %0) local_unnamed_addr #3 {
|
|
||||||
%2 = alloca [25 x i8], align 1
|
|
||||||
%3 = alloca [20 x i8], align 1
|
|
||||||
%4 = alloca [40 x i8], align 1
|
|
||||||
%5 = alloca [40 x i8], align 1
|
|
||||||
%6 = alloca [40 x i8], align 1
|
|
||||||
%7 = alloca [40 x i8], align 1
|
|
||||||
%8 = alloca [40 x i8], align 1
|
|
||||||
%9 = alloca i32, align 4
|
|
||||||
%10 = alloca i32, align 4
|
|
||||||
%11 = alloca i32, align 4
|
|
||||||
%12 = alloca i32, align 4
|
|
||||||
%13 = alloca [256 x i8], align 1
|
|
||||||
%14 = alloca [40 x i8], align 1
|
|
||||||
%15 = alloca i32, align 4
|
|
||||||
%16 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([34 x i8], [34 x i8]* @str, i32 0, i32 0))
|
|
||||||
%17 = load i32*, i32** @initCGRA, align 4, !tbaa !5
|
|
||||||
%18 = add i32 %0, -1
|
|
||||||
%19 = mul i32 %18, 7
|
|
||||||
%20 = getelementptr inbounds i32, i32* %17, i32 %19
|
|
||||||
store i32 2011168768, i32* %20, align 4, !tbaa !9
|
|
||||||
%21 = getelementptr inbounds i32, i32* %20, i32 1
|
|
||||||
store i32 2011168768, i32* %21, align 4, !tbaa !9
|
|
||||||
%22 = getelementptr inbounds i32, i32* %20, i32 2
|
|
||||||
%23 = getelementptr inbounds [25 x i8], [25 x i8]* %2, i32 0, i32 0
|
|
||||||
%24 = bitcast i32* %22 to i8*
|
|
||||||
tail call void @llvm.memset.p0i8.i64(i8* nonnull align 4 dereferenceable(20) %24, i8 0, i64 20, i1 false)
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 25, i8* nonnull %23) #11
|
|
||||||
%25 = getelementptr inbounds [20 x i8], [20 x i8]* %3, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 20, i8* nonnull %25) #11
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(20) %25, i8* nonnull align 1 dereferenceable(20) getelementptr inbounds ([20 x i8], [20 x i8]* @__const.configureCGRA.directoryPath, i32 0, i32 0), i32 20, i1 false)
|
|
||||||
%26 = call i32 (i8*, i8*, ...) @sprintf(i8* nonnull %23, i8* nonnull dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i32 0, i32 0), i32 %0) #11
|
|
||||||
%27 = call i8* @strcat(i8* nonnull %25, i8* nonnull %23) #11
|
|
||||||
%28 = getelementptr inbounds [40 x i8], [40 x i8]* %4, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %28) #11
|
|
||||||
call void @llvm.memset.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %28, i8 0, i32 40, i1 false)
|
|
||||||
%29 = getelementptr inbounds [40 x i8], [40 x i8]* %5, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %29) #11
|
|
||||||
call void @llvm.memset.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %29, i8 0, i32 40, i1 false)
|
|
||||||
%30 = getelementptr inbounds [40 x i8], [40 x i8]* %6, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %30) #11
|
|
||||||
call void @llvm.memset.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %30, i8 0, i32 40, i1 false)
|
|
||||||
%31 = getelementptr inbounds [40 x i8], [40 x i8]* %7, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %31) #11
|
|
||||||
call void @llvm.memset.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %31, i8 0, i32 40, i1 false)
|
|
||||||
%32 = getelementptr inbounds [40 x i8], [40 x i8]* %8, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %32) #11
|
|
||||||
call void @llvm.memset.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %32, i8 0, i32 40, i1 false)
|
|
||||||
%33 = call i8* @strcat(i8* nonnull %28, i8* nonnull %25) #11
|
|
||||||
%34 = call i32 @strlen(i8* nonnull %28)
|
|
||||||
%35 = getelementptr [40 x i8], [40 x i8]* %4, i32 0, i32 %34
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(16) %35, i8* nonnull align 1 dereferenceable(16) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i32 0, i32 0), i32 16, i1 false)
|
|
||||||
%36 = call i8* @strcat(i8* nonnull %29, i8* nonnull %25) #11
|
|
||||||
%37 = call i32 @strlen(i8* nonnull %29)
|
|
||||||
%38 = getelementptr [40 x i8], [40 x i8]* %5, i32 0, i32 %37
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(16) %38, i8* nonnull align 1 dereferenceable(16) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.3, i32 0, i32 0), i32 16, i1 false)
|
|
||||||
%39 = call i8* @strcat(i8* nonnull %30, i8* nonnull %25) #11
|
|
||||||
%40 = call i32 @strlen(i8* nonnull %30)
|
|
||||||
%41 = getelementptr [40 x i8], [40 x i8]* %6, i32 0, i32 %40
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(16) %41, i8* nonnull align 1 dereferenceable(16) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.4, i32 0, i32 0), i32 16, i1 false)
|
|
||||||
%42 = call i8* @strcat(i8* nonnull %32, i8* nonnull %25) #11
|
|
||||||
%43 = call i32 @strlen(i8* nonnull %32)
|
|
||||||
%44 = getelementptr [40 x i8], [40 x i8]* %8, i32 0, i32 %43
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(17) %44, i8* nonnull align 1 dereferenceable(17) getelementptr inbounds ([17 x i8], [17 x i8]* @.str.5, i32 0, i32 0), i32 17, i1 false)
|
|
||||||
%45 = call %struct._IO_FILE* @fopen(i8* nonnull %28, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.6, i32 0, i32 0))
|
|
||||||
%46 = call %struct._IO_FILE* @fopen(i8* nonnull %29, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.6, i32 0, i32 0))
|
|
||||||
%47 = call %struct._IO_FILE* @fopen(i8* nonnull %30, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.6, i32 0, i32 0))
|
|
||||||
%48 = call %struct._IO_FILE* @fopen(i8* nonnull %32, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.7, i32 0, i32 0))
|
|
||||||
%49 = bitcast i32* %9 to i8*
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %49) #11
|
|
||||||
%50 = bitcast i32* %10 to i8*
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %50) #11
|
|
||||||
%51 = bitcast i32* %11 to i8*
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %51) #11
|
|
||||||
%52 = bitcast i32* %12 to i8*
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %52) #11
|
|
||||||
%53 = call i32 @fread(i8* nonnull %49, i32 4, i32 1, %struct._IO_FILE* %45)
|
|
||||||
%54 = call i32 @fread(i8* nonnull %50, i32 4, i32 1, %struct._IO_FILE* %46)
|
|
||||||
%55 = call i32 @fread(i8* nonnull %51, i32 4, i32 1, %struct._IO_FILE* %47)
|
|
||||||
%56 = load i32, i32* %9, align 4, !tbaa !9
|
|
||||||
%57 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.8, i32 0, i32 0), i32 %56)
|
|
||||||
%58 = load i32, i32* %10, align 4, !tbaa !9
|
|
||||||
%59 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.9, i32 0, i32 0), i32 %58)
|
|
||||||
%60 = load i32, i32* %11, align 4, !tbaa !9
|
|
||||||
%61 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([33 x i8], [33 x i8]* @.str.10, i32 0, i32 0), i32 %60)
|
|
||||||
%62 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([37 x i8], [37 x i8]* @.str.11, i32 0, i32 0), i32 4)
|
|
||||||
%63 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([42 x i8], [42 x i8]* @.str.12, i32 0, i32 0), i32 8)
|
|
||||||
%64 = shl i32 %56, 3
|
|
||||||
%65 = call noalias i8* @malloc(i32 %64) #11
|
|
||||||
store i8* %65, i8** bitcast (i32** @epilog to i8**), align 4, !tbaa !5
|
|
||||||
%66 = shl i32 %58, 3
|
|
||||||
%67 = call noalias i8* @malloc(i32 %66) #11
|
|
||||||
store i8* %67, i8** bitcast (i32** @prolog to i8**), align 4, !tbaa !5
|
|
||||||
%68 = shl i32 %60, 3
|
|
||||||
%69 = call noalias i8* @malloc(i32 %68) #11
|
|
||||||
store i8* %69, i8** bitcast (i32** @kernel to i8**), align 4, !tbaa !5
|
|
||||||
%70 = call i32 @fread(i8* %65, i32 8, i32 %56, %struct._IO_FILE* %45)
|
|
||||||
%71 = load i8*, i8** bitcast (i32** @prolog to i8**), align 4, !tbaa !5
|
|
||||||
%72 = call i32 @fread(i8* %71, i32 8, i32 %58, %struct._IO_FILE* %46)
|
|
||||||
%73 = load i8*, i8** bitcast (i32** @kernel to i8**), align 4, !tbaa !5
|
|
||||||
%74 = call i32 @fread(i8* %73, i32 8, i32 %60, %struct._IO_FILE* %47)
|
|
||||||
%75 = call i8* @strcat(i8* nonnull %31, i8* nonnull %25) #11
|
|
||||||
%76 = call i32 @strlen(i8* nonnull %31)
|
|
||||||
%77 = getelementptr [40 x i8], [40 x i8]* %7, i32 0, i32 %76
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(26) %77, i8* nonnull align 1 dereferenceable(26) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.13, i32 0, i32 0), i32 26, i1 false)
|
|
||||||
%78 = call %struct._IO_FILE* @fopen(i8* nonnull %31, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.7, i32 0, i32 0))
|
|
||||||
%79 = call i32 (%struct._IO_FILE*, i8*, ...) @__isoc99_fscanf(%struct._IO_FILE* %78, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i32 0, i32 0), i32* nonnull %12) #11
|
|
||||||
%80 = getelementptr inbounds [256 x i8], [256 x i8]* %13, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 256, i8* nonnull %80) #11
|
|
||||||
%81 = call i8* @fgets(i8* nonnull %80, i32 256, %struct._IO_FILE* %48)
|
|
||||||
%82 = icmp eq i8* %81, null
|
|
||||||
br i1 %82, label %.loopexit, label %.preheader.preheader
|
|
||||||
|
|
||||||
.preheader.preheader: ; preds = %1
|
|
||||||
br label %.preheader
|
|
||||||
|
|
||||||
.preheader: ; preds = %94, %.preheader.preheader
|
|
||||||
%83 = phi i32 [ %96, %94 ], [ 0, %.preheader.preheader ]
|
|
||||||
%84 = phi i32 [ %95, %94 ], [ 0, %.preheader.preheader ]
|
|
||||||
%85 = phi i32 [ %86, %94 ], [ 0, %.preheader.preheader ]
|
|
||||||
%86 = add nuw nsw i32 %85, 1
|
|
||||||
%87 = icmp eq i32 %85, 0
|
|
||||||
br i1 %87, label %88, label %90
|
|
||||||
|
|
||||||
88: ; preds = %.preheader
|
|
||||||
%89 = call i32 @strtol(i8* nocapture nonnull %80, i8** null, i32 10) #11
|
|
||||||
br label %94
|
|
||||||
|
|
||||||
90: ; preds = %.preheader
|
|
||||||
%91 = icmp eq i32 %86, 2
|
|
||||||
br i1 %91, label %92, label %.loopexit.loopexit
|
|
||||||
|
|
||||||
92: ; preds = %90
|
|
||||||
%93 = call i32 @strtol(i8* nocapture nonnull %80, i8** null, i32 10) #11
|
|
||||||
br label %94
|
|
||||||
|
|
||||||
94: ; preds = %92, %88
|
|
||||||
%95 = phi i32 [ %84, %88 ], [ %93, %92 ]
|
|
||||||
%96 = phi i32 [ %89, %88 ], [ %83, %92 ]
|
|
||||||
%97 = call i8* @fgets(i8* nonnull %80, i32 256, %struct._IO_FILE* %48)
|
|
||||||
%98 = icmp eq i8* %97, null
|
|
||||||
br i1 %98, label %.loopexit.loopexit, label %.preheader, !llvm.loop !11
|
|
||||||
|
|
||||||
.loopexit.loopexit: ; preds = %94, %90
|
|
||||||
%.ph = phi i32 [ %95, %94 ], [ %84, %90 ]
|
|
||||||
%.ph6 = phi i32 [ %96, %94 ], [ %83, %90 ]
|
|
||||||
br label %.loopexit
|
|
||||||
|
|
||||||
.loopexit: ; preds = %.loopexit.loopexit, %1
|
|
||||||
%99 = phi i32 [ 0, %1 ], [ %.ph, %.loopexit.loopexit ]
|
|
||||||
%100 = phi i32 [ 0, %1 ], [ %.ph6, %.loopexit.loopexit ]
|
|
||||||
%101 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.14, i32 0, i32 0), i32 %100, i32 %99)
|
|
||||||
%102 = mul nsw i32 %100, %99
|
|
||||||
%103 = sdiv i32 %60, %102
|
|
||||||
%104 = sdiv i32 %56, %102
|
|
||||||
%105 = sdiv i32 %58, %102
|
|
||||||
%106 = load i32*, i32** @initCGRA, align 4, !tbaa !5
|
|
||||||
%107 = getelementptr inbounds i32, i32* %106, i32 %19
|
|
||||||
%108 = getelementptr inbounds i32, i32* %107, i32 2
|
|
||||||
store i32 %103, i32* %108, align 4, !tbaa !9
|
|
||||||
%109 = getelementptr inbounds i32, i32* %107, i32 3
|
|
||||||
store i32 %104, i32* %109, align 4, !tbaa !9
|
|
||||||
%110 = getelementptr inbounds i32, i32* %107, i32 4
|
|
||||||
store i32 %105, i32* %110, align 4, !tbaa !9
|
|
||||||
%111 = load i32, i32* %12, align 4, !tbaa !9
|
|
||||||
%112 = sdiv i32 %111, %102
|
|
||||||
%113 = getelementptr inbounds i32, i32* %107, i32 6
|
|
||||||
store i32 %112, i32* %113, align 4, !tbaa !9
|
|
||||||
%114 = call i32 @fclose(%struct._IO_FILE* %45)
|
|
||||||
%115 = call i32 @fclose(%struct._IO_FILE* %46)
|
|
||||||
%116 = call i32 @fclose(%struct._IO_FILE* %47)
|
|
||||||
%117 = call i32 @fclose(%struct._IO_FILE* %78)
|
|
||||||
%118 = call i32 @fclose(%struct._IO_FILE* %48)
|
|
||||||
%119 = getelementptr inbounds [40 x i8], [40 x i8]* %14, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %119) #11
|
|
||||||
call void @llvm.memset.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %119, i8 0, i32 40, i1 false)
|
|
||||||
%120 = call i8* @strcat(i8* nonnull %119, i8* nonnull %25) #11
|
|
||||||
%121 = call i32 @strlen(i8* nonnull %119)
|
|
||||||
%122 = getelementptr [40 x i8], [40 x i8]* %14, i32 0, i32 %121
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(18) %122, i8* nonnull align 1 dereferenceable(18) getelementptr inbounds ([18 x i8], [18 x i8]* @.str.15, i32 0, i32 0), i32 18, i1 false)
|
|
||||||
%123 = bitcast i32* %15 to i8*
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %123) #11
|
|
||||||
store i32 0, i32* %15, align 4, !tbaa !9
|
|
||||||
%124 = call %struct._IO_FILE* @fopen(i8* nonnull %119, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.7, i32 0, i32 0))
|
|
||||||
%125 = call i32 (%struct._IO_FILE*, i8*, ...) @__isoc99_fscanf(%struct._IO_FILE* %124, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i32 0, i32 0), i32* nonnull %15) #11
|
|
||||||
%126 = call i32 @fclose(%struct._IO_FILE* %124)
|
|
||||||
%127 = load i32, i32* %15, align 4, !tbaa !9
|
|
||||||
%128 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.16, i32 0, i32 0), i32 %127)
|
|
||||||
%129 = load i32, i32* %15, align 4, !tbaa !9
|
|
||||||
%130 = load i32*, i32** @initCGRA, align 4, !tbaa !5
|
|
||||||
%131 = getelementptr inbounds i32, i32* %130, i32 %19
|
|
||||||
%132 = getelementptr inbounds i32, i32* %131, i32 5
|
|
||||||
store i32 %129, i32* %132, align 4, !tbaa !9
|
|
||||||
%133 = load i32*, i32** @prolog, align 4, !tbaa !5
|
|
||||||
%134 = ptrtoint i32* %133 to i32
|
|
||||||
%135 = load i32*, i32** @epilog, align 4, !tbaa !5
|
|
||||||
%136 = ptrtoint i32* %135 to i32
|
|
||||||
%137 = load i32*, i32** @kernel, align 4, !tbaa !5
|
|
||||||
%138 = ptrtoint i32* %137 to i32
|
|
||||||
%139 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([55 x i8], [55 x i8]* @.str.17, i32 0, i32 0), i32 %134, i32 %136, i32 %138)
|
|
||||||
%140 = load i32*, i32** @prolog, align 4, !tbaa !5
|
|
||||||
%141 = ptrtoint i32* %140 to i32
|
|
||||||
%142 = load i32*, i32** @prologPtr, align 4, !tbaa !5
|
|
||||||
%143 = getelementptr inbounds i32, i32* %142, i32 %18
|
|
||||||
store i32 %141, i32* %143, align 4, !tbaa !14
|
|
||||||
%144 = load i32*, i32** @epilog, align 4, !tbaa !5
|
|
||||||
%145 = ptrtoint i32* %144 to i32
|
|
||||||
%146 = load i32*, i32** @epilogPtr, align 4, !tbaa !5
|
|
||||||
%147 = getelementptr inbounds i32, i32* %146, i32 %18
|
|
||||||
store i32 %145, i32* %147, align 4, !tbaa !14
|
|
||||||
%148 = load i32*, i32** @kernel, align 4, !tbaa !5
|
|
||||||
%149 = ptrtoint i32* %148 to i32
|
|
||||||
%150 = load i32*, i32** @kernelPtr, align 4, !tbaa !5
|
|
||||||
%151 = getelementptr inbounds i32, i32* %150, i32 %18
|
|
||||||
store i32 %149, i32* %151, align 4, !tbaa !14
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %123) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %119) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 256, i8* nonnull %80) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %52) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %51) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %50) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %49) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %32) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %31) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %30) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %29) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %28) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 20, i8* nonnull %25) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 25, i8* nonnull %23) #11
|
|
||||||
ret i32 0
|
|
||||||
}
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
declare noundef i32 @puts(i8* nocapture noundef readonly) local_unnamed_addr #4
|
|
||||||
|
|
||||||
; Function Attrs: argmemonly nofree nosync nounwind willreturn writeonly
|
|
||||||
declare void @llvm.memset.p0i8.i64(i8* nocapture writeonly, i8, i64, i1 immarg) #5
|
|
||||||
|
|
||||||
; Function Attrs: argmemonly nofree nosync nounwind willreturn
|
|
||||||
declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) #6
|
|
||||||
|
|
||||||
; Function Attrs: argmemonly nofree nosync nounwind willreturn
|
|
||||||
declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #6
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
declare dso_local noundef i32 @sprintf(i8* noalias nocapture noundef writeonly, i8* nocapture noundef readonly, ...) local_unnamed_addr #2
|
|
||||||
|
|
||||||
; Function Attrs: argmemonly nofree nounwind willreturn
|
|
||||||
declare dso_local i8* @strcat(i8* noalias returned writeonly, i8* noalias nocapture readonly) local_unnamed_addr #7
|
|
||||||
|
|
||||||
; Function Attrs: argmemonly nofree nosync nounwind willreturn writeonly
|
|
||||||
declare void @llvm.memset.p0i8.i32(i8* nocapture writeonly, i8, i32, i1 immarg) #5
|
|
||||||
|
|
||||||
; Function Attrs: argmemonly nofree nounwind readonly willreturn
|
|
||||||
declare i32 @strlen(i8* nocapture) local_unnamed_addr #8
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
declare dso_local noalias noundef %struct._IO_FILE* @fopen(i8* nocapture noundef readonly, i8* nocapture noundef readonly) local_unnamed_addr #2
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
declare dso_local noundef i32 @fread(i8* nocapture noundef, i32 noundef, i32 noundef, %struct._IO_FILE* nocapture noundef) local_unnamed_addr #2
|
|
||||||
|
|
||||||
; Function Attrs: inaccessiblememonly nofree nounwind willreturn
|
|
||||||
declare dso_local noalias noundef i8* @malloc(i32) local_unnamed_addr #9
|
|
||||||
|
|
||||||
declare dso_local i32 @__isoc99_fscanf(%struct._IO_FILE*, i8*, ...) local_unnamed_addr #10
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
declare dso_local noundef i8* @fgets(i8* noundef, i32 noundef, %struct._IO_FILE* nocapture noundef) local_unnamed_addr #2
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
declare dso_local noundef i32 @fclose(%struct._IO_FILE* nocapture noundef) local_unnamed_addr #2
|
|
||||||
|
|
||||||
; Function Attrs: argmemonly nofree nosync nounwind willreturn
|
|
||||||
declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #6
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
define dso_local i32 @configureCGRA(i32 %0) local_unnamed_addr #0 {
|
|
||||||
%2 = alloca [25 x i8], align 1
|
|
||||||
%3 = alloca [20 x i8], align 1
|
|
||||||
%4 = alloca [40 x i8], align 1
|
|
||||||
%5 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @str.34, i32 0, i32 0))
|
|
||||||
%6 = load i32*, i32** @initCGRA, align 4, !tbaa !5
|
|
||||||
%7 = add i32 %0, -1
|
|
||||||
%8 = mul i32 %7, 7
|
|
||||||
%9 = getelementptr inbounds i32, i32* %6, i32 %8
|
|
||||||
%10 = getelementptr inbounds i32, i32* %9, i32 5
|
|
||||||
%11 = load i32, i32* %10, align 4, !tbaa !9
|
|
||||||
%12 = getelementptr inbounds [25 x i8], [25 x i8]* %2, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 25, i8* nonnull %12) #11
|
|
||||||
%13 = getelementptr inbounds [20 x i8], [20 x i8]* %3, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 20, i8* nonnull %13) #11
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(20) %13, i8* nonnull align 1 dereferenceable(20) getelementptr inbounds ([20 x i8], [20 x i8]* @__const.configureCGRA.directoryPath, i32 0, i32 0), i32 20, i1 false)
|
|
||||||
%14 = call i32 (i8*, i8*, ...) @sprintf(i8* nonnull %12, i8* nonnull dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i32 0, i32 0), i32 %0) #11
|
|
||||||
%15 = call i8* @strcat(i8* nonnull %13, i8* nonnull %12) #11
|
|
||||||
%16 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.19, i32 0, i32 0), i8* nonnull %12)
|
|
||||||
%17 = icmp slt i32 %11, 1
|
|
||||||
br i1 %17, label %18, label %25
|
|
||||||
|
|
||||||
18: ; preds = %1
|
|
||||||
%19 = load i32, i32* @dynamicTCVal, align 4, !tbaa !9
|
|
||||||
%20 = add nsw i32 %19, %11
|
|
||||||
%21 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @.str.20, i32 0, i32 0), i32 %11, i32 %19)
|
|
||||||
%22 = load i32*, i32** @initCGRA, align 4, !tbaa !5
|
|
||||||
%23 = getelementptr inbounds i32, i32* %22, i32 %8
|
|
||||||
%24 = getelementptr inbounds i32, i32* %23, i32 5
|
|
||||||
store i32 %20, i32* %24, align 4, !tbaa !9
|
|
||||||
br label %25
|
|
||||||
|
|
||||||
25: ; preds = %18, %1
|
|
||||||
%26 = getelementptr inbounds [40 x i8], [40 x i8]* %4, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %26) #11
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %26, i8* nonnull align 1 dereferenceable(40) getelementptr inbounds ([40 x i8], [40 x i8]* @__const.configureCGRA.initCGRAfile, i32 0, i32 0), i32 40, i1 false)
|
|
||||||
%27 = call i32 @strlen(i8* nonnull %26)
|
|
||||||
%28 = getelementptr [40 x i8], [40 x i8]* %4, i32 0, i32 %27
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(14) %28, i8* nonnull align 1 dereferenceable(14) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.21, i32 0, i32 0), i32 14, i1 false)
|
|
||||||
%29 = call %struct._IO_FILE* @fopen(i8* nonnull %26, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.22, i32 0, i32 0))
|
|
||||||
br label %30
|
|
||||||
|
|
||||||
30: ; preds = %30, %25
|
|
||||||
%31 = phi i32 [ 0, %25 ], [ %37, %30 ]
|
|
||||||
%32 = load i32*, i32** @initCGRA, align 4, !tbaa !5
|
|
||||||
%33 = getelementptr inbounds i32, i32* %32, i32 %8
|
|
||||||
%34 = getelementptr inbounds i32, i32* %33, i32 %31
|
|
||||||
%35 = load i32, i32* %34, align 4, !tbaa !9
|
|
||||||
%36 = call i32 (%struct._IO_FILE*, i8*, ...) @fprintf(%struct._IO_FILE* %29, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.23, i32 0, i32 0), i32 %35)
|
|
||||||
%37 = add nuw nsw i32 %31, 1
|
|
||||||
%38 = icmp eq i32 %37, 7
|
|
||||||
br i1 %38, label %39, label %30, !llvm.loop !16
|
|
||||||
|
|
||||||
39: ; preds = %30
|
|
||||||
%40 = load i32*, i32** @epilogPtr, align 4, !tbaa !5
|
|
||||||
%41 = getelementptr inbounds i32, i32* %40, i32 %7
|
|
||||||
%42 = load i32, i32* %41, align 4, !tbaa !14
|
|
||||||
%43 = zext i32 %42 to i64
|
|
||||||
%44 = call i32 (%struct._IO_FILE*, i8*, ...) @fprintf(%struct._IO_FILE* %29, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.24, i32 0, i32 0), i64 %43)
|
|
||||||
%45 = load i32*, i32** @prologPtr, align 4, !tbaa !5
|
|
||||||
%46 = getelementptr inbounds i32, i32* %45, i32 %7
|
|
||||||
%47 = load i32, i32* %46, align 4, !tbaa !14
|
|
||||||
%48 = zext i32 %47 to i64
|
|
||||||
%49 = call i32 (%struct._IO_FILE*, i8*, ...) @fprintf(%struct._IO_FILE* %29, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.24, i32 0, i32 0), i64 %48)
|
|
||||||
%50 = load i32*, i32** @kernelPtr, align 4, !tbaa !5
|
|
||||||
%51 = getelementptr inbounds i32, i32* %50, i32 %7
|
|
||||||
%52 = load i32, i32* %51, align 4, !tbaa !14
|
|
||||||
%53 = zext i32 %52 to i64
|
|
||||||
%54 = call i32 (%struct._IO_FILE*, i8*, ...) @fprintf(%struct._IO_FILE* %29, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.24, i32 0, i32 0), i64 %53)
|
|
||||||
%55 = call i32 @fclose(%struct._IO_FILE* %29)
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %26) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 20, i8* nonnull %13) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 25, i8* nonnull %12) #11
|
|
||||||
ret i32 0
|
|
||||||
}
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
declare dso_local noundef i32 @fprintf(%struct._IO_FILE* nocapture noundef, i8* nocapture noundef readonly, ...) local_unnamed_addr #2
|
|
||||||
|
|
||||||
; Function Attrs: nounwind
|
|
||||||
define dso_local void @checkTotalLoops() local_unnamed_addr #3 {
|
|
||||||
%1 = alloca [40 x i8], align 1
|
|
||||||
%2 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @str.35, i32 0, i32 0))
|
|
||||||
%3 = getelementptr inbounds [40 x i8], [40 x i8]* %1, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %3) #11
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %3, i8* nonnull align 1 dereferenceable(40) getelementptr inbounds ([40 x i8], [40 x i8]* @__const.checkTotalLoops.myfile, i32 0, i32 0), i32 40, i1 false)
|
|
||||||
%4 = call %struct._IO_FILE* @fopen(i8* nonnull %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.7, i32 0, i32 0))
|
|
||||||
%5 = tail call i32 (%struct._IO_FILE*, i8*, ...) @__isoc99_fscanf(%struct._IO_FILE* %4, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i32 0, i32 0), i32* nonnull @totalLoops) #11
|
|
||||||
%6 = tail call i32 @fclose(%struct._IO_FILE* %4)
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %3) #11
|
|
||||||
ret void
|
|
||||||
}
|
|
||||||
|
|
||||||
; Function Attrs: nounwind
|
|
||||||
define dso_local i8* @runOnCGRA() local_unnamed_addr #3 {
|
|
||||||
%1 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @str.36, i32 0, i32 0))
|
|
||||||
tail call void asm sideeffect "mov r11,$0", "r"(i32 15) #11, !srcloc !17
|
|
||||||
ret i8* null
|
|
||||||
}
|
|
||||||
|
|
||||||
; Function Attrs: nounwind
|
|
||||||
define dso_local void @accelerateOnCGRA(i32 %0) local_unnamed_addr #3 {
|
|
||||||
%2 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([19 x i8], [19 x i8]* @str.37, i32 0, i32 0))
|
|
||||||
%3 = tail call i32 @configureCGRA(i32 %0)
|
|
||||||
%4 = tail call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @.str.30, i32 0, i32 0), i32 %0)
|
|
||||||
%5 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @str.36, i32 0, i32 0)) #11
|
|
||||||
tail call void asm sideeffect "mov r11,$0", "r"(i32 15) #11, !srcloc !17
|
|
||||||
ret void
|
|
||||||
}
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
define dso_local void @deleteCGRA() local_unnamed_addr #0 {
|
|
||||||
%1 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @str.38, i32 0, i32 0))
|
|
||||||
ret void
|
|
||||||
}
|
|
||||||
|
|
||||||
; Function Attrs: nounwind
|
|
||||||
define dso_local void @createCGRA() local_unnamed_addr #3 {
|
|
||||||
%1 = alloca [40 x i8], align 1
|
|
||||||
%2 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @str.39, i32 0, i32 0))
|
|
||||||
%3 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @str.35, i32 0, i32 0)) #11
|
|
||||||
%4 = getelementptr inbounds [40 x i8], [40 x i8]* %1, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %4) #11
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %4, i8* nonnull align 1 dereferenceable(40) getelementptr inbounds ([40 x i8], [40 x i8]* @__const.checkTotalLoops.myfile, i32 0, i32 0), i32 40, i1 false) #11
|
|
||||||
%5 = call %struct._IO_FILE* @fopen(i8* nonnull %4, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.7, i32 0, i32 0)) #11
|
|
||||||
%6 = tail call i32 (%struct._IO_FILE*, i8*, ...) @__isoc99_fscanf(%struct._IO_FILE* %5, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i32 0, i32 0), i32* nonnull @totalLoops) #11
|
|
||||||
%7 = tail call i32 @fclose(%struct._IO_FILE* %5) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %4) #11
|
|
||||||
%8 = load i32, i32* @totalLoops, align 4, !tbaa !9
|
|
||||||
%9 = mul i32 %8, 28
|
|
||||||
%10 = tail call noalias i8* @malloc(i32 %9) #11
|
|
||||||
store i8* %10, i8** bitcast (i32** @initCGRA to i8**), align 4, !tbaa !5
|
|
||||||
%11 = shl i32 %8, 2
|
|
||||||
%12 = tail call noalias i8* @malloc(i32 %11) #11
|
|
||||||
store i8* %12, i8** bitcast (i32** @prologPtr to i8**), align 4, !tbaa !5
|
|
||||||
%13 = tail call noalias i8* @malloc(i32 %11) #11
|
|
||||||
store i8* %13, i8** bitcast (i32** @kernelPtr to i8**), align 4, !tbaa !5
|
|
||||||
%14 = tail call noalias i8* @malloc(i32 %11) #11
|
|
||||||
store i8* %14, i8** bitcast (i32** @epilogPtr to i8**), align 4, !tbaa !5
|
|
||||||
%15 = icmp eq i32 %8, 0
|
|
||||||
br i1 %15, label %.loopexit, label %.preheader.preheader
|
|
||||||
|
|
||||||
.preheader.preheader: ; preds = %0
|
|
||||||
br label %.preheader
|
|
||||||
|
|
||||||
.preheader: ; preds = %.preheader, %.preheader.preheader
|
|
||||||
%16 = phi i32 [ %18, %.preheader ], [ 1, %.preheader.preheader ]
|
|
||||||
%17 = tail call i32 @initializeParameters(i32 %16)
|
|
||||||
%18 = add i32 %16, 1
|
|
||||||
%19 = load i32, i32* @totalLoops, align 4, !tbaa !9
|
|
||||||
%20 = icmp ugt i32 %18, %19
|
|
||||||
br i1 %20, label %.loopexit.loopexit, label %.preheader, !llvm.loop !18
|
|
||||||
|
|
||||||
.loopexit.loopexit: ; preds = %.preheader
|
|
||||||
br label %.loopexit
|
|
||||||
|
|
||||||
.loopexit: ; preds = %.loopexit.loopexit, %0
|
|
||||||
%21 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @str.40, i32 0, i32 0))
|
|
||||||
ret void
|
|
||||||
}
|
|
||||||
|
|
||||||
attributes #0 = { nofree nounwind "disable-tail-calls"="false" "frame-pointer"="none" "min-legal-vector-width"="0" "no-jump-tables"="false" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+armv7-a,+d32,+dsp,+fp64,+neon,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,-thumb-mode" }
|
|
||||||
attributes #1 = { nofree nounwind willreturn "disable-tail-calls"="false" "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+armv7-a,+d32,+dsp,+fp64,+neon,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,-thumb-mode" }
|
|
||||||
attributes #2 = { nofree nounwind "disable-tail-calls"="false" "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+armv7-a,+d32,+dsp,+fp64,+neon,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,-thumb-mode" }
|
|
||||||
attributes #3 = { nounwind "disable-tail-calls"="false" "frame-pointer"="none" "min-legal-vector-width"="0" "no-jump-tables"="false" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+armv7-a,+d32,+dsp,+fp64,+neon,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,-thumb-mode" }
|
|
||||||
attributes #4 = { nofree nounwind }
|
|
||||||
attributes #5 = { argmemonly nofree nosync nounwind willreturn writeonly }
|
|
||||||
attributes #6 = { argmemonly nofree nosync nounwind willreturn }
|
|
||||||
attributes #7 = { argmemonly nofree nounwind willreturn "disable-tail-calls"="false" "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+armv7-a,+d32,+dsp,+fp64,+neon,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,-thumb-mode" }
|
|
||||||
attributes #8 = { argmemonly nofree nounwind readonly willreturn }
|
|
||||||
attributes #9 = { inaccessiblememonly nofree nounwind willreturn "disable-tail-calls"="false" "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+armv7-a,+d32,+dsp,+fp64,+neon,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,-thumb-mode" }
|
|
||||||
attributes #10 = { "disable-tail-calls"="false" "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+armv7-a,+d32,+dsp,+fp64,+neon,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,-thumb-mode" }
|
|
||||||
attributes #11 = { nounwind }
|
|
||||||
|
|
||||||
!llvm.ident = !{!0, !0}
|
|
||||||
!llvm.module.flags = !{!1, !2, !3, !4}
|
|
||||||
|
|
||||||
!0 = !{!"clang version 13.0.0 (https://github.com/MPSLab-ASU/CCF-20.04/ 05285de7579f417a4d73ad832b8f4cc497f25235)"}
|
|
||||||
!1 = !{i32 7, !"Dwarf Version", i32 4}
|
|
||||||
!2 = !{i32 2, !"Debug Info Version", i32 3}
|
|
||||||
!3 = !{i32 1, !"wchar_size", i32 4}
|
|
||||||
!4 = !{i32 1, !"min_enum_size", i32 4}
|
|
||||||
!5 = !{!6, !6, i64 0}
|
|
||||||
!6 = !{!"any pointer", !7, i64 0}
|
|
||||||
!7 = !{!"omnipotent char", !8, i64 0}
|
|
||||||
!8 = !{!"Simple C/C++ TBAA"}
|
|
||||||
!9 = !{!10, !10, i64 0}
|
|
||||||
!10 = !{!"int", !7, i64 0}
|
|
||||||
!11 = distinct !{!11, !12, !13}
|
|
||||||
!12 = !{!"llvm.loop.mustprogress"}
|
|
||||||
!13 = !{!"llvm.loop.unroll.disable"}
|
|
||||||
!14 = !{!15, !15, i64 0}
|
|
||||||
!15 = !{!"long", !7, i64 0}
|
|
||||||
!16 = distinct !{!16, !12, !13}
|
|
||||||
!17 = !{i32 5341}
|
|
||||||
!18 = distinct !{!18, !12, !13}
|
|
|
@ -1,11 +1,13 @@
|
||||||
FILE1 = pow.c
|
FILE1 = pow.c
|
||||||
|
|
||||||
all: pow
|
all: pow pow_arm
|
||||||
|
|
||||||
CC = cgracc
|
CC = cgracc
|
||||||
ARMCC = arm-linux-gnueabi-gcc
|
ARMCC = arm-linux-gnueabi-gcc
|
||||||
LIB = -lm
|
LIB = -lm
|
||||||
pow: ${FILE1} Makefile
|
pow: ${FILE1} Makefile
|
||||||
$(CC) -static -O3 ${FILE1} -o pow
|
$(CC) -static -O3 ${FILE1} -o pow
|
||||||
|
pow_arm: ${FILE1} Makefile
|
||||||
|
$(ARMCC) -static -O3 ${FILE1} -o pow_cpu
|
||||||
clean:
|
clean:
|
||||||
rm -rf pow CGRAExec m5out *.bc *.ll
|
rm -rf pow CGRAExec m5out *.bc *.ll out pow_cpu CPU
|
||||||
|
|
|
@ -1,569 +0,0 @@
|
||||||
; ModuleID = 'temp.bc'
|
|
||||||
source_filename = "llvm-link"
|
|
||||||
target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"
|
|
||||||
target triple = "armv7-none-linux-eabi"
|
|
||||||
|
|
||||||
%struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i32, i16, i8, [1 x i8], i8*, i64, %struct._IO_codecvt*, %struct._IO_wide_data*, %struct._IO_FILE*, i8*, i32, i32, [40 x i8] }
|
|
||||||
%struct._IO_marker = type opaque
|
|
||||||
%struct._IO_codecvt = type opaque
|
|
||||||
%struct._IO_wide_data = type opaque
|
|
||||||
|
|
||||||
@.str = private unnamed_addr constant [24 x i8] c"***** %d^%d = %d *****\0A\00", align 1
|
|
||||||
@totalLoops = dso_local global i32 0, align 4
|
|
||||||
@dynamicTCVal = dso_local local_unnamed_addr global i32 0, align 4
|
|
||||||
@initCGRA = dso_local local_unnamed_addr global i32* null, align 4
|
|
||||||
@epilog = dso_local local_unnamed_addr global i32* null, align 4
|
|
||||||
@prolog = dso_local local_unnamed_addr global i32* null, align 4
|
|
||||||
@kernel = dso_local local_unnamed_addr global i32* null, align 4
|
|
||||||
@prologPtr = dso_local local_unnamed_addr global i32* null, align 4
|
|
||||||
@epilogPtr = dso_local local_unnamed_addr global i32* null, align 4
|
|
||||||
@kernelPtr = dso_local local_unnamed_addr global i32* null, align 4
|
|
||||||
@ArrPtr = dso_local local_unnamed_addr global i32* null, align 4
|
|
||||||
@pth = dso_local local_unnamed_addr global i32 0, align 4
|
|
||||||
@str = private unnamed_addr constant [34 x i8] c"from cgra.c Initialize Parameters\00", align 1
|
|
||||||
@__const.configureCGRA.directoryPath = private unnamed_addr constant [20 x i8] c"./CGRAExec/L\00\00\00\00\00\00\00\00", align 1
|
|
||||||
@.str.1 = private unnamed_addr constant [3 x i8] c"%d\00", align 1
|
|
||||||
@.str.2 = private unnamed_addr constant [16 x i8] c"/epilog_ins.bin\00", align 1
|
|
||||||
@.str.3 = private unnamed_addr constant [16 x i8] c"/prolog_ins.bin\00", align 1
|
|
||||||
@.str.4 = private unnamed_addr constant [16 x i8] c"/kernel_ins.bin\00", align 1
|
|
||||||
@.str.5 = private unnamed_addr constant [17 x i8] c"/CGRA_config.txt\00", align 1
|
|
||||||
@.str.6 = private unnamed_addr constant [3 x i8] c"rb\00", align 1
|
|
||||||
@.str.7 = private unnamed_addr constant [2 x i8] c"r\00", align 1
|
|
||||||
@.str.8 = private unnamed_addr constant [32 x i8] c"\0A**********EPISIZE %d*********\0A\00", align 1
|
|
||||||
@.str.9 = private unnamed_addr constant [32 x i8] c"\0A**********PROSIZE %d*********\0A\00", align 1
|
|
||||||
@.str.10 = private unnamed_addr constant [33 x i8] c"\0A**********KERNSIZE %d*********\0A\00", align 1
|
|
||||||
@.str.11 = private unnamed_addr constant [37 x i8] c"\0A******SIZE OF UNSIGNED LONG%d*****\0A\00", align 1
|
|
||||||
@.str.12 = private unnamed_addr constant [42 x i8] c"\0A******SIZE OF UNSIGNED LONG LONG%d*****\0A\00", align 1
|
|
||||||
@.str.13 = private unnamed_addr constant [26 x i8] c"/livevar_st_ins_count.txt\00", align 1
|
|
||||||
@.str.14 = private unnamed_addr constant [39 x i8] c"\0A************XDIM and YDim are %d, %d\0A\00", align 1
|
|
||||||
@.str.15 = private unnamed_addr constant [18 x i8] c"/kernel_count.txt\00", align 1
|
|
||||||
@.str.16 = private unnamed_addr constant [16 x i8] c"Loop Count: %d\0A\00", align 1
|
|
||||||
@.str.17 = private unnamed_addr constant [55 x i8] c"From FILE: PROLOGPC= %lx, EPILOGPC=%lx, KernelPC=%lx\0A\00", align 1
|
|
||||||
@str.34 = private unnamed_addr constant [14 x i8] c"configureCGRA\00", align 1
|
|
||||||
@.str.19 = private unnamed_addr constant [14 x i8] c"\0Aloopno = %s\0A\00", align 1
|
|
||||||
@.str.20 = private unnamed_addr constant [17 x i8] c"newTC = %d + %d\0A\00", align 1
|
|
||||||
@__const.configureCGRA.initCGRAfile = private unnamed_addr constant [40 x i8] c"./CGRAExec/L1\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", align 1
|
|
||||||
@.str.21 = private unnamed_addr constant [14 x i8] c"/initCGRA.txt\00", align 1
|
|
||||||
@.str.22 = private unnamed_addr constant [3 x i8] c"wb\00", align 1
|
|
||||||
@.str.23 = private unnamed_addr constant [4 x i8] c"%d\0A\00", align 1
|
|
||||||
@.str.24 = private unnamed_addr constant [5 x i8] c"%ld\0A\00", align 1
|
|
||||||
@str.35 = private unnamed_addr constant [16 x i8] c"checkTotalLoops\00", align 1
|
|
||||||
@__const.checkTotalLoops.myfile = private unnamed_addr constant [40 x i8] c"./CGRAExec/total_loops.txt\00\00\00\00\00\00\00\00\00\00\00\00\00\00", align 1
|
|
||||||
@.str.26 = private unnamed_addr constant [3 x i8] c"%u\00", align 1
|
|
||||||
@str.36 = private unnamed_addr constant [12 x i8] c"\0A\0ArunOnCGRA\00", align 1
|
|
||||||
@str.37 = private unnamed_addr constant [19 x i8] c"\0A\0AaccelerateOnCGRA\00", align 1
|
|
||||||
@.str.30 = private unnamed_addr constant [35 x i8] c"Core will execute loop %u on CGRA\0A\00", align 1
|
|
||||||
@str.38 = private unnamed_addr constant [15 x i8] c"\0Adeleting cgra\00", align 1
|
|
||||||
@str.39 = private unnamed_addr constant [11 x i8] c"createCGRA\00", align 1
|
|
||||||
@str.40 = private unnamed_addr constant [35 x i8] c"Main thread calling CGRA thread...\00", align 1
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
define dso_local i32 @main(i32 %0, i8** nocapture readonly %1) local_unnamed_addr #0 {
|
|
||||||
%3 = getelementptr inbounds i8*, i8** %1, i32 1
|
|
||||||
%4 = load i8*, i8** %3, align 4, !tbaa !5
|
|
||||||
%5 = tail call i32 @strtol(i8* nocapture nonnull %4, i8** null, i32 10) #11
|
|
||||||
%6 = icmp sgt i32 %5, 1
|
|
||||||
br i1 %6, label %.preheader.preheader, label %.loopexit
|
|
||||||
|
|
||||||
.preheader.preheader: ; preds = %2
|
|
||||||
br label %.preheader
|
|
||||||
|
|
||||||
.loopexit.loopexit: ; preds = %.preheader
|
|
||||||
br label %.loopexit
|
|
||||||
|
|
||||||
.loopexit: ; preds = %.loopexit.loopexit, %2
|
|
||||||
%7 = phi i32 [ 1, %2 ], [ %11, %.loopexit.loopexit ]
|
|
||||||
%8 = tail call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([24 x i8], [24 x i8]* @.str, i32 0, i32 0), i32 2, i32 %5, i32 %7)
|
|
||||||
ret i32 0
|
|
||||||
|
|
||||||
.preheader: ; preds = %.preheader.preheader, %.preheader
|
|
||||||
%9 = phi i32 [ %12, %.preheader ], [ 1, %.preheader.preheader ]
|
|
||||||
%10 = phi i32 [ %11, %.preheader ], [ 1, %.preheader.preheader ]
|
|
||||||
%11 = shl nsw i32 %10, 1
|
|
||||||
%12 = add nuw nsw i32 %9, 1
|
|
||||||
%13 = icmp eq i32 %12, %5
|
|
||||||
br i1 %13, label %.loopexit.loopexit, label %.preheader, !llvm.loop !9
|
|
||||||
}
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind willreturn
|
|
||||||
declare dso_local i32 @strtol(i8* readonly, i8** nocapture, i32) local_unnamed_addr #1
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
declare dso_local noundef i32 @printf(i8* nocapture noundef readonly, ...) local_unnamed_addr #2
|
|
||||||
|
|
||||||
; Function Attrs: nounwind
|
|
||||||
define dso_local i32 @initializeParameters(i32 %0) local_unnamed_addr #3 {
|
|
||||||
%2 = alloca [25 x i8], align 1
|
|
||||||
%3 = alloca [20 x i8], align 1
|
|
||||||
%4 = alloca [40 x i8], align 1
|
|
||||||
%5 = alloca [40 x i8], align 1
|
|
||||||
%6 = alloca [40 x i8], align 1
|
|
||||||
%7 = alloca [40 x i8], align 1
|
|
||||||
%8 = alloca [40 x i8], align 1
|
|
||||||
%9 = alloca i32, align 4
|
|
||||||
%10 = alloca i32, align 4
|
|
||||||
%11 = alloca i32, align 4
|
|
||||||
%12 = alloca i32, align 4
|
|
||||||
%13 = alloca [256 x i8], align 1
|
|
||||||
%14 = alloca [40 x i8], align 1
|
|
||||||
%15 = alloca i32, align 4
|
|
||||||
%16 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([34 x i8], [34 x i8]* @str, i32 0, i32 0))
|
|
||||||
%17 = load i32*, i32** @initCGRA, align 4, !tbaa !5
|
|
||||||
%18 = add i32 %0, -1
|
|
||||||
%19 = mul i32 %18, 7
|
|
||||||
%20 = getelementptr inbounds i32, i32* %17, i32 %19
|
|
||||||
store i32 2011168768, i32* %20, align 4, !tbaa !13
|
|
||||||
%21 = getelementptr inbounds i32, i32* %20, i32 1
|
|
||||||
store i32 2011168768, i32* %21, align 4, !tbaa !13
|
|
||||||
%22 = getelementptr inbounds i32, i32* %20, i32 2
|
|
||||||
%23 = getelementptr inbounds [25 x i8], [25 x i8]* %2, i32 0, i32 0
|
|
||||||
%24 = bitcast i32* %22 to i8*
|
|
||||||
tail call void @llvm.memset.p0i8.i64(i8* nonnull align 4 dereferenceable(20) %24, i8 0, i64 20, i1 false)
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 25, i8* nonnull %23) #11
|
|
||||||
%25 = getelementptr inbounds [20 x i8], [20 x i8]* %3, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 20, i8* nonnull %25) #11
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(20) %25, i8* nonnull align 1 dereferenceable(20) getelementptr inbounds ([20 x i8], [20 x i8]* @__const.configureCGRA.directoryPath, i32 0, i32 0), i32 20, i1 false)
|
|
||||||
%26 = call i32 (i8*, i8*, ...) @sprintf(i8* nonnull %23, i8* nonnull dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i32 0, i32 0), i32 %0) #11
|
|
||||||
%27 = call i8* @strcat(i8* nonnull %25, i8* nonnull %23) #11
|
|
||||||
%28 = getelementptr inbounds [40 x i8], [40 x i8]* %4, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %28) #11
|
|
||||||
call void @llvm.memset.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %28, i8 0, i32 40, i1 false)
|
|
||||||
%29 = getelementptr inbounds [40 x i8], [40 x i8]* %5, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %29) #11
|
|
||||||
call void @llvm.memset.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %29, i8 0, i32 40, i1 false)
|
|
||||||
%30 = getelementptr inbounds [40 x i8], [40 x i8]* %6, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %30) #11
|
|
||||||
call void @llvm.memset.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %30, i8 0, i32 40, i1 false)
|
|
||||||
%31 = getelementptr inbounds [40 x i8], [40 x i8]* %7, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %31) #11
|
|
||||||
call void @llvm.memset.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %31, i8 0, i32 40, i1 false)
|
|
||||||
%32 = getelementptr inbounds [40 x i8], [40 x i8]* %8, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %32) #11
|
|
||||||
call void @llvm.memset.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %32, i8 0, i32 40, i1 false)
|
|
||||||
%33 = call i8* @strcat(i8* nonnull %28, i8* nonnull %25) #11
|
|
||||||
%34 = call i32 @strlen(i8* nonnull %28)
|
|
||||||
%35 = getelementptr [40 x i8], [40 x i8]* %4, i32 0, i32 %34
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(16) %35, i8* nonnull align 1 dereferenceable(16) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i32 0, i32 0), i32 16, i1 false)
|
|
||||||
%36 = call i8* @strcat(i8* nonnull %29, i8* nonnull %25) #11
|
|
||||||
%37 = call i32 @strlen(i8* nonnull %29)
|
|
||||||
%38 = getelementptr [40 x i8], [40 x i8]* %5, i32 0, i32 %37
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(16) %38, i8* nonnull align 1 dereferenceable(16) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.3, i32 0, i32 0), i32 16, i1 false)
|
|
||||||
%39 = call i8* @strcat(i8* nonnull %30, i8* nonnull %25) #11
|
|
||||||
%40 = call i32 @strlen(i8* nonnull %30)
|
|
||||||
%41 = getelementptr [40 x i8], [40 x i8]* %6, i32 0, i32 %40
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(16) %41, i8* nonnull align 1 dereferenceable(16) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.4, i32 0, i32 0), i32 16, i1 false)
|
|
||||||
%42 = call i8* @strcat(i8* nonnull %32, i8* nonnull %25) #11
|
|
||||||
%43 = call i32 @strlen(i8* nonnull %32)
|
|
||||||
%44 = getelementptr [40 x i8], [40 x i8]* %8, i32 0, i32 %43
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(17) %44, i8* nonnull align 1 dereferenceable(17) getelementptr inbounds ([17 x i8], [17 x i8]* @.str.5, i32 0, i32 0), i32 17, i1 false)
|
|
||||||
%45 = call %struct._IO_FILE* @fopen(i8* nonnull %28, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.6, i32 0, i32 0))
|
|
||||||
%46 = call %struct._IO_FILE* @fopen(i8* nonnull %29, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.6, i32 0, i32 0))
|
|
||||||
%47 = call %struct._IO_FILE* @fopen(i8* nonnull %30, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.6, i32 0, i32 0))
|
|
||||||
%48 = call %struct._IO_FILE* @fopen(i8* nonnull %32, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.7, i32 0, i32 0))
|
|
||||||
%49 = bitcast i32* %9 to i8*
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %49) #11
|
|
||||||
%50 = bitcast i32* %10 to i8*
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %50) #11
|
|
||||||
%51 = bitcast i32* %11 to i8*
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %51) #11
|
|
||||||
%52 = bitcast i32* %12 to i8*
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %52) #11
|
|
||||||
%53 = call i32 @fread(i8* nonnull %49, i32 4, i32 1, %struct._IO_FILE* %45)
|
|
||||||
%54 = call i32 @fread(i8* nonnull %50, i32 4, i32 1, %struct._IO_FILE* %46)
|
|
||||||
%55 = call i32 @fread(i8* nonnull %51, i32 4, i32 1, %struct._IO_FILE* %47)
|
|
||||||
%56 = load i32, i32* %9, align 4, !tbaa !13
|
|
||||||
%57 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.8, i32 0, i32 0), i32 %56)
|
|
||||||
%58 = load i32, i32* %10, align 4, !tbaa !13
|
|
||||||
%59 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.9, i32 0, i32 0), i32 %58)
|
|
||||||
%60 = load i32, i32* %11, align 4, !tbaa !13
|
|
||||||
%61 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([33 x i8], [33 x i8]* @.str.10, i32 0, i32 0), i32 %60)
|
|
||||||
%62 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([37 x i8], [37 x i8]* @.str.11, i32 0, i32 0), i32 4)
|
|
||||||
%63 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([42 x i8], [42 x i8]* @.str.12, i32 0, i32 0), i32 8)
|
|
||||||
%64 = shl i32 %56, 3
|
|
||||||
%65 = call noalias i8* @malloc(i32 %64) #11
|
|
||||||
store i8* %65, i8** bitcast (i32** @epilog to i8**), align 4, !tbaa !5
|
|
||||||
%66 = shl i32 %58, 3
|
|
||||||
%67 = call noalias i8* @malloc(i32 %66) #11
|
|
||||||
store i8* %67, i8** bitcast (i32** @prolog to i8**), align 4, !tbaa !5
|
|
||||||
%68 = shl i32 %60, 3
|
|
||||||
%69 = call noalias i8* @malloc(i32 %68) #11
|
|
||||||
store i8* %69, i8** bitcast (i32** @kernel to i8**), align 4, !tbaa !5
|
|
||||||
%70 = call i32 @fread(i8* %65, i32 8, i32 %56, %struct._IO_FILE* %45)
|
|
||||||
%71 = load i8*, i8** bitcast (i32** @prolog to i8**), align 4, !tbaa !5
|
|
||||||
%72 = call i32 @fread(i8* %71, i32 8, i32 %58, %struct._IO_FILE* %46)
|
|
||||||
%73 = load i8*, i8** bitcast (i32** @kernel to i8**), align 4, !tbaa !5
|
|
||||||
%74 = call i32 @fread(i8* %73, i32 8, i32 %60, %struct._IO_FILE* %47)
|
|
||||||
%75 = call i8* @strcat(i8* nonnull %31, i8* nonnull %25) #11
|
|
||||||
%76 = call i32 @strlen(i8* nonnull %31)
|
|
||||||
%77 = getelementptr [40 x i8], [40 x i8]* %7, i32 0, i32 %76
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(26) %77, i8* nonnull align 1 dereferenceable(26) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.13, i32 0, i32 0), i32 26, i1 false)
|
|
||||||
%78 = call %struct._IO_FILE* @fopen(i8* nonnull %31, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.7, i32 0, i32 0))
|
|
||||||
%79 = call i32 (%struct._IO_FILE*, i8*, ...) @__isoc99_fscanf(%struct._IO_FILE* %78, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i32 0, i32 0), i32* nonnull %12) #11
|
|
||||||
%80 = getelementptr inbounds [256 x i8], [256 x i8]* %13, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 256, i8* nonnull %80) #11
|
|
||||||
%81 = call i8* @fgets(i8* nonnull %80, i32 256, %struct._IO_FILE* %48)
|
|
||||||
%82 = icmp eq i8* %81, null
|
|
||||||
br i1 %82, label %.loopexit, label %.preheader.preheader
|
|
||||||
|
|
||||||
.preheader.preheader: ; preds = %1
|
|
||||||
br label %.preheader
|
|
||||||
|
|
||||||
.preheader: ; preds = %.preheader.preheader, %94
|
|
||||||
%83 = phi i32 [ %96, %94 ], [ 0, %.preheader.preheader ]
|
|
||||||
%84 = phi i32 [ %95, %94 ], [ 0, %.preheader.preheader ]
|
|
||||||
%85 = phi i32 [ %86, %94 ], [ 0, %.preheader.preheader ]
|
|
||||||
%86 = add nuw nsw i32 %85, 1
|
|
||||||
%87 = icmp eq i32 %85, 0
|
|
||||||
br i1 %87, label %88, label %90
|
|
||||||
|
|
||||||
88: ; preds = %.preheader
|
|
||||||
%89 = call i32 @strtol(i8* nocapture nonnull %80, i8** null, i32 10) #11
|
|
||||||
br label %94
|
|
||||||
|
|
||||||
90: ; preds = %.preheader
|
|
||||||
%91 = icmp eq i32 %86, 2
|
|
||||||
br i1 %91, label %92, label %.loopexit.loopexit
|
|
||||||
|
|
||||||
92: ; preds = %90
|
|
||||||
%93 = call i32 @strtol(i8* nocapture nonnull %80, i8** null, i32 10) #11
|
|
||||||
br label %94
|
|
||||||
|
|
||||||
94: ; preds = %92, %88
|
|
||||||
%95 = phi i32 [ %84, %88 ], [ %93, %92 ]
|
|
||||||
%96 = phi i32 [ %89, %88 ], [ %83, %92 ]
|
|
||||||
%97 = call i8* @fgets(i8* nonnull %80, i32 256, %struct._IO_FILE* %48)
|
|
||||||
%98 = icmp eq i8* %97, null
|
|
||||||
br i1 %98, label %.loopexit.loopexit, label %.preheader, !llvm.loop !15
|
|
||||||
|
|
||||||
.loopexit.loopexit: ; preds = %94, %90
|
|
||||||
%.ph = phi i32 [ %95, %94 ], [ %84, %90 ]
|
|
||||||
%.ph6 = phi i32 [ %96, %94 ], [ %83, %90 ]
|
|
||||||
br label %.loopexit
|
|
||||||
|
|
||||||
.loopexit: ; preds = %.loopexit.loopexit, %1
|
|
||||||
%99 = phi i32 [ 0, %1 ], [ %.ph, %.loopexit.loopexit ]
|
|
||||||
%100 = phi i32 [ 0, %1 ], [ %.ph6, %.loopexit.loopexit ]
|
|
||||||
%101 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.14, i32 0, i32 0), i32 %100, i32 %99)
|
|
||||||
%102 = mul nsw i32 %100, %99
|
|
||||||
%103 = sdiv i32 %60, %102
|
|
||||||
%104 = sdiv i32 %56, %102
|
|
||||||
%105 = sdiv i32 %58, %102
|
|
||||||
%106 = load i32*, i32** @initCGRA, align 4, !tbaa !5
|
|
||||||
%107 = getelementptr inbounds i32, i32* %106, i32 %19
|
|
||||||
%108 = getelementptr inbounds i32, i32* %107, i32 2
|
|
||||||
store i32 %103, i32* %108, align 4, !tbaa !13
|
|
||||||
%109 = getelementptr inbounds i32, i32* %107, i32 3
|
|
||||||
store i32 %104, i32* %109, align 4, !tbaa !13
|
|
||||||
%110 = getelementptr inbounds i32, i32* %107, i32 4
|
|
||||||
store i32 %105, i32* %110, align 4, !tbaa !13
|
|
||||||
%111 = load i32, i32* %12, align 4, !tbaa !13
|
|
||||||
%112 = sdiv i32 %111, %102
|
|
||||||
%113 = getelementptr inbounds i32, i32* %107, i32 6
|
|
||||||
store i32 %112, i32* %113, align 4, !tbaa !13
|
|
||||||
%114 = call i32 @fclose(%struct._IO_FILE* %45)
|
|
||||||
%115 = call i32 @fclose(%struct._IO_FILE* %46)
|
|
||||||
%116 = call i32 @fclose(%struct._IO_FILE* %47)
|
|
||||||
%117 = call i32 @fclose(%struct._IO_FILE* %78)
|
|
||||||
%118 = call i32 @fclose(%struct._IO_FILE* %48)
|
|
||||||
%119 = getelementptr inbounds [40 x i8], [40 x i8]* %14, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %119) #11
|
|
||||||
call void @llvm.memset.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %119, i8 0, i32 40, i1 false)
|
|
||||||
%120 = call i8* @strcat(i8* nonnull %119, i8* nonnull %25) #11
|
|
||||||
%121 = call i32 @strlen(i8* nonnull %119)
|
|
||||||
%122 = getelementptr [40 x i8], [40 x i8]* %14, i32 0, i32 %121
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(18) %122, i8* nonnull align 1 dereferenceable(18) getelementptr inbounds ([18 x i8], [18 x i8]* @.str.15, i32 0, i32 0), i32 18, i1 false)
|
|
||||||
%123 = bitcast i32* %15 to i8*
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %123) #11
|
|
||||||
store i32 0, i32* %15, align 4, !tbaa !13
|
|
||||||
%124 = call %struct._IO_FILE* @fopen(i8* nonnull %119, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.7, i32 0, i32 0))
|
|
||||||
%125 = call i32 (%struct._IO_FILE*, i8*, ...) @__isoc99_fscanf(%struct._IO_FILE* %124, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i32 0, i32 0), i32* nonnull %15) #11
|
|
||||||
%126 = call i32 @fclose(%struct._IO_FILE* %124)
|
|
||||||
%127 = load i32, i32* %15, align 4, !tbaa !13
|
|
||||||
%128 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.16, i32 0, i32 0), i32 %127)
|
|
||||||
%129 = load i32, i32* %15, align 4, !tbaa !13
|
|
||||||
%130 = load i32*, i32** @initCGRA, align 4, !tbaa !5
|
|
||||||
%131 = getelementptr inbounds i32, i32* %130, i32 %19
|
|
||||||
%132 = getelementptr inbounds i32, i32* %131, i32 5
|
|
||||||
store i32 %129, i32* %132, align 4, !tbaa !13
|
|
||||||
%133 = load i32*, i32** @prolog, align 4, !tbaa !5
|
|
||||||
%134 = ptrtoint i32* %133 to i32
|
|
||||||
%135 = load i32*, i32** @epilog, align 4, !tbaa !5
|
|
||||||
%136 = ptrtoint i32* %135 to i32
|
|
||||||
%137 = load i32*, i32** @kernel, align 4, !tbaa !5
|
|
||||||
%138 = ptrtoint i32* %137 to i32
|
|
||||||
%139 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([55 x i8], [55 x i8]* @.str.17, i32 0, i32 0), i32 %134, i32 %136, i32 %138)
|
|
||||||
%140 = load i32*, i32** @prolog, align 4, !tbaa !5
|
|
||||||
%141 = ptrtoint i32* %140 to i32
|
|
||||||
%142 = load i32*, i32** @prologPtr, align 4, !tbaa !5
|
|
||||||
%143 = getelementptr inbounds i32, i32* %142, i32 %18
|
|
||||||
store i32 %141, i32* %143, align 4, !tbaa !16
|
|
||||||
%144 = load i32*, i32** @epilog, align 4, !tbaa !5
|
|
||||||
%145 = ptrtoint i32* %144 to i32
|
|
||||||
%146 = load i32*, i32** @epilogPtr, align 4, !tbaa !5
|
|
||||||
%147 = getelementptr inbounds i32, i32* %146, i32 %18
|
|
||||||
store i32 %145, i32* %147, align 4, !tbaa !16
|
|
||||||
%148 = load i32*, i32** @kernel, align 4, !tbaa !5
|
|
||||||
%149 = ptrtoint i32* %148 to i32
|
|
||||||
%150 = load i32*, i32** @kernelPtr, align 4, !tbaa !5
|
|
||||||
%151 = getelementptr inbounds i32, i32* %150, i32 %18
|
|
||||||
store i32 %149, i32* %151, align 4, !tbaa !16
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %123) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %119) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 256, i8* nonnull %80) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %52) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %51) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %50) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %49) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %32) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %31) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %30) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %29) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %28) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 20, i8* nonnull %25) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 25, i8* nonnull %23) #11
|
|
||||||
ret i32 0
|
|
||||||
}
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
declare noundef i32 @puts(i8* nocapture noundef readonly) local_unnamed_addr #4
|
|
||||||
|
|
||||||
; Function Attrs: argmemonly nofree nosync nounwind willreturn writeonly
|
|
||||||
declare void @llvm.memset.p0i8.i64(i8* nocapture writeonly, i8, i64, i1 immarg) #5
|
|
||||||
|
|
||||||
; Function Attrs: argmemonly nofree nosync nounwind willreturn
|
|
||||||
declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) #6
|
|
||||||
|
|
||||||
; Function Attrs: argmemonly nofree nosync nounwind willreturn
|
|
||||||
declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #6
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
declare dso_local noundef i32 @sprintf(i8* noalias nocapture noundef writeonly, i8* nocapture noundef readonly, ...) local_unnamed_addr #2
|
|
||||||
|
|
||||||
; Function Attrs: argmemonly nofree nounwind willreturn
|
|
||||||
declare dso_local i8* @strcat(i8* noalias returned writeonly, i8* noalias nocapture readonly) local_unnamed_addr #7
|
|
||||||
|
|
||||||
; Function Attrs: argmemonly nofree nosync nounwind willreturn writeonly
|
|
||||||
declare void @llvm.memset.p0i8.i32(i8* nocapture writeonly, i8, i32, i1 immarg) #5
|
|
||||||
|
|
||||||
; Function Attrs: argmemonly nofree nounwind readonly willreturn
|
|
||||||
declare i32 @strlen(i8* nocapture) local_unnamed_addr #8
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
declare dso_local noalias noundef %struct._IO_FILE* @fopen(i8* nocapture noundef readonly, i8* nocapture noundef readonly) local_unnamed_addr #2
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
declare dso_local noundef i32 @fread(i8* nocapture noundef, i32 noundef, i32 noundef, %struct._IO_FILE* nocapture noundef) local_unnamed_addr #2
|
|
||||||
|
|
||||||
; Function Attrs: inaccessiblememonly nofree nounwind willreturn
|
|
||||||
declare dso_local noalias noundef i8* @malloc(i32) local_unnamed_addr #9
|
|
||||||
|
|
||||||
declare dso_local i32 @__isoc99_fscanf(%struct._IO_FILE*, i8*, ...) local_unnamed_addr #10
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
declare dso_local noundef i8* @fgets(i8* noundef, i32 noundef, %struct._IO_FILE* nocapture noundef) local_unnamed_addr #2
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
declare dso_local noundef i32 @fclose(%struct._IO_FILE* nocapture noundef) local_unnamed_addr #2
|
|
||||||
|
|
||||||
; Function Attrs: argmemonly nofree nosync nounwind willreturn
|
|
||||||
declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #6
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
define dso_local i32 @configureCGRA(i32 %0) local_unnamed_addr #0 {
|
|
||||||
%2 = alloca [25 x i8], align 1
|
|
||||||
%3 = alloca [20 x i8], align 1
|
|
||||||
%4 = alloca [40 x i8], align 1
|
|
||||||
%5 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @str.34, i32 0, i32 0))
|
|
||||||
%6 = load i32*, i32** @initCGRA, align 4, !tbaa !5
|
|
||||||
%7 = add i32 %0, -1
|
|
||||||
%8 = mul i32 %7, 7
|
|
||||||
%9 = getelementptr inbounds i32, i32* %6, i32 %8
|
|
||||||
%10 = getelementptr inbounds i32, i32* %9, i32 5
|
|
||||||
%11 = load i32, i32* %10, align 4, !tbaa !13
|
|
||||||
%12 = getelementptr inbounds [25 x i8], [25 x i8]* %2, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 25, i8* nonnull %12) #11
|
|
||||||
%13 = getelementptr inbounds [20 x i8], [20 x i8]* %3, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 20, i8* nonnull %13) #11
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(20) %13, i8* nonnull align 1 dereferenceable(20) getelementptr inbounds ([20 x i8], [20 x i8]* @__const.configureCGRA.directoryPath, i32 0, i32 0), i32 20, i1 false)
|
|
||||||
%14 = call i32 (i8*, i8*, ...) @sprintf(i8* nonnull %12, i8* nonnull dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i32 0, i32 0), i32 %0) #11
|
|
||||||
%15 = call i8* @strcat(i8* nonnull %13, i8* nonnull %12) #11
|
|
||||||
%16 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.19, i32 0, i32 0), i8* nonnull %12)
|
|
||||||
%17 = icmp slt i32 %11, 1
|
|
||||||
br i1 %17, label %18, label %25
|
|
||||||
|
|
||||||
18: ; preds = %1
|
|
||||||
%19 = load i32, i32* @dynamicTCVal, align 4, !tbaa !13
|
|
||||||
%20 = add nsw i32 %19, %11
|
|
||||||
%21 = call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @.str.20, i32 0, i32 0), i32 %11, i32 %19)
|
|
||||||
%22 = load i32*, i32** @initCGRA, align 4, !tbaa !5
|
|
||||||
%23 = getelementptr inbounds i32, i32* %22, i32 %8
|
|
||||||
%24 = getelementptr inbounds i32, i32* %23, i32 5
|
|
||||||
store i32 %20, i32* %24, align 4, !tbaa !13
|
|
||||||
br label %25
|
|
||||||
|
|
||||||
25: ; preds = %18, %1
|
|
||||||
%26 = getelementptr inbounds [40 x i8], [40 x i8]* %4, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %26) #11
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %26, i8* nonnull align 1 dereferenceable(40) getelementptr inbounds ([40 x i8], [40 x i8]* @__const.configureCGRA.initCGRAfile, i32 0, i32 0), i32 40, i1 false)
|
|
||||||
%27 = call i32 @strlen(i8* nonnull %26)
|
|
||||||
%28 = getelementptr [40 x i8], [40 x i8]* %4, i32 0, i32 %27
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(14) %28, i8* nonnull align 1 dereferenceable(14) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.21, i32 0, i32 0), i32 14, i1 false)
|
|
||||||
%29 = call %struct._IO_FILE* @fopen(i8* nonnull %26, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.22, i32 0, i32 0))
|
|
||||||
br label %30
|
|
||||||
|
|
||||||
30: ; preds = %30, %25
|
|
||||||
%31 = phi i32 [ 0, %25 ], [ %37, %30 ]
|
|
||||||
%32 = load i32*, i32** @initCGRA, align 4, !tbaa !5
|
|
||||||
%33 = getelementptr inbounds i32, i32* %32, i32 %8
|
|
||||||
%34 = getelementptr inbounds i32, i32* %33, i32 %31
|
|
||||||
%35 = load i32, i32* %34, align 4, !tbaa !13
|
|
||||||
%36 = call i32 (%struct._IO_FILE*, i8*, ...) @fprintf(%struct._IO_FILE* %29, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.23, i32 0, i32 0), i32 %35)
|
|
||||||
%37 = add nuw nsw i32 %31, 1
|
|
||||||
%38 = icmp eq i32 %37, 7
|
|
||||||
br i1 %38, label %39, label %30, !llvm.loop !18
|
|
||||||
|
|
||||||
39: ; preds = %30
|
|
||||||
%40 = load i32*, i32** @epilogPtr, align 4, !tbaa !5
|
|
||||||
%41 = getelementptr inbounds i32, i32* %40, i32 %7
|
|
||||||
%42 = load i32, i32* %41, align 4, !tbaa !16
|
|
||||||
%43 = zext i32 %42 to i64
|
|
||||||
%44 = call i32 (%struct._IO_FILE*, i8*, ...) @fprintf(%struct._IO_FILE* %29, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.24, i32 0, i32 0), i64 %43)
|
|
||||||
%45 = load i32*, i32** @prologPtr, align 4, !tbaa !5
|
|
||||||
%46 = getelementptr inbounds i32, i32* %45, i32 %7
|
|
||||||
%47 = load i32, i32* %46, align 4, !tbaa !16
|
|
||||||
%48 = zext i32 %47 to i64
|
|
||||||
%49 = call i32 (%struct._IO_FILE*, i8*, ...) @fprintf(%struct._IO_FILE* %29, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.24, i32 0, i32 0), i64 %48)
|
|
||||||
%50 = load i32*, i32** @kernelPtr, align 4, !tbaa !5
|
|
||||||
%51 = getelementptr inbounds i32, i32* %50, i32 %7
|
|
||||||
%52 = load i32, i32* %51, align 4, !tbaa !16
|
|
||||||
%53 = zext i32 %52 to i64
|
|
||||||
%54 = call i32 (%struct._IO_FILE*, i8*, ...) @fprintf(%struct._IO_FILE* %29, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.24, i32 0, i32 0), i64 %53)
|
|
||||||
%55 = call i32 @fclose(%struct._IO_FILE* %29)
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %26) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 20, i8* nonnull %13) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 25, i8* nonnull %12) #11
|
|
||||||
ret i32 0
|
|
||||||
}
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
declare dso_local noundef i32 @fprintf(%struct._IO_FILE* nocapture noundef, i8* nocapture noundef readonly, ...) local_unnamed_addr #2
|
|
||||||
|
|
||||||
; Function Attrs: nounwind
|
|
||||||
define dso_local void @checkTotalLoops() local_unnamed_addr #3 {
|
|
||||||
%1 = alloca [40 x i8], align 1
|
|
||||||
%2 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @str.35, i32 0, i32 0))
|
|
||||||
%3 = getelementptr inbounds [40 x i8], [40 x i8]* %1, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %3) #11
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %3, i8* nonnull align 1 dereferenceable(40) getelementptr inbounds ([40 x i8], [40 x i8]* @__const.checkTotalLoops.myfile, i32 0, i32 0), i32 40, i1 false)
|
|
||||||
%4 = call %struct._IO_FILE* @fopen(i8* nonnull %3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.7, i32 0, i32 0))
|
|
||||||
%5 = tail call i32 (%struct._IO_FILE*, i8*, ...) @__isoc99_fscanf(%struct._IO_FILE* %4, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i32 0, i32 0), i32* nonnull @totalLoops) #11
|
|
||||||
%6 = tail call i32 @fclose(%struct._IO_FILE* %4)
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %3) #11
|
|
||||||
ret void
|
|
||||||
}
|
|
||||||
|
|
||||||
; Function Attrs: nounwind
|
|
||||||
define dso_local i8* @runOnCGRA() local_unnamed_addr #3 {
|
|
||||||
%1 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @str.36, i32 0, i32 0))
|
|
||||||
tail call void asm sideeffect "mov r11,$0", "r"(i32 15) #11, !srcloc !19
|
|
||||||
ret i8* null
|
|
||||||
}
|
|
||||||
|
|
||||||
; Function Attrs: nounwind
|
|
||||||
define dso_local void @accelerateOnCGRA(i32 %0) local_unnamed_addr #3 {
|
|
||||||
%2 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([19 x i8], [19 x i8]* @str.37, i32 0, i32 0))
|
|
||||||
%3 = tail call i32 @configureCGRA(i32 %0)
|
|
||||||
%4 = tail call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @.str.30, i32 0, i32 0), i32 %0)
|
|
||||||
%5 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @str.36, i32 0, i32 0)) #11
|
|
||||||
tail call void asm sideeffect "mov r11,$0", "r"(i32 15) #11, !srcloc !19
|
|
||||||
ret void
|
|
||||||
}
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
define dso_local void @deleteCGRA() local_unnamed_addr #0 {
|
|
||||||
%1 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @str.38, i32 0, i32 0))
|
|
||||||
ret void
|
|
||||||
}
|
|
||||||
|
|
||||||
; Function Attrs: nounwind
|
|
||||||
define dso_local void @createCGRA() local_unnamed_addr #3 {
|
|
||||||
%1 = alloca [40 x i8], align 1
|
|
||||||
%2 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @str.39, i32 0, i32 0))
|
|
||||||
%3 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @str.35, i32 0, i32 0)) #11
|
|
||||||
%4 = getelementptr inbounds [40 x i8], [40 x i8]* %1, i32 0, i32 0
|
|
||||||
call void @llvm.lifetime.start.p0i8(i64 40, i8* nonnull %4) #11
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* nonnull align 1 dereferenceable(40) %4, i8* nonnull align 1 dereferenceable(40) getelementptr inbounds ([40 x i8], [40 x i8]* @__const.checkTotalLoops.myfile, i32 0, i32 0), i32 40, i1 false) #11
|
|
||||||
%5 = call %struct._IO_FILE* @fopen(i8* nonnull %4, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.7, i32 0, i32 0)) #11
|
|
||||||
%6 = tail call i32 (%struct._IO_FILE*, i8*, ...) @__isoc99_fscanf(%struct._IO_FILE* %5, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i32 0, i32 0), i32* nonnull @totalLoops) #11
|
|
||||||
%7 = tail call i32 @fclose(%struct._IO_FILE* %5) #11
|
|
||||||
call void @llvm.lifetime.end.p0i8(i64 40, i8* nonnull %4) #11
|
|
||||||
%8 = load i32, i32* @totalLoops, align 4, !tbaa !13
|
|
||||||
%9 = mul i32 %8, 28
|
|
||||||
%10 = tail call noalias i8* @malloc(i32 %9) #11
|
|
||||||
store i8* %10, i8** bitcast (i32** @initCGRA to i8**), align 4, !tbaa !5
|
|
||||||
%11 = shl i32 %8, 2
|
|
||||||
%12 = tail call noalias i8* @malloc(i32 %11) #11
|
|
||||||
store i8* %12, i8** bitcast (i32** @prologPtr to i8**), align 4, !tbaa !5
|
|
||||||
%13 = tail call noalias i8* @malloc(i32 %11) #11
|
|
||||||
store i8* %13, i8** bitcast (i32** @kernelPtr to i8**), align 4, !tbaa !5
|
|
||||||
%14 = tail call noalias i8* @malloc(i32 %11) #11
|
|
||||||
store i8* %14, i8** bitcast (i32** @epilogPtr to i8**), align 4, !tbaa !5
|
|
||||||
%15 = icmp eq i32 %8, 0
|
|
||||||
br i1 %15, label %.loopexit, label %.preheader.preheader
|
|
||||||
|
|
||||||
.preheader.preheader: ; preds = %0
|
|
||||||
br label %.preheader
|
|
||||||
|
|
||||||
.preheader: ; preds = %.preheader.preheader, %.preheader
|
|
||||||
%16 = phi i32 [ %18, %.preheader ], [ 1, %.preheader.preheader ]
|
|
||||||
%17 = tail call i32 @initializeParameters(i32 %16)
|
|
||||||
%18 = add i32 %16, 1
|
|
||||||
%19 = load i32, i32* @totalLoops, align 4, !tbaa !13
|
|
||||||
%20 = icmp ugt i32 %18, %19
|
|
||||||
br i1 %20, label %.loopexit.loopexit, label %.preheader, !llvm.loop !20
|
|
||||||
|
|
||||||
.loopexit.loopexit: ; preds = %.preheader
|
|
||||||
br label %.loopexit
|
|
||||||
|
|
||||||
.loopexit: ; preds = %.loopexit.loopexit, %0
|
|
||||||
%21 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @str.40, i32 0, i32 0))
|
|
||||||
ret void
|
|
||||||
}
|
|
||||||
|
|
||||||
attributes #0 = { nofree nounwind "disable-tail-calls"="false" "frame-pointer"="none" "min-legal-vector-width"="0" "no-jump-tables"="false" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+armv7-a,+d32,+dsp,+fp64,+neon,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,-thumb-mode" }
|
|
||||||
attributes #1 = { nofree nounwind willreturn "disable-tail-calls"="false" "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+armv7-a,+d32,+dsp,+fp64,+neon,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,-thumb-mode" }
|
|
||||||
attributes #2 = { nofree nounwind "disable-tail-calls"="false" "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+armv7-a,+d32,+dsp,+fp64,+neon,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,-thumb-mode" }
|
|
||||||
attributes #3 = { nounwind "disable-tail-calls"="false" "frame-pointer"="none" "min-legal-vector-width"="0" "no-jump-tables"="false" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+armv7-a,+d32,+dsp,+fp64,+neon,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,-thumb-mode" }
|
|
||||||
attributes #4 = { nofree nounwind }
|
|
||||||
attributes #5 = { argmemonly nofree nosync nounwind willreturn writeonly }
|
|
||||||
attributes #6 = { argmemonly nofree nosync nounwind willreturn }
|
|
||||||
attributes #7 = { argmemonly nofree nounwind willreturn "disable-tail-calls"="false" "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+armv7-a,+d32,+dsp,+fp64,+neon,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,-thumb-mode" }
|
|
||||||
attributes #8 = { argmemonly nofree nounwind readonly willreturn }
|
|
||||||
attributes #9 = { inaccessiblememonly nofree nounwind willreturn "disable-tail-calls"="false" "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+armv7-a,+d32,+dsp,+fp64,+neon,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,-thumb-mode" }
|
|
||||||
attributes #10 = { "disable-tail-calls"="false" "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+armv7-a,+d32,+dsp,+fp64,+neon,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,-thumb-mode" }
|
|
||||||
attributes #11 = { nounwind }
|
|
||||||
|
|
||||||
!llvm.ident = !{!0, !0}
|
|
||||||
!llvm.module.flags = !{!1, !2, !3, !4}
|
|
||||||
|
|
||||||
!0 = !{!"clang version 13.0.0 (https://github.com/MPSLab-ASU/CCF-20.04/ 05285de7579f417a4d73ad832b8f4cc497f25235)"}
|
|
||||||
!1 = !{i32 7, !"Dwarf Version", i32 4}
|
|
||||||
!2 = !{i32 2, !"Debug Info Version", i32 3}
|
|
||||||
!3 = !{i32 1, !"wchar_size", i32 4}
|
|
||||||
!4 = !{i32 1, !"min_enum_size", i32 4}
|
|
||||||
!5 = !{!6, !6, i64 0}
|
|
||||||
!6 = !{!"any pointer", !7, i64 0}
|
|
||||||
!7 = !{!"omnipotent char", !8, i64 0}
|
|
||||||
!8 = !{!"Simple C/C++ TBAA"}
|
|
||||||
!9 = distinct !{!9, !10, !11, !12}
|
|
||||||
!10 = !{!"llvm.loop.mustprogress"}
|
|
||||||
!11 = !{!"llvm.loop.CGRA.enable"}
|
|
||||||
!12 = !{!"llvm.loop.unroll.disable"}
|
|
||||||
!13 = !{!14, !14, i64 0}
|
|
||||||
!14 = !{!"int", !7, i64 0}
|
|
||||||
!15 = distinct !{!15, !10, !12}
|
|
||||||
!16 = !{!17, !17, i64 0}
|
|
||||||
!17 = !{!"long", !7, i64 0}
|
|
||||||
!18 = distinct !{!18, !10, !12}
|
|
||||||
!19 = !{i32 5341}
|
|
||||||
!20 = distinct !{!20, !10, !12}
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,520 +0,0 @@
|
||||||
[root]
|
|
||||||
type=Root
|
|
||||||
children=system
|
|
||||||
eventq_index=0
|
|
||||||
full_system=false
|
|
||||||
sim_quantum=0
|
|
||||||
time_sync_enable=false
|
|
||||||
time_sync_period=100000000000
|
|
||||||
time_sync_spin_threshold=100000000
|
|
||||||
|
|
||||||
[system]
|
|
||||||
type=System
|
|
||||||
children=clk_domain cpu cpu_clk_domain cpu_voltage_domain dvfs_handler mem_ctrls membus redirect_paths0 redirect_paths1 redirect_paths2 voltage_domain
|
|
||||||
byte_order=little
|
|
||||||
cache_line_size=64
|
|
||||||
eventq_index=0
|
|
||||||
exit_on_work_items=false
|
|
||||||
init_param=0
|
|
||||||
m5ops_base=0
|
|
||||||
mem_mode=atomic
|
|
||||||
mem_ranges=0:536870912
|
|
||||||
memories=system.mem_ctrls.dram
|
|
||||||
mmap_using_noreserve=false
|
|
||||||
multi_thread=false
|
|
||||||
num_work_ids=16
|
|
||||||
readfile=
|
|
||||||
redirect_paths=system.redirect_paths0 system.redirect_paths1 system.redirect_paths2
|
|
||||||
shared_backstore=
|
|
||||||
symbolfile=
|
|
||||||
thermal_components=
|
|
||||||
thermal_model=Null
|
|
||||||
work_begin_ckpt_count=0
|
|
||||||
work_begin_cpu_id_exit=-1
|
|
||||||
work_begin_exit_count=0
|
|
||||||
work_cpus_ckpt_count=0
|
|
||||||
work_end_ckpt_count=0
|
|
||||||
work_end_exit_count=0
|
|
||||||
work_item_id=-1
|
|
||||||
workload=Null
|
|
||||||
system_port=system.membus.cpu_side_ports[0]
|
|
||||||
|
|
||||||
[system.clk_domain]
|
|
||||||
type=SrcClockDomain
|
|
||||||
clock=1000
|
|
||||||
domain_id=-1
|
|
||||||
eventq_index=0
|
|
||||||
init_perf_level=0
|
|
||||||
voltage_domain=system.voltage_domain
|
|
||||||
|
|
||||||
[system.cpu]
|
|
||||||
type=AtomicCGRA
|
|
||||||
children=dtb interrupts isa itb power_state tracer workload
|
|
||||||
CGRA_cols=4
|
|
||||||
CGRA_rows=4
|
|
||||||
branchPred=Null
|
|
||||||
checker=Null
|
|
||||||
clk_domain=system.cpu_clk_domain
|
|
||||||
connection=0
|
|
||||||
cpu_id=0
|
|
||||||
do_checkpoint_insts=true
|
|
||||||
do_statistics_insts=true
|
|
||||||
dtb=system.cpu.dtb
|
|
||||||
eventq_index=0
|
|
||||||
fastmem=false
|
|
||||||
function_trace=false
|
|
||||||
function_trace_start=0
|
|
||||||
interrupts=system.cpu.interrupts
|
|
||||||
isa=system.cpu.isa
|
|
||||||
itb=system.cpu.itb
|
|
||||||
max_insts_all_threads=0
|
|
||||||
max_insts_any_thread=0
|
|
||||||
numThreads=1
|
|
||||||
power_gating_on_idle=false
|
|
||||||
power_model=
|
|
||||||
power_state=system.cpu.power_state
|
|
||||||
progress_interval=0
|
|
||||||
pwr_gating_latency=300
|
|
||||||
rfsize=4
|
|
||||||
simpoint_interval=100000000
|
|
||||||
simpoint_profile=false
|
|
||||||
simpoint_profile_file=simpoint.bb.gz
|
|
||||||
simpoint_start_insts=
|
|
||||||
simulate_data_stalls=false
|
|
||||||
simulate_inst_stalls=false
|
|
||||||
socket_id=0
|
|
||||||
switched_out=false
|
|
||||||
syscallRetryLatency=10000
|
|
||||||
system=system
|
|
||||||
tracer=system.cpu.tracer
|
|
||||||
wait_for_remote_gdb=false
|
|
||||||
width=1
|
|
||||||
workload=system.cpu.workload
|
|
||||||
dcache_port=system.membus.cpu_side_ports[2]
|
|
||||||
icache_port=system.membus.cpu_side_ports[1]
|
|
||||||
|
|
||||||
[system.cpu.dtb]
|
|
||||||
type=ArmTLB
|
|
||||||
children=stage2_mmu walker
|
|
||||||
eventq_index=0
|
|
||||||
is_stage2=false
|
|
||||||
size=64
|
|
||||||
sys=system
|
|
||||||
walker=system.cpu.dtb.walker
|
|
||||||
|
|
||||||
[system.cpu.dtb.stage2_mmu]
|
|
||||||
type=ArmStage2MMU
|
|
||||||
children=stage2_tlb
|
|
||||||
eventq_index=0
|
|
||||||
stage2_tlb=system.cpu.dtb.stage2_mmu.stage2_tlb
|
|
||||||
sys=system
|
|
||||||
tlb=system.cpu.dtb
|
|
||||||
|
|
||||||
[system.cpu.dtb.stage2_mmu.stage2_tlb]
|
|
||||||
type=ArmTLB
|
|
||||||
children=walker
|
|
||||||
eventq_index=0
|
|
||||||
is_stage2=true
|
|
||||||
size=32
|
|
||||||
sys=system
|
|
||||||
walker=system.cpu.dtb.stage2_mmu.stage2_tlb.walker
|
|
||||||
|
|
||||||
[system.cpu.dtb.stage2_mmu.stage2_tlb.walker]
|
|
||||||
type=ArmTableWalker
|
|
||||||
children=power_state
|
|
||||||
clk_domain=system.cpu_clk_domain
|
|
||||||
eventq_index=0
|
|
||||||
is_stage2=true
|
|
||||||
num_squash_per_cycle=2
|
|
||||||
power_model=
|
|
||||||
power_state=system.cpu.dtb.stage2_mmu.stage2_tlb.walker.power_state
|
|
||||||
sys=system
|
|
||||||
|
|
||||||
[system.cpu.dtb.stage2_mmu.stage2_tlb.walker.power_state]
|
|
||||||
type=PowerState
|
|
||||||
clk_gate_bins=20
|
|
||||||
clk_gate_max=1000000000000
|
|
||||||
clk_gate_min=1000
|
|
||||||
default_state=UNDEFINED
|
|
||||||
eventq_index=0
|
|
||||||
leaders=
|
|
||||||
possible_states=
|
|
||||||
|
|
||||||
[system.cpu.dtb.walker]
|
|
||||||
type=ArmTableWalker
|
|
||||||
children=power_state
|
|
||||||
clk_domain=system.cpu_clk_domain
|
|
||||||
eventq_index=0
|
|
||||||
is_stage2=false
|
|
||||||
num_squash_per_cycle=2
|
|
||||||
power_model=
|
|
||||||
power_state=system.cpu.dtb.walker.power_state
|
|
||||||
sys=system
|
|
||||||
port=system.membus.cpu_side_ports[4]
|
|
||||||
|
|
||||||
[system.cpu.dtb.walker.power_state]
|
|
||||||
type=PowerState
|
|
||||||
clk_gate_bins=20
|
|
||||||
clk_gate_max=1000000000000
|
|
||||||
clk_gate_min=1000
|
|
||||||
default_state=UNDEFINED
|
|
||||||
eventq_index=0
|
|
||||||
leaders=
|
|
||||||
possible_states=
|
|
||||||
|
|
||||||
[system.cpu.interrupts]
|
|
||||||
type=ArmInterrupts
|
|
||||||
eventq_index=0
|
|
||||||
|
|
||||||
[system.cpu.isa]
|
|
||||||
type=ArmISA
|
|
||||||
decoderFlavor=Generic
|
|
||||||
eventq_index=0
|
|
||||||
fpsid=1090793632
|
|
||||||
id_aa64afr0_el1=0
|
|
||||||
id_aa64afr1_el1=0
|
|
||||||
id_aa64dfr0_el1=15790086
|
|
||||||
id_aa64dfr1_el1=0
|
|
||||||
id_aa64isar0_el1=0
|
|
||||||
id_aa64isar1_el1=16846864
|
|
||||||
id_aa64mmfr0_el1=15728642
|
|
||||||
id_aa64mmfr1_el1=1052672
|
|
||||||
id_aa64mmfr2_el1=0
|
|
||||||
id_isar0=34607377
|
|
||||||
id_isar1=34677009
|
|
||||||
id_isar2=555950401
|
|
||||||
id_isar3=17899825
|
|
||||||
id_isar4=268501314
|
|
||||||
id_isar5=268435456
|
|
||||||
id_mmfr0=270536963
|
|
||||||
id_mmfr1=0
|
|
||||||
id_mmfr2=19070976
|
|
||||||
id_mmfr3=34611729
|
|
||||||
impdef_nop=false
|
|
||||||
midr=0
|
|
||||||
pmu=Null
|
|
||||||
sve_vl_se=1
|
|
||||||
system=system
|
|
||||||
|
|
||||||
[system.cpu.itb]
|
|
||||||
type=ArmTLB
|
|
||||||
children=stage2_mmu walker
|
|
||||||
eventq_index=0
|
|
||||||
is_stage2=false
|
|
||||||
size=64
|
|
||||||
sys=system
|
|
||||||
walker=system.cpu.itb.walker
|
|
||||||
|
|
||||||
[system.cpu.itb.stage2_mmu]
|
|
||||||
type=ArmStage2MMU
|
|
||||||
children=stage2_tlb
|
|
||||||
eventq_index=0
|
|
||||||
stage2_tlb=system.cpu.itb.stage2_mmu.stage2_tlb
|
|
||||||
sys=system
|
|
||||||
tlb=system.cpu.itb
|
|
||||||
|
|
||||||
[system.cpu.itb.stage2_mmu.stage2_tlb]
|
|
||||||
type=ArmTLB
|
|
||||||
children=walker
|
|
||||||
eventq_index=0
|
|
||||||
is_stage2=true
|
|
||||||
size=32
|
|
||||||
sys=system
|
|
||||||
walker=system.cpu.itb.stage2_mmu.stage2_tlb.walker
|
|
||||||
|
|
||||||
[system.cpu.itb.stage2_mmu.stage2_tlb.walker]
|
|
||||||
type=ArmTableWalker
|
|
||||||
children=power_state
|
|
||||||
clk_domain=system.cpu_clk_domain
|
|
||||||
eventq_index=0
|
|
||||||
is_stage2=true
|
|
||||||
num_squash_per_cycle=2
|
|
||||||
power_model=
|
|
||||||
power_state=system.cpu.itb.stage2_mmu.stage2_tlb.walker.power_state
|
|
||||||
sys=system
|
|
||||||
|
|
||||||
[system.cpu.itb.stage2_mmu.stage2_tlb.walker.power_state]
|
|
||||||
type=PowerState
|
|
||||||
clk_gate_bins=20
|
|
||||||
clk_gate_max=1000000000000
|
|
||||||
clk_gate_min=1000
|
|
||||||
default_state=UNDEFINED
|
|
||||||
eventq_index=0
|
|
||||||
leaders=
|
|
||||||
possible_states=
|
|
||||||
|
|
||||||
[system.cpu.itb.walker]
|
|
||||||
type=ArmTableWalker
|
|
||||||
children=power_state
|
|
||||||
clk_domain=system.cpu_clk_domain
|
|
||||||
eventq_index=0
|
|
||||||
is_stage2=false
|
|
||||||
num_squash_per_cycle=2
|
|
||||||
power_model=
|
|
||||||
power_state=system.cpu.itb.walker.power_state
|
|
||||||
sys=system
|
|
||||||
port=system.membus.cpu_side_ports[3]
|
|
||||||
|
|
||||||
[system.cpu.itb.walker.power_state]
|
|
||||||
type=PowerState
|
|
||||||
clk_gate_bins=20
|
|
||||||
clk_gate_max=1000000000000
|
|
||||||
clk_gate_min=1000
|
|
||||||
default_state=UNDEFINED
|
|
||||||
eventq_index=0
|
|
||||||
leaders=
|
|
||||||
possible_states=
|
|
||||||
|
|
||||||
[system.cpu.power_state]
|
|
||||||
type=PowerState
|
|
||||||
clk_gate_bins=20
|
|
||||||
clk_gate_max=1000000000000
|
|
||||||
clk_gate_min=1000
|
|
||||||
default_state=UNDEFINED
|
|
||||||
eventq_index=0
|
|
||||||
leaders=
|
|
||||||
possible_states=ON CLK_GATED OFF
|
|
||||||
|
|
||||||
[system.cpu.tracer]
|
|
||||||
type=ExeTracer
|
|
||||||
eventq_index=0
|
|
||||||
|
|
||||||
[system.cpu.workload]
|
|
||||||
type=Process
|
|
||||||
cmd=./pow 6
|
|
||||||
cwd=/home/local/ASUAD/quoclon1/publish_ccf_github/benchmarks/pow
|
|
||||||
drivers=
|
|
||||||
egid=100
|
|
||||||
env=
|
|
||||||
errout=cerr
|
|
||||||
euid=100
|
|
||||||
eventq_index=0
|
|
||||||
executable=./pow
|
|
||||||
gid=100
|
|
||||||
input=cin
|
|
||||||
kvmInSE=false
|
|
||||||
maxStackSize=67108864
|
|
||||||
output=cout
|
|
||||||
pgid=100
|
|
||||||
pid=100
|
|
||||||
ppid=0
|
|
||||||
release=5.1.0
|
|
||||||
simpoint=0
|
|
||||||
system=system
|
|
||||||
uid=100
|
|
||||||
useArchPT=false
|
|
||||||
|
|
||||||
[system.cpu_clk_domain]
|
|
||||||
type=SrcClockDomain
|
|
||||||
clock=500
|
|
||||||
domain_id=-1
|
|
||||||
eventq_index=0
|
|
||||||
init_perf_level=0
|
|
||||||
voltage_domain=system.cpu_voltage_domain
|
|
||||||
|
|
||||||
[system.cpu_voltage_domain]
|
|
||||||
type=VoltageDomain
|
|
||||||
eventq_index=0
|
|
||||||
voltage=1.0
|
|
||||||
|
|
||||||
[system.dvfs_handler]
|
|
||||||
type=DVFSHandler
|
|
||||||
domains=
|
|
||||||
enable=false
|
|
||||||
eventq_index=0
|
|
||||||
sys_clk_domain=system.clk_domain
|
|
||||||
transition_latency=100000000
|
|
||||||
|
|
||||||
[system.mem_ctrls]
|
|
||||||
type=MemCtrl
|
|
||||||
children=dram power_state
|
|
||||||
clk_domain=system.clk_domain
|
|
||||||
command_window=10000
|
|
||||||
dram=system.mem_ctrls.dram
|
|
||||||
eventq_index=0
|
|
||||||
mem_sched_policy=frfcfs
|
|
||||||
min_writes_per_switch=16
|
|
||||||
nvm=Null
|
|
||||||
power_model=
|
|
||||||
power_state=system.mem_ctrls.power_state
|
|
||||||
qos_policy=Null
|
|
||||||
qos_priorities=1
|
|
||||||
qos_priority_escalation=false
|
|
||||||
qos_q_policy=fifo
|
|
||||||
qos_requestors=
|
|
||||||
qos_syncro_scheduler=false
|
|
||||||
qos_turnaround_policy=Null
|
|
||||||
static_backend_latency=10000
|
|
||||||
static_frontend_latency=10000
|
|
||||||
system=system
|
|
||||||
write_high_thresh_perc=85
|
|
||||||
write_low_thresh_perc=50
|
|
||||||
port=system.membus.mem_side_ports[0]
|
|
||||||
|
|
||||||
[system.mem_ctrls.dram]
|
|
||||||
type=DRAMInterface
|
|
||||||
children=power_state
|
|
||||||
IDD0=0.055
|
|
||||||
IDD02=0.0
|
|
||||||
IDD2N=0.032
|
|
||||||
IDD2N2=0.0
|
|
||||||
IDD2P0=0.0
|
|
||||||
IDD2P02=0.0
|
|
||||||
IDD2P1=0.032
|
|
||||||
IDD2P12=0.0
|
|
||||||
IDD3N=0.038
|
|
||||||
IDD3N2=0.0
|
|
||||||
IDD3P0=0.0
|
|
||||||
IDD3P02=0.0
|
|
||||||
IDD3P1=0.038
|
|
||||||
IDD3P12=0.0
|
|
||||||
IDD4R=0.157
|
|
||||||
IDD4R2=0.0
|
|
||||||
IDD4W=0.125
|
|
||||||
IDD4W2=0.0
|
|
||||||
IDD5=0.23500000000000001
|
|
||||||
IDD52=0.0
|
|
||||||
IDD6=0.02
|
|
||||||
IDD62=0.0
|
|
||||||
VDD=1.5
|
|
||||||
VDD2=0.0
|
|
||||||
activation_limit=4
|
|
||||||
addr_mapping=RoRaBaCoCh
|
|
||||||
bank_groups_per_rank=0
|
|
||||||
banks_per_rank=8
|
|
||||||
beats_per_clock=2
|
|
||||||
burst_length=8
|
|
||||||
clk_domain=system.clk_domain
|
|
||||||
conf_table_reported=true
|
|
||||||
data_clock_sync=false
|
|
||||||
device_bus_width=8
|
|
||||||
device_rowbuffer_size=1024
|
|
||||||
device_size=536870912
|
|
||||||
devices_per_rank=8
|
|
||||||
dll=true
|
|
||||||
enable_dram_powerdown=false
|
|
||||||
eventq_index=0
|
|
||||||
image_file=
|
|
||||||
in_addr_map=true
|
|
||||||
kvm_map=true
|
|
||||||
max_accesses_per_row=16
|
|
||||||
null=false
|
|
||||||
page_policy=open_adaptive
|
|
||||||
power_model=
|
|
||||||
power_state=system.mem_ctrls.dram.power_state
|
|
||||||
range=0:536870912
|
|
||||||
ranks_per_channel=2
|
|
||||||
read_buffer_size=32
|
|
||||||
tAAD=1250
|
|
||||||
tBURST=5000
|
|
||||||
tBURST_MAX=5000
|
|
||||||
tBURST_MIN=5000
|
|
||||||
tCCD_L=0
|
|
||||||
tCCD_L_WR=0
|
|
||||||
tCK=1250
|
|
||||||
tCL=13750
|
|
||||||
tCS=2500
|
|
||||||
tPPD=0
|
|
||||||
tRAS=35000
|
|
||||||
tRCD=13750
|
|
||||||
tREFI=7800000
|
|
||||||
tRFC=260000
|
|
||||||
tRP=13750
|
|
||||||
tRRD=6000
|
|
||||||
tRRD_L=0
|
|
||||||
tRTP=7500
|
|
||||||
tRTW=2500
|
|
||||||
tWR=15000
|
|
||||||
tWTR=7500
|
|
||||||
tWTR_L=7500
|
|
||||||
tXAW=30000
|
|
||||||
tXP=6000
|
|
||||||
tXPDLL=0
|
|
||||||
tXS=270000
|
|
||||||
tXSDLL=0
|
|
||||||
two_cycle_activate=false
|
|
||||||
write_buffer_size=64
|
|
||||||
|
|
||||||
[system.mem_ctrls.dram.power_state]
|
|
||||||
type=PowerState
|
|
||||||
clk_gate_bins=20
|
|
||||||
clk_gate_max=1000000000000
|
|
||||||
clk_gate_min=1000
|
|
||||||
default_state=UNDEFINED
|
|
||||||
eventq_index=0
|
|
||||||
leaders=
|
|
||||||
possible_states=
|
|
||||||
|
|
||||||
[system.mem_ctrls.power_state]
|
|
||||||
type=PowerState
|
|
||||||
clk_gate_bins=20
|
|
||||||
clk_gate_max=1000000000000
|
|
||||||
clk_gate_min=1000
|
|
||||||
default_state=UNDEFINED
|
|
||||||
eventq_index=0
|
|
||||||
leaders=
|
|
||||||
possible_states=
|
|
||||||
|
|
||||||
[system.membus]
|
|
||||||
type=CoherentXBar
|
|
||||||
children=power_state snoop_filter
|
|
||||||
clk_domain=system.clk_domain
|
|
||||||
eventq_index=0
|
|
||||||
forward_latency=4
|
|
||||||
frontend_latency=3
|
|
||||||
header_latency=1
|
|
||||||
max_outstanding_snoops=512
|
|
||||||
max_routing_table_size=512
|
|
||||||
point_of_coherency=true
|
|
||||||
point_of_unification=true
|
|
||||||
power_model=
|
|
||||||
power_state=system.membus.power_state
|
|
||||||
response_latency=2
|
|
||||||
snoop_filter=system.membus.snoop_filter
|
|
||||||
snoop_response_latency=4
|
|
||||||
system=system
|
|
||||||
use_default_range=false
|
|
||||||
width=16
|
|
||||||
cpu_side_ports=system.system_port system.cpu.icache_port system.cpu.dcache_port system.cpu.itb.walker.port system.cpu.dtb.walker.port
|
|
||||||
mem_side_ports=system.mem_ctrls.port
|
|
||||||
|
|
||||||
[system.membus.power_state]
|
|
||||||
type=PowerState
|
|
||||||
clk_gate_bins=20
|
|
||||||
clk_gate_max=1000000000000
|
|
||||||
clk_gate_min=1000
|
|
||||||
default_state=UNDEFINED
|
|
||||||
eventq_index=0
|
|
||||||
leaders=
|
|
||||||
possible_states=
|
|
||||||
|
|
||||||
[system.membus.snoop_filter]
|
|
||||||
type=SnoopFilter
|
|
||||||
eventq_index=0
|
|
||||||
lookup_latency=1
|
|
||||||
max_capacity=8388608
|
|
||||||
system=system
|
|
||||||
|
|
||||||
[system.redirect_paths0]
|
|
||||||
type=RedirectPath
|
|
||||||
app_path=/proc
|
|
||||||
eventq_index=0
|
|
||||||
host_paths=m5out/fs/proc
|
|
||||||
|
|
||||||
[system.redirect_paths1]
|
|
||||||
type=RedirectPath
|
|
||||||
app_path=/sys
|
|
||||||
eventq_index=0
|
|
||||||
host_paths=m5out/fs/sys
|
|
||||||
|
|
||||||
[system.redirect_paths2]
|
|
||||||
type=RedirectPath
|
|
||||||
app_path=/tmp
|
|
||||||
eventq_index=0
|
|
||||||
host_paths=m5out/fs/tmp
|
|
||||||
|
|
||||||
[system.voltage_domain]
|
|
||||||
type=VoltageDomain
|
|
||||||
eventq_index=0
|
|
||||||
voltage=1.0
|
|
||||||
|
|
|
@ -1,686 +0,0 @@
|
||||||
{
|
|
||||||
"type": "Root",
|
|
||||||
"cxx_class": "Root",
|
|
||||||
"name": null,
|
|
||||||
"path": "root",
|
|
||||||
"eventq_index": 0,
|
|
||||||
"full_system": false,
|
|
||||||
"sim_quantum": 0,
|
|
||||||
"time_sync_enable": false,
|
|
||||||
"time_sync_period": 100000000000,
|
|
||||||
"time_sync_spin_threshold": 100000000,
|
|
||||||
"system": {
|
|
||||||
"type": "System",
|
|
||||||
"cxx_class": "System",
|
|
||||||
"name": "system",
|
|
||||||
"path": "system",
|
|
||||||
"byte_order": "little",
|
|
||||||
"cache_line_size": 64,
|
|
||||||
"eventq_index": 0,
|
|
||||||
"exit_on_work_items": false,
|
|
||||||
"init_param": 0,
|
|
||||||
"m5ops_base": 0,
|
|
||||||
"mem_mode": "atomic",
|
|
||||||
"mem_ranges": [
|
|
||||||
"0:536870912"
|
|
||||||
],
|
|
||||||
"memories": [
|
|
||||||
"system.mem_ctrls.dram"
|
|
||||||
],
|
|
||||||
"mmap_using_noreserve": false,
|
|
||||||
"multi_thread": false,
|
|
||||||
"num_work_ids": 16,
|
|
||||||
"readfile": "",
|
|
||||||
"redirect_paths": [
|
|
||||||
{
|
|
||||||
"type": "RedirectPath",
|
|
||||||
"cxx_class": "RedirectPath",
|
|
||||||
"name": "redirect_paths0",
|
|
||||||
"path": "system.redirect_paths0",
|
|
||||||
"app_path": "/proc",
|
|
||||||
"eventq_index": 0,
|
|
||||||
"host_paths": [
|
|
||||||
"m5out/fs/proc"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "RedirectPath",
|
|
||||||
"cxx_class": "RedirectPath",
|
|
||||||
"name": "redirect_paths1",
|
|
||||||
"path": "system.redirect_paths1",
|
|
||||||
"app_path": "/sys",
|
|
||||||
"eventq_index": 0,
|
|
||||||
"host_paths": [
|
|
||||||
"m5out/fs/sys"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "RedirectPath",
|
|
||||||
"cxx_class": "RedirectPath",
|
|
||||||
"name": "redirect_paths2",
|
|
||||||
"path": "system.redirect_paths2",
|
|
||||||
"app_path": "/tmp",
|
|
||||||
"eventq_index": 0,
|
|
||||||
"host_paths": [
|
|
||||||
"m5out/fs/tmp"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"shared_backstore": "",
|
|
||||||
"symbolfile": "",
|
|
||||||
"thermal_components": [],
|
|
||||||
"thermal_model": null,
|
|
||||||
"work_begin_ckpt_count": 0,
|
|
||||||
"work_begin_cpu_id_exit": -1,
|
|
||||||
"work_begin_exit_count": 0,
|
|
||||||
"work_cpus_ckpt_count": 0,
|
|
||||||
"work_end_ckpt_count": 0,
|
|
||||||
"work_end_exit_count": 0,
|
|
||||||
"work_item_id": -1,
|
|
||||||
"workload": null,
|
|
||||||
"clk_domain": {
|
|
||||||
"type": "SrcClockDomain",
|
|
||||||
"cxx_class": "SrcClockDomain",
|
|
||||||
"name": "clk_domain",
|
|
||||||
"path": "system.clk_domain",
|
|
||||||
"clock": [
|
|
||||||
1000
|
|
||||||
],
|
|
||||||
"domain_id": -1,
|
|
||||||
"eventq_index": 0,
|
|
||||||
"init_perf_level": 0,
|
|
||||||
"voltage_domain": "system.voltage_domain"
|
|
||||||
},
|
|
||||||
"cpu": [
|
|
||||||
{
|
|
||||||
"type": "AtomicCGRA",
|
|
||||||
"cxx_class": "AtomicCGRA",
|
|
||||||
"name": "cpu",
|
|
||||||
"path": "system.cpu",
|
|
||||||
"CGRA_cols": 4,
|
|
||||||
"CGRA_rows": 4,
|
|
||||||
"branchPred": null,
|
|
||||||
"checker": null,
|
|
||||||
"clk_domain": "system.cpu_clk_domain",
|
|
||||||
"connection": 0,
|
|
||||||
"cpu_id": 0,
|
|
||||||
"do_checkpoint_insts": true,
|
|
||||||
"do_statistics_insts": true,
|
|
||||||
"dtb": {
|
|
||||||
"type": "ArmTLB",
|
|
||||||
"cxx_class": "ArmISA::TLB",
|
|
||||||
"name": "dtb",
|
|
||||||
"path": "system.cpu.dtb",
|
|
||||||
"eventq_index": 0,
|
|
||||||
"is_stage2": false,
|
|
||||||
"size": 64,
|
|
||||||
"sys": "system",
|
|
||||||
"walker": {
|
|
||||||
"type": "ArmTableWalker",
|
|
||||||
"cxx_class": "ArmISA::TableWalker",
|
|
||||||
"name": "walker",
|
|
||||||
"path": "system.cpu.dtb.walker",
|
|
||||||
"clk_domain": "system.cpu_clk_domain",
|
|
||||||
"eventq_index": 0,
|
|
||||||
"is_stage2": false,
|
|
||||||
"num_squash_per_cycle": 2,
|
|
||||||
"power_model": [],
|
|
||||||
"power_state": {
|
|
||||||
"type": "PowerState",
|
|
||||||
"cxx_class": "PowerState",
|
|
||||||
"name": "power_state",
|
|
||||||
"path": "system.cpu.dtb.walker.power_state",
|
|
||||||
"clk_gate_bins": 20,
|
|
||||||
"clk_gate_max": 1000000000000,
|
|
||||||
"clk_gate_min": 1000,
|
|
||||||
"default_state": "UNDEFINED",
|
|
||||||
"eventq_index": 0,
|
|
||||||
"leaders": [],
|
|
||||||
"possible_states": []
|
|
||||||
},
|
|
||||||
"sys": "system",
|
|
||||||
"port": {
|
|
||||||
"role": "GEM5 REQUESTOR",
|
|
||||||
"peer": "system.membus.cpu_side_ports[4]",
|
|
||||||
"is_source": "True"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"stage2_mmu": {
|
|
||||||
"type": "ArmStage2MMU",
|
|
||||||
"cxx_class": "ArmISA::Stage2MMU",
|
|
||||||
"name": "stage2_mmu",
|
|
||||||
"path": "system.cpu.dtb.stage2_mmu",
|
|
||||||
"eventq_index": 0,
|
|
||||||
"stage2_tlb": {
|
|
||||||
"type": "ArmTLB",
|
|
||||||
"cxx_class": "ArmISA::TLB",
|
|
||||||
"name": "stage2_tlb",
|
|
||||||
"path": "system.cpu.dtb.stage2_mmu.stage2_tlb",
|
|
||||||
"eventq_index": 0,
|
|
||||||
"is_stage2": true,
|
|
||||||
"size": 32,
|
|
||||||
"sys": "system",
|
|
||||||
"walker": {
|
|
||||||
"type": "ArmTableWalker",
|
|
||||||
"cxx_class": "ArmISA::TableWalker",
|
|
||||||
"name": "walker",
|
|
||||||
"path": "system.cpu.dtb.stage2_mmu.stage2_tlb.walker",
|
|
||||||
"clk_domain": "system.cpu_clk_domain",
|
|
||||||
"eventq_index": 0,
|
|
||||||
"is_stage2": true,
|
|
||||||
"num_squash_per_cycle": 2,
|
|
||||||
"power_model": [],
|
|
||||||
"power_state": {
|
|
||||||
"type": "PowerState",
|
|
||||||
"cxx_class": "PowerState",
|
|
||||||
"name": "power_state",
|
|
||||||
"path": "system.cpu.dtb.stage2_mmu.stage2_tlb.walker.power_state",
|
|
||||||
"clk_gate_bins": 20,
|
|
||||||
"clk_gate_max": 1000000000000,
|
|
||||||
"clk_gate_min": 1000,
|
|
||||||
"default_state": "UNDEFINED",
|
|
||||||
"eventq_index": 0,
|
|
||||||
"leaders": [],
|
|
||||||
"possible_states": []
|
|
||||||
},
|
|
||||||
"sys": "system"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"sys": "system",
|
|
||||||
"tlb": "system.cpu.dtb"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"eventq_index": 0,
|
|
||||||
"fastmem": false,
|
|
||||||
"function_trace": false,
|
|
||||||
"function_trace_start": 0,
|
|
||||||
"interrupts": [
|
|
||||||
{
|
|
||||||
"type": "ArmInterrupts",
|
|
||||||
"cxx_class": "ArmISA::Interrupts",
|
|
||||||
"name": "interrupts",
|
|
||||||
"path": "system.cpu.interrupts",
|
|
||||||
"eventq_index": 0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isa": [
|
|
||||||
{
|
|
||||||
"type": "ArmISA",
|
|
||||||
"cxx_class": "ArmISA::ISA",
|
|
||||||
"name": "isa",
|
|
||||||
"path": "system.cpu.isa",
|
|
||||||
"decoderFlavor": "Generic",
|
|
||||||
"eventq_index": 0,
|
|
||||||
"fpsid": 1090793632,
|
|
||||||
"id_aa64afr0_el1": 0,
|
|
||||||
"id_aa64afr1_el1": 0,
|
|
||||||
"id_aa64dfr0_el1": 15790086,
|
|
||||||
"id_aa64dfr1_el1": 0,
|
|
||||||
"id_aa64isar0_el1": 0,
|
|
||||||
"id_aa64isar1_el1": 16846864,
|
|
||||||
"id_aa64mmfr0_el1": 15728642,
|
|
||||||
"id_aa64mmfr1_el1": 1052672,
|
|
||||||
"id_aa64mmfr2_el1": 0,
|
|
||||||
"id_isar0": 34607377,
|
|
||||||
"id_isar1": 34677009,
|
|
||||||
"id_isar2": 555950401,
|
|
||||||
"id_isar3": 17899825,
|
|
||||||
"id_isar4": 268501314,
|
|
||||||
"id_isar5": 268435456,
|
|
||||||
"id_mmfr0": 270536963,
|
|
||||||
"id_mmfr1": 0,
|
|
||||||
"id_mmfr2": 19070976,
|
|
||||||
"id_mmfr3": 34611729,
|
|
||||||
"impdef_nop": false,
|
|
||||||
"midr": 0,
|
|
||||||
"pmu": null,
|
|
||||||
"sve_vl_se": 1,
|
|
||||||
"system": "system"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"itb": {
|
|
||||||
"type": "ArmTLB",
|
|
||||||
"cxx_class": "ArmISA::TLB",
|
|
||||||
"name": "itb",
|
|
||||||
"path": "system.cpu.itb",
|
|
||||||
"eventq_index": 0,
|
|
||||||
"is_stage2": false,
|
|
||||||
"size": 64,
|
|
||||||
"sys": "system",
|
|
||||||
"walker": {
|
|
||||||
"type": "ArmTableWalker",
|
|
||||||
"cxx_class": "ArmISA::TableWalker",
|
|
||||||
"name": "walker",
|
|
||||||
"path": "system.cpu.itb.walker",
|
|
||||||
"clk_domain": "system.cpu_clk_domain",
|
|
||||||
"eventq_index": 0,
|
|
||||||
"is_stage2": false,
|
|
||||||
"num_squash_per_cycle": 2,
|
|
||||||
"power_model": [],
|
|
||||||
"power_state": {
|
|
||||||
"type": "PowerState",
|
|
||||||
"cxx_class": "PowerState",
|
|
||||||
"name": "power_state",
|
|
||||||
"path": "system.cpu.itb.walker.power_state",
|
|
||||||
"clk_gate_bins": 20,
|
|
||||||
"clk_gate_max": 1000000000000,
|
|
||||||
"clk_gate_min": 1000,
|
|
||||||
"default_state": "UNDEFINED",
|
|
||||||
"eventq_index": 0,
|
|
||||||
"leaders": [],
|
|
||||||
"possible_states": []
|
|
||||||
},
|
|
||||||
"sys": "system",
|
|
||||||
"port": {
|
|
||||||
"role": "GEM5 REQUESTOR",
|
|
||||||
"peer": "system.membus.cpu_side_ports[3]",
|
|
||||||
"is_source": "True"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"stage2_mmu": {
|
|
||||||
"type": "ArmStage2MMU",
|
|
||||||
"cxx_class": "ArmISA::Stage2MMU",
|
|
||||||
"name": "stage2_mmu",
|
|
||||||
"path": "system.cpu.itb.stage2_mmu",
|
|
||||||
"eventq_index": 0,
|
|
||||||
"stage2_tlb": {
|
|
||||||
"type": "ArmTLB",
|
|
||||||
"cxx_class": "ArmISA::TLB",
|
|
||||||
"name": "stage2_tlb",
|
|
||||||
"path": "system.cpu.itb.stage2_mmu.stage2_tlb",
|
|
||||||
"eventq_index": 0,
|
|
||||||
"is_stage2": true,
|
|
||||||
"size": 32,
|
|
||||||
"sys": "system",
|
|
||||||
"walker": {
|
|
||||||
"type": "ArmTableWalker",
|
|
||||||
"cxx_class": "ArmISA::TableWalker",
|
|
||||||
"name": "walker",
|
|
||||||
"path": "system.cpu.itb.stage2_mmu.stage2_tlb.walker",
|
|
||||||
"clk_domain": "system.cpu_clk_domain",
|
|
||||||
"eventq_index": 0,
|
|
||||||
"is_stage2": true,
|
|
||||||
"num_squash_per_cycle": 2,
|
|
||||||
"power_model": [],
|
|
||||||
"power_state": {
|
|
||||||
"type": "PowerState",
|
|
||||||
"cxx_class": "PowerState",
|
|
||||||
"name": "power_state",
|
|
||||||
"path": "system.cpu.itb.stage2_mmu.stage2_tlb.walker.power_state",
|
|
||||||
"clk_gate_bins": 20,
|
|
||||||
"clk_gate_max": 1000000000000,
|
|
||||||
"clk_gate_min": 1000,
|
|
||||||
"default_state": "UNDEFINED",
|
|
||||||
"eventq_index": 0,
|
|
||||||
"leaders": [],
|
|
||||||
"possible_states": []
|
|
||||||
},
|
|
||||||
"sys": "system"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"sys": "system",
|
|
||||||
"tlb": "system.cpu.itb"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"max_insts_all_threads": 0,
|
|
||||||
"max_insts_any_thread": 0,
|
|
||||||
"numThreads": 1,
|
|
||||||
"power_gating_on_idle": false,
|
|
||||||
"power_model": [],
|
|
||||||
"power_state": {
|
|
||||||
"type": "PowerState",
|
|
||||||
"cxx_class": "PowerState",
|
|
||||||
"name": "power_state",
|
|
||||||
"path": "system.cpu.power_state",
|
|
||||||
"clk_gate_bins": 20,
|
|
||||||
"clk_gate_max": 1000000000000,
|
|
||||||
"clk_gate_min": 1000,
|
|
||||||
"default_state": "UNDEFINED",
|
|
||||||
"eventq_index": 0,
|
|
||||||
"leaders": [],
|
|
||||||
"possible_states": [
|
|
||||||
"ON",
|
|
||||||
"CLK_GATED",
|
|
||||||
"OFF"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"progress_interval": 0,
|
|
||||||
"pwr_gating_latency": 300,
|
|
||||||
"rfsize": 4,
|
|
||||||
"simpoint_interval": 100000000,
|
|
||||||
"simpoint_profile": false,
|
|
||||||
"simpoint_profile_file": "simpoint.bb.gz",
|
|
||||||
"simpoint_start_insts": [],
|
|
||||||
"simulate_data_stalls": false,
|
|
||||||
"simulate_inst_stalls": false,
|
|
||||||
"socket_id": 0,
|
|
||||||
"switched_out": false,
|
|
||||||
"syscallRetryLatency": 10000,
|
|
||||||
"system": "system",
|
|
||||||
"tracer": {
|
|
||||||
"type": "ExeTracer",
|
|
||||||
"cxx_class": "Trace::ExeTracer",
|
|
||||||
"name": "tracer",
|
|
||||||
"path": "system.cpu.tracer",
|
|
||||||
"eventq_index": 0
|
|
||||||
},
|
|
||||||
"wait_for_remote_gdb": false,
|
|
||||||
"width": 1,
|
|
||||||
"workload": [
|
|
||||||
{
|
|
||||||
"type": "Process",
|
|
||||||
"cxx_class": "Process",
|
|
||||||
"name": "workload",
|
|
||||||
"path": "system.cpu.workload",
|
|
||||||
"cmd": [
|
|
||||||
"./pow",
|
|
||||||
"6"
|
|
||||||
],
|
|
||||||
"cwd": "/home/local/ASUAD/quoclon1/publish_ccf_github/benchmarks/pow",
|
|
||||||
"drivers": [],
|
|
||||||
"egid": 100,
|
|
||||||
"env": [],
|
|
||||||
"errout": "cerr",
|
|
||||||
"euid": 100,
|
|
||||||
"eventq_index": 0,
|
|
||||||
"executable": "./pow",
|
|
||||||
"gid": 100,
|
|
||||||
"input": "cin",
|
|
||||||
"kvmInSE": false,
|
|
||||||
"maxStackSize": 67108864,
|
|
||||||
"output": "cout",
|
|
||||||
"pgid": 100,
|
|
||||||
"pid": 100,
|
|
||||||
"ppid": 0,
|
|
||||||
"release": "5.1.0",
|
|
||||||
"simpoint": 0,
|
|
||||||
"system": "system",
|
|
||||||
"uid": 100,
|
|
||||||
"useArchPT": false
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dcache_port": {
|
|
||||||
"role": "GEM5 REQUESTOR",
|
|
||||||
"peer": "system.membus.cpu_side_ports[2]",
|
|
||||||
"is_source": "True"
|
|
||||||
},
|
|
||||||
"icache_port": {
|
|
||||||
"role": "GEM5 REQUESTOR",
|
|
||||||
"peer": "system.membus.cpu_side_ports[1]",
|
|
||||||
"is_source": "True"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"cpu_clk_domain": {
|
|
||||||
"type": "SrcClockDomain",
|
|
||||||
"cxx_class": "SrcClockDomain",
|
|
||||||
"name": "cpu_clk_domain",
|
|
||||||
"path": "system.cpu_clk_domain",
|
|
||||||
"clock": [
|
|
||||||
500
|
|
||||||
],
|
|
||||||
"domain_id": -1,
|
|
||||||
"eventq_index": 0,
|
|
||||||
"init_perf_level": 0,
|
|
||||||
"voltage_domain": "system.cpu_voltage_domain"
|
|
||||||
},
|
|
||||||
"cpu_voltage_domain": {
|
|
||||||
"type": "VoltageDomain",
|
|
||||||
"cxx_class": "VoltageDomain",
|
|
||||||
"name": "cpu_voltage_domain",
|
|
||||||
"path": "system.cpu_voltage_domain",
|
|
||||||
"eventq_index": 0,
|
|
||||||
"voltage": [
|
|
||||||
1.0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"dvfs_handler": {
|
|
||||||
"type": "DVFSHandler",
|
|
||||||
"cxx_class": "DVFSHandler",
|
|
||||||
"name": "dvfs_handler",
|
|
||||||
"path": "system.dvfs_handler",
|
|
||||||
"domains": [],
|
|
||||||
"enable": false,
|
|
||||||
"eventq_index": 0,
|
|
||||||
"sys_clk_domain": "system.clk_domain",
|
|
||||||
"transition_latency": 100000000
|
|
||||||
},
|
|
||||||
"mem_ctrls": [
|
|
||||||
{
|
|
||||||
"type": "MemCtrl",
|
|
||||||
"cxx_class": "MemCtrl",
|
|
||||||
"name": "mem_ctrls",
|
|
||||||
"path": "system.mem_ctrls",
|
|
||||||
"clk_domain": "system.clk_domain",
|
|
||||||
"command_window": 10000,
|
|
||||||
"dram": {
|
|
||||||
"type": "DRAMInterface",
|
|
||||||
"cxx_class": "DRAMInterface",
|
|
||||||
"name": "dram",
|
|
||||||
"path": "system.mem_ctrls.dram",
|
|
||||||
"IDD0": 0.055,
|
|
||||||
"IDD02": 0.0,
|
|
||||||
"IDD2N": 0.032,
|
|
||||||
"IDD2N2": 0.0,
|
|
||||||
"IDD2P0": 0.0,
|
|
||||||
"IDD2P02": 0.0,
|
|
||||||
"IDD2P1": 0.032,
|
|
||||||
"IDD2P12": 0.0,
|
|
||||||
"IDD3N": 0.038,
|
|
||||||
"IDD3N2": 0.0,
|
|
||||||
"IDD3P0": 0.0,
|
|
||||||
"IDD3P02": 0.0,
|
|
||||||
"IDD3P1": 0.038,
|
|
||||||
"IDD3P12": 0.0,
|
|
||||||
"IDD4R": 0.157,
|
|
||||||
"IDD4R2": 0.0,
|
|
||||||
"IDD4W": 0.125,
|
|
||||||
"IDD4W2": 0.0,
|
|
||||||
"IDD5": 0.23500000000000001,
|
|
||||||
"IDD52": 0.0,
|
|
||||||
"IDD6": 0.02,
|
|
||||||
"IDD62": 0.0,
|
|
||||||
"VDD": 1.5,
|
|
||||||
"VDD2": 0.0,
|
|
||||||
"activation_limit": 4,
|
|
||||||
"addr_mapping": "RoRaBaCoCh",
|
|
||||||
"bank_groups_per_rank": 0,
|
|
||||||
"banks_per_rank": 8,
|
|
||||||
"beats_per_clock": 2,
|
|
||||||
"burst_length": 8,
|
|
||||||
"clk_domain": "system.clk_domain",
|
|
||||||
"conf_table_reported": true,
|
|
||||||
"data_clock_sync": false,
|
|
||||||
"device_bus_width": 8,
|
|
||||||
"device_rowbuffer_size": 1024,
|
|
||||||
"device_size": 536870912,
|
|
||||||
"devices_per_rank": 8,
|
|
||||||
"dll": true,
|
|
||||||
"enable_dram_powerdown": false,
|
|
||||||
"eventq_index": 0,
|
|
||||||
"image_file": "",
|
|
||||||
"in_addr_map": true,
|
|
||||||
"kvm_map": true,
|
|
||||||
"max_accesses_per_row": 16,
|
|
||||||
"null": false,
|
|
||||||
"page_policy": "open_adaptive",
|
|
||||||
"power_model": [],
|
|
||||||
"power_state": {
|
|
||||||
"type": "PowerState",
|
|
||||||
"cxx_class": "PowerState",
|
|
||||||
"name": "power_state",
|
|
||||||
"path": "system.mem_ctrls.dram.power_state",
|
|
||||||
"clk_gate_bins": 20,
|
|
||||||
"clk_gate_max": 1000000000000,
|
|
||||||
"clk_gate_min": 1000,
|
|
||||||
"default_state": "UNDEFINED",
|
|
||||||
"eventq_index": 0,
|
|
||||||
"leaders": [],
|
|
||||||
"possible_states": []
|
|
||||||
},
|
|
||||||
"range": "0:536870912",
|
|
||||||
"ranks_per_channel": 2,
|
|
||||||
"read_buffer_size": 32,
|
|
||||||
"tAAD": 1250,
|
|
||||||
"tBURST": 5000,
|
|
||||||
"tBURST_MAX": 5000,
|
|
||||||
"tBURST_MIN": 5000,
|
|
||||||
"tCCD_L": 0,
|
|
||||||
"tCCD_L_WR": 0,
|
|
||||||
"tCK": 1250,
|
|
||||||
"tCL": 13750,
|
|
||||||
"tCS": 2500,
|
|
||||||
"tPPD": 0,
|
|
||||||
"tRAS": 35000,
|
|
||||||
"tRCD": 13750,
|
|
||||||
"tREFI": 7800000,
|
|
||||||
"tRFC": 260000,
|
|
||||||
"tRP": 13750,
|
|
||||||
"tRRD": 6000,
|
|
||||||
"tRRD_L": 0,
|
|
||||||
"tRTP": 7500,
|
|
||||||
"tRTW": 2500,
|
|
||||||
"tWR": 15000,
|
|
||||||
"tWTR": 7500,
|
|
||||||
"tWTR_L": 7500,
|
|
||||||
"tXAW": 30000,
|
|
||||||
"tXP": 6000,
|
|
||||||
"tXPDLL": 0,
|
|
||||||
"tXS": 270000,
|
|
||||||
"tXSDLL": 0,
|
|
||||||
"two_cycle_activate": false,
|
|
||||||
"write_buffer_size": 64
|
|
||||||
},
|
|
||||||
"eventq_index": 0,
|
|
||||||
"mem_sched_policy": "frfcfs",
|
|
||||||
"min_writes_per_switch": 16,
|
|
||||||
"nvm": null,
|
|
||||||
"power_model": [],
|
|
||||||
"power_state": {
|
|
||||||
"type": "PowerState",
|
|
||||||
"cxx_class": "PowerState",
|
|
||||||
"name": "power_state",
|
|
||||||
"path": "system.mem_ctrls.power_state",
|
|
||||||
"clk_gate_bins": 20,
|
|
||||||
"clk_gate_max": 1000000000000,
|
|
||||||
"clk_gate_min": 1000,
|
|
||||||
"default_state": "UNDEFINED",
|
|
||||||
"eventq_index": 0,
|
|
||||||
"leaders": [],
|
|
||||||
"possible_states": []
|
|
||||||
},
|
|
||||||
"qos_policy": null,
|
|
||||||
"qos_priorities": 1,
|
|
||||||
"qos_priority_escalation": false,
|
|
||||||
"qos_q_policy": "fifo",
|
|
||||||
"qos_requestors": [
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
""
|
|
||||||
],
|
|
||||||
"qos_syncro_scheduler": false,
|
|
||||||
"qos_turnaround_policy": null,
|
|
||||||
"static_backend_latency": 10000,
|
|
||||||
"static_frontend_latency": 10000,
|
|
||||||
"system": "system",
|
|
||||||
"write_high_thresh_perc": 85,
|
|
||||||
"write_low_thresh_perc": 50,
|
|
||||||
"port": {
|
|
||||||
"role": "GEM5 RESPONDER",
|
|
||||||
"peer": "system.membus.mem_side_ports[0]",
|
|
||||||
"is_source": "False"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"membus": {
|
|
||||||
"type": "CoherentXBar",
|
|
||||||
"cxx_class": "CoherentXBar",
|
|
||||||
"name": "membus",
|
|
||||||
"path": "system.membus",
|
|
||||||
"clk_domain": "system.clk_domain",
|
|
||||||
"eventq_index": 0,
|
|
||||||
"forward_latency": 4,
|
|
||||||
"frontend_latency": 3,
|
|
||||||
"header_latency": 1,
|
|
||||||
"max_outstanding_snoops": 512,
|
|
||||||
"max_routing_table_size": 512,
|
|
||||||
"point_of_coherency": true,
|
|
||||||
"point_of_unification": true,
|
|
||||||
"power_model": [],
|
|
||||||
"power_state": {
|
|
||||||
"type": "PowerState",
|
|
||||||
"cxx_class": "PowerState",
|
|
||||||
"name": "power_state",
|
|
||||||
"path": "system.membus.power_state",
|
|
||||||
"clk_gate_bins": 20,
|
|
||||||
"clk_gate_max": 1000000000000,
|
|
||||||
"clk_gate_min": 1000,
|
|
||||||
"default_state": "UNDEFINED",
|
|
||||||
"eventq_index": 0,
|
|
||||||
"leaders": [],
|
|
||||||
"possible_states": []
|
|
||||||
},
|
|
||||||
"response_latency": 2,
|
|
||||||
"snoop_filter": {
|
|
||||||
"type": "SnoopFilter",
|
|
||||||
"cxx_class": "SnoopFilter",
|
|
||||||
"name": "snoop_filter",
|
|
||||||
"path": "system.membus.snoop_filter",
|
|
||||||
"eventq_index": 0,
|
|
||||||
"lookup_latency": 1,
|
|
||||||
"max_capacity": 8388608,
|
|
||||||
"system": "system"
|
|
||||||
},
|
|
||||||
"snoop_response_latency": 4,
|
|
||||||
"system": "system",
|
|
||||||
"use_default_range": false,
|
|
||||||
"width": 16,
|
|
||||||
"cpu_side_ports": {
|
|
||||||
"role": "GEM5 RESPONDER",
|
|
||||||
"peer": [
|
|
||||||
"system.system_port",
|
|
||||||
"system.cpu.icache_port",
|
|
||||||
"system.cpu.dcache_port",
|
|
||||||
"system.cpu.itb.walker.port",
|
|
||||||
"system.cpu.dtb.walker.port"
|
|
||||||
],
|
|
||||||
"is_source": "False"
|
|
||||||
},
|
|
||||||
"mem_side_ports": {
|
|
||||||
"role": "GEM5 REQUESTOR",
|
|
||||||
"peer": [
|
|
||||||
"system.mem_ctrls.port"
|
|
||||||
],
|
|
||||||
"is_source": "True"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"voltage_domain": {
|
|
||||||
"type": "VoltageDomain",
|
|
||||||
"cxx_class": "VoltageDomain",
|
|
||||||
"name": "voltage_domain",
|
|
||||||
"path": "system.voltage_domain",
|
|
||||||
"eventq_index": 0,
|
|
||||||
"voltage": [
|
|
||||||
1.0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"system_port": {
|
|
||||||
"role": "GEM5 REQUESTOR",
|
|
||||||
"peer": "system.membus.cpu_side_ports[0]",
|
|
||||||
"is_source": "True"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,19 +0,0 @@
|
||||||
processor : 0
|
|
||||||
vendor_id : Generic
|
|
||||||
cpu family : 0
|
|
||||||
model : 0
|
|
||||||
model name : Generic
|
|
||||||
stepping : 0
|
|
||||||
cpu MHz : 2000.000
|
|
||||||
cache size: : 2048.0K
|
|
||||||
physical id : 0
|
|
||||||
siblings : 1
|
|
||||||
core id : 0
|
|
||||||
cpu cores : 1
|
|
||||||
fpu : yes
|
|
||||||
fpu exception : yes
|
|
||||||
cpuid level : 1
|
|
||||||
wp : yes
|
|
||||||
flags : fpu
|
|
||||||
cache alignment : 64
|
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
cpu 0 0 0 0 0 0 0
|
|
||||||
cpu0 0 0 0 0 0 0 0
|
|
|
@ -1 +0,0 @@
|
||||||
0-0
|
|
|
@ -1 +0,0 @@
|
||||||
0-0
|
|
|
@ -1,512 +0,0 @@
|
||||||
|
|
||||||
---------- Begin Simulation Statistics ----------
|
|
||||||
final_tick 40238500 # Number of ticks from beginning of simulation (restored from checkpoints and never reset)
|
|
||||||
host_inst_rate 253216 # Simulator instruction rate (inst/s)
|
|
||||||
host_mem_usage 649276 # Number of bytes of host memory used
|
|
||||||
host_op_rate 305944 # Simulator op (including micro ops) rate (op/s)
|
|
||||||
host_seconds 0.26 # Real time elapsed on the host
|
|
||||||
host_tick_rate 153182512 # Simulator tick rate (ticks/s)
|
|
||||||
sim_freq 1000000000000 # Frequency of simulated ticks
|
|
||||||
sim_insts 66485 # Number of instructions simulated
|
|
||||||
sim_ops 80361 # Number of ops (including micro ops) simulated
|
|
||||||
sim_seconds 0.000040 # Number of seconds simulated
|
|
||||||
sim_ticks 40238500 # Number of ticks simulated
|
|
||||||
system.cpu.Branches 15435 # Number of branches fetched
|
|
||||||
system.cpu.committedInsts 66485 # Number of instructions committed
|
|
||||||
system.cpu.committedOps 80361 # Number of ops (including micro ops) committed
|
|
||||||
system.cpu.idle_fraction 0.000000 # Percentage of idle cycles
|
|
||||||
system.cpu.not_idle_fraction 1.000000 # Percentage of non-idle cycles
|
|
||||||
system.cpu.numCycles 80478 # number of cpu cycles simulated
|
|
||||||
system.cpu.numWorkItemsCompleted 0 # number of work items this cpu completed
|
|
||||||
system.cpu.numWorkItemsStarted 0 # number of work items this cpu started
|
|
||||||
system.cpu.num_busy_cycles 80477.998000 # Number of busy cycles
|
|
||||||
system.cpu.num_cc_register_reads 241335 # number of times the CC registers were read
|
|
||||||
system.cpu.num_cc_register_writes 34861 # number of times the CC registers were written
|
|
||||||
system.cpu.num_conditional_control_insts 10904 # number of instructions that are conditional controls
|
|
||||||
system.cpu.num_fp_alu_accesses 0 # Number of float alu accesses
|
|
||||||
system.cpu.num_fp_insts 0 # number of float instructions
|
|
||||||
system.cpu.num_fp_register_reads 0 # number of times the floating registers were read
|
|
||||||
system.cpu.num_fp_register_writes 0 # number of times the floating registers were written
|
|
||||||
system.cpu.num_func_calls 3485 # number of times a function call or return occured
|
|
||||||
system.cpu.num_idle_cycles 0.002000 # Number of idle cycles
|
|
||||||
system.cpu.num_int_alu_accesses 68835 # Number of integer alu accesses
|
|
||||||
system.cpu.num_int_insts 68835 # number of integer instructions
|
|
||||||
system.cpu.num_int_register_reads 112967 # number of times the integer registers were read
|
|
||||||
system.cpu.num_int_register_writes 45210 # number of times the integer registers were written
|
|
||||||
system.cpu.num_load_insts 15769 # Number of load instructions
|
|
||||||
system.cpu.num_mem_refs 28396 # number of memory refs
|
|
||||||
system.cpu.num_store_insts 12627 # Number of store instructions
|
|
||||||
system.cpu.num_vec_alu_accesses 0 # Number of vector alu accesses
|
|
||||||
system.cpu.num_vec_insts 0 # number of vector instructions
|
|
||||||
system.cpu.num_vec_register_reads 132 # number of times the vector registers were read
|
|
||||||
system.cpu.num_vec_register_writes 68 # number of times the vector registers were written
|
|
||||||
system.cpu.op_class::No_OpClass 0 0.00% 0.00% # Class of executed instruction
|
|
||||||
system.cpu.op_class::IntAlu 51942 64.57% 64.57% # Class of executed instruction
|
|
||||||
system.cpu.op_class::IntMult 106 0.13% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::IntDiv 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::FloatAdd 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::FloatCmp 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::FloatCvt 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::FloatMult 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::FloatMultAcc 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::FloatDiv 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::FloatMisc 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::FloatSqrt 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdAdd 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdAddAcc 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdAlu 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdCmp 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdCvt 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdMisc 1 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdMult 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdMultAcc 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdShift 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdShiftAcc 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdDiv 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdSqrt 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdFloatAdd 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdFloatAlu 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdFloatCmp 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdFloatCvt 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdFloatDiv 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdFloatMisc 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdFloatMult 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdFloatMultAcc 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdFloatSqrt 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdReduceAdd 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdReduceAlu 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdReduceCmp 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdFloatReduceAdd 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdFloatReduceCmp 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdAes 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdAesMix 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdSha1Hash 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdSha1Hash2 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdSha256Hash 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdSha256Hash2 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdShaSigma2 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdShaSigma3 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::SimdPredAlu 0 0.00% 64.70% # Class of executed instruction
|
|
||||||
system.cpu.op_class::MemRead 15769 19.60% 84.30% # Class of executed instruction
|
|
||||||
system.cpu.op_class::MemWrite 12627 15.70% 100.00% # Class of executed instruction
|
|
||||||
system.cpu.op_class::FloatMemRead 0 0.00% 100.00% # Class of executed instruction
|
|
||||||
system.cpu.op_class::FloatMemWrite 0 0.00% 100.00% # Class of executed instruction
|
|
||||||
system.cpu.op_class::IprAccess 0 0.00% 100.00% # Class of executed instruction
|
|
||||||
system.cpu.op_class::InstPrefetch 0 0.00% 100.00% # Class of executed instruction
|
|
||||||
system.cpu.op_class::total 80445 # Class of executed instruction
|
|
||||||
system.cpu.workload.numSyscalls 75 # Number of system calls
|
|
||||||
system.membus.snoop_filter.hit_multi_requests 0 # Number of requests hitting in the snoop filter with multiple (>1) holders of the requested data.
|
|
||||||
system.membus.snoop_filter.hit_multi_snoops 0 # Number of snoops hitting in the snoop filter with multiple (>1) holders of the requested data.
|
|
||||||
system.membus.snoop_filter.hit_single_requests 0 # Number of requests hitting in the snoop filter with a single holder of the requested data.
|
|
||||||
system.membus.snoop_filter.hit_single_snoops 0 # Number of snoops hitting in the snoop filter with a single holder of the requested data.
|
|
||||||
system.membus.snoop_filter.tot_requests 0 # Total number of requests made to the snoop filter.
|
|
||||||
system.membus.snoop_filter.tot_snoops 0 # Total number of snoops made to the snoop filter.
|
|
||||||
system.clk_domain.clock 1000 # Clock period in ticks
|
|
||||||
system.cpu.dtb.instHits 0 # ITB inst hits
|
|
||||||
system.cpu.dtb.instMisses 0 # ITB inst misses
|
|
||||||
system.cpu.dtb.readHits 0 # DTB read hits
|
|
||||||
system.cpu.dtb.readMisses 0 # DTB read misses
|
|
||||||
system.cpu.dtb.writeHits 0 # DTB write hits
|
|
||||||
system.cpu.dtb.writeMisses 0 # DTB write misses
|
|
||||||
system.cpu.dtb.inserts 0 # Number of times an entry is inserted into the TLB
|
|
||||||
system.cpu.dtb.flushTlb 0 # Number of times complete TLB was flushed
|
|
||||||
system.cpu.dtb.flushTlbMva 0 # Number of times TLB was flushed by MVA
|
|
||||||
system.cpu.dtb.flushTlbMvaAsid 0 # Number of times TLB was flushed by MVA & ASID
|
|
||||||
system.cpu.dtb.flushTlbAsid 0 # Number of times TLB was flushed by ASID
|
|
||||||
system.cpu.dtb.flushedEntries 0 # Number of entries that have been flushed from TLB
|
|
||||||
system.cpu.dtb.alignFaults 0 # Number of TLB faults due to alignment restrictions
|
|
||||||
system.cpu.dtb.prefetchFaults 0 # Number of TLB faults due to prefetch
|
|
||||||
system.cpu.dtb.domainFaults 0 # Number of TLB faults due to domain restrictions
|
|
||||||
system.cpu.dtb.permsFaults 0 # Number of TLB faults due to permissions restrictions
|
|
||||||
system.cpu.dtb.readAccesses 0 # DTB read accesses
|
|
||||||
system.cpu.dtb.writeAccesses 0 # DTB write accesses
|
|
||||||
system.cpu.dtb.instAccesses 0 # ITB inst accesses
|
|
||||||
system.cpu.dtb.hits 0 # Total TLB (inst and data) hits
|
|
||||||
system.cpu.dtb.misses 0 # Total TLB (inst and data) misses
|
|
||||||
system.cpu.dtb.accesses 0 # Total TLB (inst and data) accesses
|
|
||||||
system.cpu.dtb.stage2_mmu.stage2_tlb.instHits 0 # ITB inst hits
|
|
||||||
system.cpu.dtb.stage2_mmu.stage2_tlb.instMisses 0 # ITB inst misses
|
|
||||||
system.cpu.dtb.stage2_mmu.stage2_tlb.readHits 0 # DTB read hits
|
|
||||||
system.cpu.dtb.stage2_mmu.stage2_tlb.readMisses 0 # DTB read misses
|
|
||||||
system.cpu.dtb.stage2_mmu.stage2_tlb.writeHits 0 # DTB write hits
|
|
||||||
system.cpu.dtb.stage2_mmu.stage2_tlb.writeMisses 0 # DTB write misses
|
|
||||||
system.cpu.dtb.stage2_mmu.stage2_tlb.inserts 0 # Number of times an entry is inserted into the TLB
|
|
||||||
system.cpu.dtb.stage2_mmu.stage2_tlb.flushTlb 0 # Number of times complete TLB was flushed
|
|
||||||
system.cpu.dtb.stage2_mmu.stage2_tlb.flushTlbMva 0 # Number of times TLB was flushed by MVA
|
|
||||||
system.cpu.dtb.stage2_mmu.stage2_tlb.flushTlbMvaAsid 0 # Number of times TLB was flushed by MVA & ASID
|
|
||||||
system.cpu.dtb.stage2_mmu.stage2_tlb.flushTlbAsid 0 # Number of times TLB was flushed by ASID
|
|
||||||
system.cpu.dtb.stage2_mmu.stage2_tlb.flushedEntries 0 # Number of entries that have been flushed from TLB
|
|
||||||
system.cpu.dtb.stage2_mmu.stage2_tlb.alignFaults 0 # Number of TLB faults due to alignment restrictions
|
|
||||||
system.cpu.dtb.stage2_mmu.stage2_tlb.prefetchFaults 0 # Number of TLB faults due to prefetch
|
|
||||||
system.cpu.dtb.stage2_mmu.stage2_tlb.domainFaults 0 # Number of TLB faults due to domain restrictions
|
|
||||||
system.cpu.dtb.stage2_mmu.stage2_tlb.permsFaults 0 # Number of TLB faults due to permissions restrictions
|
|
||||||
system.cpu.dtb.stage2_mmu.stage2_tlb.readAccesses 0 # DTB read accesses
|
|
||||||
system.cpu.dtb.stage2_mmu.stage2_tlb.writeAccesses 0 # DTB write accesses
|
|
||||||
system.cpu.dtb.stage2_mmu.stage2_tlb.instAccesses 0 # ITB inst accesses
|
|
||||||
system.cpu.dtb.stage2_mmu.stage2_tlb.hits 0 # Total TLB (inst and data) hits
|
|
||||||
system.cpu.dtb.stage2_mmu.stage2_tlb.misses 0 # Total TLB (inst and data) misses
|
|
||||||
system.cpu.dtb.stage2_mmu.stage2_tlb.accesses 0 # Total TLB (inst and data) accesses
|
|
||||||
system.cpu.dtb.stage2_mmu.stage2_tlb.walker.walks 0 # Table walker walks requested
|
|
||||||
system.cpu.dtb.stage2_mmu.stage2_tlb.walker.requestOrigin_Requested::Data 0 # Table walker requests started/completed, data/inst
|
|
||||||
system.cpu.dtb.stage2_mmu.stage2_tlb.walker.requestOrigin_Requested::Inst 0 # Table walker requests started/completed, data/inst
|
|
||||||
system.cpu.dtb.stage2_mmu.stage2_tlb.walker.requestOrigin_Requested::total 0 # Table walker requests started/completed, data/inst
|
|
||||||
system.cpu.dtb.stage2_mmu.stage2_tlb.walker.requestOrigin_Completed::Data 0 # Table walker requests started/completed, data/inst
|
|
||||||
system.cpu.dtb.stage2_mmu.stage2_tlb.walker.requestOrigin_Completed::Inst 0 # Table walker requests started/completed, data/inst
|
|
||||||
system.cpu.dtb.stage2_mmu.stage2_tlb.walker.requestOrigin_Completed::total 0 # Table walker requests started/completed, data/inst
|
|
||||||
system.cpu.dtb.stage2_mmu.stage2_tlb.walker.requestOrigin::total 0 # Table walker requests started/completed, data/inst
|
|
||||||
system.cpu.dtb.stage2_mmu.stage2_tlb.walker.power_state.pwrStateResidencyTicks::UNDEFINED 40238500 # Cumulative time (in ticks) in various power states
|
|
||||||
system.cpu.dtb.walker.walks 0 # Table walker walks requested
|
|
||||||
system.cpu.dtb.walker.requestOrigin_Requested::Data 0 # Table walker requests started/completed, data/inst
|
|
||||||
system.cpu.dtb.walker.requestOrigin_Requested::Inst 0 # Table walker requests started/completed, data/inst
|
|
||||||
system.cpu.dtb.walker.requestOrigin_Requested::total 0 # Table walker requests started/completed, data/inst
|
|
||||||
system.cpu.dtb.walker.requestOrigin_Completed::Data 0 # Table walker requests started/completed, data/inst
|
|
||||||
system.cpu.dtb.walker.requestOrigin_Completed::Inst 0 # Table walker requests started/completed, data/inst
|
|
||||||
system.cpu.dtb.walker.requestOrigin_Completed::total 0 # Table walker requests started/completed, data/inst
|
|
||||||
system.cpu.dtb.walker.requestOrigin::total 0 # Table walker requests started/completed, data/inst
|
|
||||||
system.cpu.dtb.walker.power_state.pwrStateResidencyTicks::UNDEFINED 40238500 # Cumulative time (in ticks) in various power states
|
|
||||||
system.cpu.itb.instHits 0 # ITB inst hits
|
|
||||||
system.cpu.itb.instMisses 0 # ITB inst misses
|
|
||||||
system.cpu.itb.readHits 0 # DTB read hits
|
|
||||||
system.cpu.itb.readMisses 0 # DTB read misses
|
|
||||||
system.cpu.itb.writeHits 0 # DTB write hits
|
|
||||||
system.cpu.itb.writeMisses 0 # DTB write misses
|
|
||||||
system.cpu.itb.inserts 0 # Number of times an entry is inserted into the TLB
|
|
||||||
system.cpu.itb.flushTlb 0 # Number of times complete TLB was flushed
|
|
||||||
system.cpu.itb.flushTlbMva 0 # Number of times TLB was flushed by MVA
|
|
||||||
system.cpu.itb.flushTlbMvaAsid 0 # Number of times TLB was flushed by MVA & ASID
|
|
||||||
system.cpu.itb.flushTlbAsid 0 # Number of times TLB was flushed by ASID
|
|
||||||
system.cpu.itb.flushedEntries 0 # Number of entries that have been flushed from TLB
|
|
||||||
system.cpu.itb.alignFaults 0 # Number of TLB faults due to alignment restrictions
|
|
||||||
system.cpu.itb.prefetchFaults 0 # Number of TLB faults due to prefetch
|
|
||||||
system.cpu.itb.domainFaults 0 # Number of TLB faults due to domain restrictions
|
|
||||||
system.cpu.itb.permsFaults 0 # Number of TLB faults due to permissions restrictions
|
|
||||||
system.cpu.itb.readAccesses 0 # DTB read accesses
|
|
||||||
system.cpu.itb.writeAccesses 0 # DTB write accesses
|
|
||||||
system.cpu.itb.instAccesses 0 # ITB inst accesses
|
|
||||||
system.cpu.itb.hits 0 # Total TLB (inst and data) hits
|
|
||||||
system.cpu.itb.misses 0 # Total TLB (inst and data) misses
|
|
||||||
system.cpu.itb.accesses 0 # Total TLB (inst and data) accesses
|
|
||||||
system.cpu.itb.stage2_mmu.stage2_tlb.instHits 0 # ITB inst hits
|
|
||||||
system.cpu.itb.stage2_mmu.stage2_tlb.instMisses 0 # ITB inst misses
|
|
||||||
system.cpu.itb.stage2_mmu.stage2_tlb.readHits 0 # DTB read hits
|
|
||||||
system.cpu.itb.stage2_mmu.stage2_tlb.readMisses 0 # DTB read misses
|
|
||||||
system.cpu.itb.stage2_mmu.stage2_tlb.writeHits 0 # DTB write hits
|
|
||||||
system.cpu.itb.stage2_mmu.stage2_tlb.writeMisses 0 # DTB write misses
|
|
||||||
system.cpu.itb.stage2_mmu.stage2_tlb.inserts 0 # Number of times an entry is inserted into the TLB
|
|
||||||
system.cpu.itb.stage2_mmu.stage2_tlb.flushTlb 0 # Number of times complete TLB was flushed
|
|
||||||
system.cpu.itb.stage2_mmu.stage2_tlb.flushTlbMva 0 # Number of times TLB was flushed by MVA
|
|
||||||
system.cpu.itb.stage2_mmu.stage2_tlb.flushTlbMvaAsid 0 # Number of times TLB was flushed by MVA & ASID
|
|
||||||
system.cpu.itb.stage2_mmu.stage2_tlb.flushTlbAsid 0 # Number of times TLB was flushed by ASID
|
|
||||||
system.cpu.itb.stage2_mmu.stage2_tlb.flushedEntries 0 # Number of entries that have been flushed from TLB
|
|
||||||
system.cpu.itb.stage2_mmu.stage2_tlb.alignFaults 0 # Number of TLB faults due to alignment restrictions
|
|
||||||
system.cpu.itb.stage2_mmu.stage2_tlb.prefetchFaults 0 # Number of TLB faults due to prefetch
|
|
||||||
system.cpu.itb.stage2_mmu.stage2_tlb.domainFaults 0 # Number of TLB faults due to domain restrictions
|
|
||||||
system.cpu.itb.stage2_mmu.stage2_tlb.permsFaults 0 # Number of TLB faults due to permissions restrictions
|
|
||||||
system.cpu.itb.stage2_mmu.stage2_tlb.readAccesses 0 # DTB read accesses
|
|
||||||
system.cpu.itb.stage2_mmu.stage2_tlb.writeAccesses 0 # DTB write accesses
|
|
||||||
system.cpu.itb.stage2_mmu.stage2_tlb.instAccesses 0 # ITB inst accesses
|
|
||||||
system.cpu.itb.stage2_mmu.stage2_tlb.hits 0 # Total TLB (inst and data) hits
|
|
||||||
system.cpu.itb.stage2_mmu.stage2_tlb.misses 0 # Total TLB (inst and data) misses
|
|
||||||
system.cpu.itb.stage2_mmu.stage2_tlb.accesses 0 # Total TLB (inst and data) accesses
|
|
||||||
system.cpu.itb.stage2_mmu.stage2_tlb.walker.walks 0 # Table walker walks requested
|
|
||||||
system.cpu.itb.stage2_mmu.stage2_tlb.walker.requestOrigin_Requested::Data 0 # Table walker requests started/completed, data/inst
|
|
||||||
system.cpu.itb.stage2_mmu.stage2_tlb.walker.requestOrigin_Requested::Inst 0 # Table walker requests started/completed, data/inst
|
|
||||||
system.cpu.itb.stage2_mmu.stage2_tlb.walker.requestOrigin_Requested::total 0 # Table walker requests started/completed, data/inst
|
|
||||||
system.cpu.itb.stage2_mmu.stage2_tlb.walker.requestOrigin_Completed::Data 0 # Table walker requests started/completed, data/inst
|
|
||||||
system.cpu.itb.stage2_mmu.stage2_tlb.walker.requestOrigin_Completed::Inst 0 # Table walker requests started/completed, data/inst
|
|
||||||
system.cpu.itb.stage2_mmu.stage2_tlb.walker.requestOrigin_Completed::total 0 # Table walker requests started/completed, data/inst
|
|
||||||
system.cpu.itb.stage2_mmu.stage2_tlb.walker.requestOrigin::total 0 # Table walker requests started/completed, data/inst
|
|
||||||
system.cpu.itb.stage2_mmu.stage2_tlb.walker.power_state.pwrStateResidencyTicks::UNDEFINED 40238500 # Cumulative time (in ticks) in various power states
|
|
||||||
system.cpu.itb.walker.walks 0 # Table walker walks requested
|
|
||||||
system.cpu.itb.walker.requestOrigin_Requested::Data 0 # Table walker requests started/completed, data/inst
|
|
||||||
system.cpu.itb.walker.requestOrigin_Requested::Inst 0 # Table walker requests started/completed, data/inst
|
|
||||||
system.cpu.itb.walker.requestOrigin_Requested::total 0 # Table walker requests started/completed, data/inst
|
|
||||||
system.cpu.itb.walker.requestOrigin_Completed::Data 0 # Table walker requests started/completed, data/inst
|
|
||||||
system.cpu.itb.walker.requestOrigin_Completed::Inst 0 # Table walker requests started/completed, data/inst
|
|
||||||
system.cpu.itb.walker.requestOrigin_Completed::total 0 # Table walker requests started/completed, data/inst
|
|
||||||
system.cpu.itb.walker.requestOrigin::total 0 # Table walker requests started/completed, data/inst
|
|
||||||
system.cpu.itb.walker.power_state.pwrStateResidencyTicks::UNDEFINED 40238500 # Cumulative time (in ticks) in various power states
|
|
||||||
system.cpu.power_state.pwrStateResidencyTicks::ON 40238500 # Cumulative time (in ticks) in various power states
|
|
||||||
system.cpu.thread_0.numInsts 0 # Number of Instructions committed
|
|
||||||
system.cpu.thread_0.numOps 0 # Number of Ops committed
|
|
||||||
system.cpu.thread_0.numMemRefs 0 # Number of Memory References
|
|
||||||
system.cpu_clk_domain.clock 500 # Clock period in ticks
|
|
||||||
system.cpu_voltage_domain.voltage 1 # Voltage in Volts
|
|
||||||
system.mem_ctrls.priorityMinLatency 0.000000000000 # per QoS priority minimum request to response latency (s)
|
|
||||||
system.mem_ctrls.priorityMaxLatency 0.000000000000 # per QoS priority maximum request to response latency (s)
|
|
||||||
system.mem_ctrls.numReadWriteTurnArounds 0 # Number of turnarounds from READ to WRITE
|
|
||||||
system.mem_ctrls.numWriteReadTurnArounds 0 # Number of turnarounds from WRITE to READ
|
|
||||||
system.mem_ctrls.numStayReadState 0 # Number of times bus staying in READ state
|
|
||||||
system.mem_ctrls.numStayWriteState 0 # Number of times bus staying in WRITE state
|
|
||||||
system.mem_ctrls.readReqs 0 # Number of read requests accepted
|
|
||||||
system.mem_ctrls.writeReqs 0 # Number of write requests accepted
|
|
||||||
system.mem_ctrls.readBursts 0 # Number of controller read bursts, including those serviced by the write queue
|
|
||||||
system.mem_ctrls.writeBursts 0 # Number of controller write bursts, including those merged in the write queue
|
|
||||||
system.mem_ctrls.servicedByWrQ 0 # Number of controller read bursts serviced by the write queue
|
|
||||||
system.mem_ctrls.mergedWrBursts 0 # Number of controller write bursts merged with an existing one
|
|
||||||
system.mem_ctrls.neitherReadNorWriteReqs 0 # Number of requests that are neither read nor write
|
|
||||||
system.mem_ctrls.avgRdQLen 0.00 # Average read queue length when enqueuing
|
|
||||||
system.mem_ctrls.avgWrQLen 0.00 # Average write queue length when enqueuing
|
|
||||||
system.mem_ctrls.numRdRetry 0 # Number of times read queue was full causing retry
|
|
||||||
system.mem_ctrls.numWrRetry 0 # Number of times write queue was full causing retry
|
|
||||||
system.mem_ctrls.readPktSize::0 0 # Read request sizes (log2)
|
|
||||||
system.mem_ctrls.readPktSize::1 0 # Read request sizes (log2)
|
|
||||||
system.mem_ctrls.readPktSize::2 0 # Read request sizes (log2)
|
|
||||||
system.mem_ctrls.readPktSize::3 0 # Read request sizes (log2)
|
|
||||||
system.mem_ctrls.readPktSize::4 0 # Read request sizes (log2)
|
|
||||||
system.mem_ctrls.readPktSize::5 0 # Read request sizes (log2)
|
|
||||||
system.mem_ctrls.readPktSize::6 0 # Read request sizes (log2)
|
|
||||||
system.mem_ctrls.writePktSize::0 0 # Write request sizes (log2)
|
|
||||||
system.mem_ctrls.writePktSize::1 0 # Write request sizes (log2)
|
|
||||||
system.mem_ctrls.writePktSize::2 0 # Write request sizes (log2)
|
|
||||||
system.mem_ctrls.writePktSize::3 0 # Write request sizes (log2)
|
|
||||||
system.mem_ctrls.writePktSize::4 0 # Write request sizes (log2)
|
|
||||||
system.mem_ctrls.writePktSize::5 0 # Write request sizes (log2)
|
|
||||||
system.mem_ctrls.writePktSize::6 0 # Write request sizes (log2)
|
|
||||||
system.mem_ctrls.rdQLenPdf::0 0 # What read queue length does an incoming req see
|
|
||||||
system.mem_ctrls.rdQLenPdf::1 0 # What read queue length does an incoming req see
|
|
||||||
system.mem_ctrls.rdQLenPdf::2 0 # What read queue length does an incoming req see
|
|
||||||
system.mem_ctrls.rdQLenPdf::3 0 # What read queue length does an incoming req see
|
|
||||||
system.mem_ctrls.rdQLenPdf::4 0 # What read queue length does an incoming req see
|
|
||||||
system.mem_ctrls.rdQLenPdf::5 0 # What read queue length does an incoming req see
|
|
||||||
system.mem_ctrls.rdQLenPdf::6 0 # What read queue length does an incoming req see
|
|
||||||
system.mem_ctrls.rdQLenPdf::7 0 # What read queue length does an incoming req see
|
|
||||||
system.mem_ctrls.rdQLenPdf::8 0 # What read queue length does an incoming req see
|
|
||||||
system.mem_ctrls.rdQLenPdf::9 0 # What read queue length does an incoming req see
|
|
||||||
system.mem_ctrls.rdQLenPdf::10 0 # What read queue length does an incoming req see
|
|
||||||
system.mem_ctrls.rdQLenPdf::11 0 # What read queue length does an incoming req see
|
|
||||||
system.mem_ctrls.rdQLenPdf::12 0 # What read queue length does an incoming req see
|
|
||||||
system.mem_ctrls.rdQLenPdf::13 0 # What read queue length does an incoming req see
|
|
||||||
system.mem_ctrls.rdQLenPdf::14 0 # What read queue length does an incoming req see
|
|
||||||
system.mem_ctrls.rdQLenPdf::15 0 # What read queue length does an incoming req see
|
|
||||||
system.mem_ctrls.rdQLenPdf::16 0 # What read queue length does an incoming req see
|
|
||||||
system.mem_ctrls.rdQLenPdf::17 0 # What read queue length does an incoming req see
|
|
||||||
system.mem_ctrls.rdQLenPdf::18 0 # What read queue length does an incoming req see
|
|
||||||
system.mem_ctrls.rdQLenPdf::19 0 # What read queue length does an incoming req see
|
|
||||||
system.mem_ctrls.rdQLenPdf::20 0 # What read queue length does an incoming req see
|
|
||||||
system.mem_ctrls.rdQLenPdf::21 0 # What read queue length does an incoming req see
|
|
||||||
system.mem_ctrls.rdQLenPdf::22 0 # What read queue length does an incoming req see
|
|
||||||
system.mem_ctrls.rdQLenPdf::23 0 # What read queue length does an incoming req see
|
|
||||||
system.mem_ctrls.rdQLenPdf::24 0 # What read queue length does an incoming req see
|
|
||||||
system.mem_ctrls.rdQLenPdf::25 0 # What read queue length does an incoming req see
|
|
||||||
system.mem_ctrls.rdQLenPdf::26 0 # What read queue length does an incoming req see
|
|
||||||
system.mem_ctrls.rdQLenPdf::27 0 # What read queue length does an incoming req see
|
|
||||||
system.mem_ctrls.rdQLenPdf::28 0 # What read queue length does an incoming req see
|
|
||||||
system.mem_ctrls.rdQLenPdf::29 0 # What read queue length does an incoming req see
|
|
||||||
system.mem_ctrls.rdQLenPdf::30 0 # What read queue length does an incoming req see
|
|
||||||
system.mem_ctrls.rdQLenPdf::31 0 # What read queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::0 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::1 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::2 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::3 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::4 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::5 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::6 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::7 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::8 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::9 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::10 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::11 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::12 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::13 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::14 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::15 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::16 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::17 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::18 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::19 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::20 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::21 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::22 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::23 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::24 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::25 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::26 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::27 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::28 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::29 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::30 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::31 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::32 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::33 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::34 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::35 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::36 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::37 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::38 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::39 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::40 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::41 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::42 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::43 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::44 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::45 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::46 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::47 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::48 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::49 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::50 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::51 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::52 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::53 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::54 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::55 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::56 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::57 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::58 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::59 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::60 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::61 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::62 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.wrQLenPdf::63 0 # What write queue length does an incoming req see
|
|
||||||
system.mem_ctrls.bytesReadWrQ 0 # Total number of bytes read from write queue
|
|
||||||
system.mem_ctrls.bytesReadSys 0 # Total read bytes from the system interface side
|
|
||||||
system.mem_ctrls.bytesWrittenSys 0 # Total written bytes from the system interface side
|
|
||||||
system.mem_ctrls.avgRdBWSys 0.00 # Average system read bandwidth in MiByte/s
|
|
||||||
system.mem_ctrls.avgWrBWSys 0.00 # Average system write bandwidth in MiByte/s
|
|
||||||
system.mem_ctrls.totGap 0 # Total gap between requests
|
|
||||||
system.mem_ctrls.avgGap nan # Average gap between requests
|
|
||||||
system.mem_ctrls.dram.bytes_read::.cpu.inst 270500 # Number of bytes read from this memory
|
|
||||||
system.mem_ctrls.dram.bytes_read::.cpu.data 71059 # Number of bytes read from this memory
|
|
||||||
system.mem_ctrls.dram.bytes_read::total 341559 # Number of bytes read from this memory
|
|
||||||
system.mem_ctrls.dram.bytes_inst_read::.cpu.inst 270500 # Number of instructions bytes read from this memory
|
|
||||||
system.mem_ctrls.dram.bytes_inst_read::total 270500 # Number of instructions bytes read from this memory
|
|
||||||
system.mem_ctrls.dram.bytes_written::.cpu.data 47718 # Number of bytes written to this memory
|
|
||||||
system.mem_ctrls.dram.bytes_written::total 47718 # Number of bytes written to this memory
|
|
||||||
system.mem_ctrls.dram.num_reads::.cpu.inst 66602 # Number of read requests responded to by this memory
|
|
||||||
system.mem_ctrls.dram.num_reads::.cpu.data 15588 # Number of read requests responded to by this memory
|
|
||||||
system.mem_ctrls.dram.num_reads::total 82190 # Number of read requests responded to by this memory
|
|
||||||
system.mem_ctrls.dram.num_writes::.cpu.data 12255 # Number of write requests responded to by this memory
|
|
||||||
system.mem_ctrls.dram.num_writes::total 12255 # Number of write requests responded to by this memory
|
|
||||||
system.mem_ctrls.dram.bw_read::.cpu.inst 6722417585 # Total read bandwidth from this memory (bytes/s)
|
|
||||||
system.mem_ctrls.dram.bw_read::.cpu.data 1765945550 # Total read bandwidth from this memory (bytes/s)
|
|
||||||
system.mem_ctrls.dram.bw_read::total 8488363135 # Total read bandwidth from this memory (bytes/s)
|
|
||||||
system.mem_ctrls.dram.bw_inst_read::.cpu.inst 6722417585 # Instruction read bandwidth from this memory (bytes/s)
|
|
||||||
system.mem_ctrls.dram.bw_inst_read::total 6722417585 # Instruction read bandwidth from this memory (bytes/s)
|
|
||||||
system.mem_ctrls.dram.bw_write::.cpu.data 1185879195 # Write bandwidth from this memory (bytes/s)
|
|
||||||
system.mem_ctrls.dram.bw_write::total 1185879195 # Write bandwidth from this memory (bytes/s)
|
|
||||||
system.mem_ctrls.dram.bw_total::.cpu.inst 6722417585 # Total bandwidth to/from this memory (bytes/s)
|
|
||||||
system.mem_ctrls.dram.bw_total::.cpu.data 2951824745 # Total bandwidth to/from this memory (bytes/s)
|
|
||||||
system.mem_ctrls.dram.bw_total::total 9674242330 # Total bandwidth to/from this memory (bytes/s)
|
|
||||||
system.mem_ctrls.dram.readBursts 0 # Number of DRAM read bursts
|
|
||||||
system.mem_ctrls.dram.writeBursts 0 # Number of DRAM write bursts
|
|
||||||
system.mem_ctrls.dram.perBankRdBursts::0 0 # Per bank write bursts
|
|
||||||
system.mem_ctrls.dram.perBankRdBursts::1 0 # Per bank write bursts
|
|
||||||
system.mem_ctrls.dram.perBankRdBursts::2 0 # Per bank write bursts
|
|
||||||
system.mem_ctrls.dram.perBankRdBursts::3 0 # Per bank write bursts
|
|
||||||
system.mem_ctrls.dram.perBankRdBursts::4 0 # Per bank write bursts
|
|
||||||
system.mem_ctrls.dram.perBankRdBursts::5 0 # Per bank write bursts
|
|
||||||
system.mem_ctrls.dram.perBankRdBursts::6 0 # Per bank write bursts
|
|
||||||
system.mem_ctrls.dram.perBankRdBursts::7 0 # Per bank write bursts
|
|
||||||
system.mem_ctrls.dram.perBankRdBursts::8 0 # Per bank write bursts
|
|
||||||
system.mem_ctrls.dram.perBankRdBursts::9 0 # Per bank write bursts
|
|
||||||
system.mem_ctrls.dram.perBankRdBursts::10 0 # Per bank write bursts
|
|
||||||
system.mem_ctrls.dram.perBankRdBursts::11 0 # Per bank write bursts
|
|
||||||
system.mem_ctrls.dram.perBankRdBursts::12 0 # Per bank write bursts
|
|
||||||
system.mem_ctrls.dram.perBankRdBursts::13 0 # Per bank write bursts
|
|
||||||
system.mem_ctrls.dram.perBankRdBursts::14 0 # Per bank write bursts
|
|
||||||
system.mem_ctrls.dram.perBankRdBursts::15 0 # Per bank write bursts
|
|
||||||
system.mem_ctrls.dram.perBankWrBursts::0 0 # Per bank write bursts
|
|
||||||
system.mem_ctrls.dram.perBankWrBursts::1 0 # Per bank write bursts
|
|
||||||
system.mem_ctrls.dram.perBankWrBursts::2 0 # Per bank write bursts
|
|
||||||
system.mem_ctrls.dram.perBankWrBursts::3 0 # Per bank write bursts
|
|
||||||
system.mem_ctrls.dram.perBankWrBursts::4 0 # Per bank write bursts
|
|
||||||
system.mem_ctrls.dram.perBankWrBursts::5 0 # Per bank write bursts
|
|
||||||
system.mem_ctrls.dram.perBankWrBursts::6 0 # Per bank write bursts
|
|
||||||
system.mem_ctrls.dram.perBankWrBursts::7 0 # Per bank write bursts
|
|
||||||
system.mem_ctrls.dram.perBankWrBursts::8 0 # Per bank write bursts
|
|
||||||
system.mem_ctrls.dram.perBankWrBursts::9 0 # Per bank write bursts
|
|
||||||
system.mem_ctrls.dram.perBankWrBursts::10 0 # Per bank write bursts
|
|
||||||
system.mem_ctrls.dram.perBankWrBursts::11 0 # Per bank write bursts
|
|
||||||
system.mem_ctrls.dram.perBankWrBursts::12 0 # Per bank write bursts
|
|
||||||
system.mem_ctrls.dram.perBankWrBursts::13 0 # Per bank write bursts
|
|
||||||
system.mem_ctrls.dram.perBankWrBursts::14 0 # Per bank write bursts
|
|
||||||
system.mem_ctrls.dram.perBankWrBursts::15 0 # Per bank write bursts
|
|
||||||
system.mem_ctrls.dram.totQLat 0 # Total ticks spent queuing
|
|
||||||
system.mem_ctrls.dram.totBusLat 0 # Total ticks spent in databus transfers
|
|
||||||
system.mem_ctrls.dram.totMemAccLat 0 # Total ticks spent from burst creation until serviced by the DRAM
|
|
||||||
system.mem_ctrls.dram.avgQLat nan # Average queueing delay per DRAM burst
|
|
||||||
system.mem_ctrls.dram.avgBusLat nan # Average bus latency per DRAM burst
|
|
||||||
system.mem_ctrls.dram.avgMemAccLat nan # Average memory access latency per DRAM burst
|
|
||||||
system.mem_ctrls.dram.readRowHits 0 # Number of row buffer hits during reads
|
|
||||||
system.mem_ctrls.dram.writeRowHits 0 # Number of row buffer hits during writes
|
|
||||||
system.mem_ctrls.dram.readRowHitRate nan # Row buffer hit rate for reads
|
|
||||||
system.mem_ctrls.dram.writeRowHitRate nan # Row buffer hit rate for writes
|
|
||||||
system.mem_ctrls.dram.bytesRead 0 # Total number of bytes read from DRAM
|
|
||||||
system.mem_ctrls.dram.bytesWritten 0 # Total number of bytes written to DRAM
|
|
||||||
system.mem_ctrls.dram.avgRdBW 0 # Average DRAM read bandwidth in MiBytes/s
|
|
||||||
system.mem_ctrls.dram.avgWrBW 0 # Average DRAM write bandwidth in MiBytes/s
|
|
||||||
system.mem_ctrls.dram.peakBW 12800.00 # Theoretical peak bandwidth in MiByte/s
|
|
||||||
system.mem_ctrls.dram.busUtil 0.00 # Data bus utilization in percentage
|
|
||||||
system.mem_ctrls.dram.busUtilRead 0.00 # Data bus utilization in percentage for reads
|
|
||||||
system.mem_ctrls.dram.busUtilWrite 0.00 # Data bus utilization in percentage for writes
|
|
||||||
system.mem_ctrls.dram.pageHitRate nan # Row buffer hit rate, read and write combined
|
|
||||||
system.mem_ctrls.dram.power_state.pwrStateResidencyTicks::UNDEFINED 40238500 # Cumulative time (in ticks) in various power states
|
|
||||||
system.mem_ctrls.dram.rank0.actEnergy 0 # Energy for activate commands per rank (pJ)
|
|
||||||
system.mem_ctrls.dram.rank0.preEnergy 0 # Energy for precharge commands per rank (pJ)
|
|
||||||
system.mem_ctrls.dram.rank0.readEnergy 0 # Energy for read commands per rank (pJ)
|
|
||||||
system.mem_ctrls.dram.rank0.writeEnergy 0 # Energy for write commands per rank (pJ)
|
|
||||||
system.mem_ctrls.dram.rank0.refreshEnergy 0 # Energy for refresh commands per rank (pJ)
|
|
||||||
system.mem_ctrls.dram.rank0.actBackEnergy 0 # Energy for active background per rank (pJ)
|
|
||||||
system.mem_ctrls.dram.rank0.preBackEnergy 15451680 # Energy for precharge background per rank (pJ)
|
|
||||||
system.mem_ctrls.dram.rank0.actPowerDownEnergy 0 # Energy for active power-down per rank (pJ)
|
|
||||||
system.mem_ctrls.dram.rank0.prePowerDownEnergy 0 # Energy for precharge power-down per rank (pJ)
|
|
||||||
system.mem_ctrls.dram.rank0.selfRefreshEnergy 0 # Energy for self refresh per rank (pJ)
|
|
||||||
system.mem_ctrls.dram.rank0.totalEnergy 15451680 # Total energy per rank (pJ)
|
|
||||||
system.mem_ctrls.dram.rank0.averagePower 384.002386 # Core power per rank (mW)
|
|
||||||
system.mem_ctrls.dram.rank0.totalIdleTime 0 # Total Idle time Per DRAM Rank
|
|
||||||
system.mem_ctrls.dram.rank0.pwrStateTime::IDLE 40238500 # Time in different power states
|
|
||||||
system.mem_ctrls.dram.rank0.pwrStateTime::REF 0 # Time in different power states
|
|
||||||
system.mem_ctrls.dram.rank0.pwrStateTime::SREF 0 # Time in different power states
|
|
||||||
system.mem_ctrls.dram.rank0.pwrStateTime::PRE_PDN 0 # Time in different power states
|
|
||||||
system.mem_ctrls.dram.rank0.pwrStateTime::ACT 0 # Time in different power states
|
|
||||||
system.mem_ctrls.dram.rank0.pwrStateTime::ACT_PDN 0 # Time in different power states
|
|
||||||
system.mem_ctrls.dram.rank1.actEnergy 0 # Energy for activate commands per rank (pJ)
|
|
||||||
system.mem_ctrls.dram.rank1.preEnergy 0 # Energy for precharge commands per rank (pJ)
|
|
||||||
system.mem_ctrls.dram.rank1.readEnergy 0 # Energy for read commands per rank (pJ)
|
|
||||||
system.mem_ctrls.dram.rank1.writeEnergy 0 # Energy for write commands per rank (pJ)
|
|
||||||
system.mem_ctrls.dram.rank1.refreshEnergy 0 # Energy for refresh commands per rank (pJ)
|
|
||||||
system.mem_ctrls.dram.rank1.actBackEnergy 0 # Energy for active background per rank (pJ)
|
|
||||||
system.mem_ctrls.dram.rank1.preBackEnergy 15451680 # Energy for precharge background per rank (pJ)
|
|
||||||
system.mem_ctrls.dram.rank1.actPowerDownEnergy 0 # Energy for active power-down per rank (pJ)
|
|
||||||
system.mem_ctrls.dram.rank1.prePowerDownEnergy 0 # Energy for precharge power-down per rank (pJ)
|
|
||||||
system.mem_ctrls.dram.rank1.selfRefreshEnergy 0 # Energy for self refresh per rank (pJ)
|
|
||||||
system.mem_ctrls.dram.rank1.totalEnergy 15451680 # Total energy per rank (pJ)
|
|
||||||
system.mem_ctrls.dram.rank1.averagePower 384.002386 # Core power per rank (mW)
|
|
||||||
system.mem_ctrls.dram.rank1.totalIdleTime 0 # Total Idle time Per DRAM Rank
|
|
||||||
system.mem_ctrls.dram.rank1.pwrStateTime::IDLE 40238500 # Time in different power states
|
|
||||||
system.mem_ctrls.dram.rank1.pwrStateTime::REF 0 # Time in different power states
|
|
||||||
system.mem_ctrls.dram.rank1.pwrStateTime::SREF 0 # Time in different power states
|
|
||||||
system.mem_ctrls.dram.rank1.pwrStateTime::PRE_PDN 0 # Time in different power states
|
|
||||||
system.mem_ctrls.dram.rank1.pwrStateTime::ACT 0 # Time in different power states
|
|
||||||
system.mem_ctrls.dram.rank1.pwrStateTime::ACT_PDN 0 # Time in different power states
|
|
||||||
system.mem_ctrls.power_state.pwrStateResidencyTicks::UNDEFINED 40238500 # Cumulative time (in ticks) in various power states
|
|
||||||
system.membus.trans_dist::ReadReq 82010 # Transaction distribution
|
|
||||||
system.membus.trans_dist::ReadResp 82190 # Transaction distribution
|
|
||||||
system.membus.trans_dist::WriteReq 12075 # Transaction distribution
|
|
||||||
system.membus.trans_dist::WriteResp 12075 # Transaction distribution
|
|
||||||
system.membus.trans_dist::LoadLockedReq 180 # Transaction distribution
|
|
||||||
system.membus.trans_dist::StoreCondReq 180 # Transaction distribution
|
|
||||||
system.membus.trans_dist::StoreCondResp 180 # Transaction distribution
|
|
||||||
system.membus.pkt_count_system.cpu.icache_port::system.mem_ctrls.port 133204 # Packet count per connected requestor and responder (bytes)
|
|
||||||
system.membus.pkt_count_system.cpu.dcache_port::system.mem_ctrls.port 55686 # Packet count per connected requestor and responder (bytes)
|
|
||||||
system.membus.pkt_count::total 188890 # Packet count per connected requestor and responder (bytes)
|
|
||||||
system.membus.pkt_size_system.cpu.icache_port::system.mem_ctrls.port 270500 # Cumulative packet size per connected requestor and responder (bytes)
|
|
||||||
system.membus.pkt_size_system.cpu.dcache_port::system.mem_ctrls.port 118777 # Cumulative packet size per connected requestor and responder (bytes)
|
|
||||||
system.membus.pkt_size::total 389277 # Cumulative packet size per connected requestor and responder (bytes)
|
|
||||||
system.membus.snoops 0 # Total snoops (count)
|
|
||||||
system.membus.snoopTraffic 0 # Total snoop traffic (bytes)
|
|
||||||
system.membus.snoop_fanout::samples 94445 # Request fanout histogram
|
|
||||||
system.membus.snoop_fanout::mean 0 # Request fanout histogram
|
|
||||||
system.membus.snoop_fanout::stdev 0 # Request fanout histogram
|
|
||||||
system.membus.snoop_fanout::underflows 0 0.00% 0.00% # Request fanout histogram
|
|
||||||
system.membus.snoop_fanout::0 94445 100.00% 100.00% # Request fanout histogram
|
|
||||||
system.membus.snoop_fanout::1 0 0.00% 100.00% # Request fanout histogram
|
|
||||||
system.membus.snoop_fanout::overflows 0 0.00% 100.00% # Request fanout histogram
|
|
||||||
system.membus.snoop_fanout::min_value 0 # Request fanout histogram
|
|
||||||
system.membus.snoop_fanout::max_value 0 # Request fanout histogram
|
|
||||||
system.membus.snoop_fanout::total 94445 # Request fanout histogram
|
|
||||||
system.membus.power_state.pwrStateResidencyTicks::UNDEFINED 40238500 # Cumulative time (in ticks) in various power states
|
|
||||||
system.voltage_domain.voltage 1 # Voltage in Volts
|
|
||||||
|
|
||||||
---------- End Simulation Statistics ----------
|
|
4412
benchmarks/pow/out
4412
benchmarks/pow/out
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,14 @@
|
||||||
|
Global frequency set at 1000000000000 ticks per second
|
||||||
|
gem5 Simulator System. http://gem5.org
|
||||||
|
gem5 is copyrighted software; use the --copyright option for details.
|
||||||
|
|
||||||
|
gem5 version 20.1.0.4
|
||||||
|
gem5 compiled Sep 23 2021 18:19:24
|
||||||
|
gem5 started Sep 23 2021 18:31:43
|
||||||
|
gem5 executing on en4181851l, pid 3135753
|
||||||
|
command line: ../../gem5/build/ARM/gem5.opt -d CPU/ ../../gem5/configs/example/se.py -c pow_cpu -o 5
|
||||||
|
|
||||||
|
**** REAL SIMULATION ****
|
||||||
|
Base = 2 - Pow = 5
|
||||||
|
***** 2^5 = 32 *****
|
||||||
|
Exiting @ tick 6420000 because exiting with last active thread context
|
Binary file not shown.
|
@ -1,20 +1,49 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
/*int sum(int count){
|
||||||
|
int ret=0;
|
||||||
|
//int vec[10] = {1,2,3,4,5,6,7,8,9,10};
|
||||||
|
|
||||||
|
#pragma CGRA
|
||||||
|
for(int i=0; i<count; i++)
|
||||||
|
ret += i;
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}*/
|
||||||
|
|
||||||
|
>>>>>>> 5f2c8bc0fcd0b4b59a263992775796f8c7c9371d
|
||||||
/*int power(int base, int pow){
|
/*int power(int base, int pow){
|
||||||
if(pow == 0) return 1;
|
if(pow == 0) return 1;
|
||||||
printf("Base = %d - Pow = %d\n", base, pow);
|
printf("Base = %d - Pow = %d\n", base, pow);
|
||||||
int ret = base;
|
int ret = base;
|
||||||
#pragma CGRA
|
#pragma CGRA
|
||||||
for(int i = 1; i < pow - 1; i++)
|
for(int i = 1; i < pow; i++)
|
||||||
ret *= base;
|
ret *= base;
|
||||||
|
<<<<<<< HEAD
|
||||||
return ret;
|
return ret;
|
||||||
}*/
|
}*/
|
||||||
|
=======
|
||||||
|
return ret;
|
||||||
|
}*/
|
||||||
|
>>>>>>> 5f2c8bc0fcd0b4b59a263992775796f8c7c9371d
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
int pow = atoi(argv[1]);
|
int pow = atoi(argv[1]);
|
||||||
|
<<<<<<< HEAD
|
||||||
int ret = 1;
|
int ret = 1;
|
||||||
|
=======
|
||||||
|
int base = 2;
|
||||||
|
if(pow == 0) return 1;
|
||||||
|
printf("Base = %d - Pow = %d\n", base, pow);
|
||||||
|
int ret = base;
|
||||||
|
#pragma CGRA
|
||||||
|
for(int i = 1; i < pow; i++)
|
||||||
|
ret *= base;
|
||||||
|
>>>>>>> 5f2c8bc0fcd0b4b59a263992775796f8c7c9371d
|
||||||
//int ret = sum(pow);
|
//int ret = sum(pow);
|
||||||
|
|
||||||
#pragma CGRA
|
#pragma CGRA
|
||||||
|
|
|
@ -1,112 +0,0 @@
|
||||||
; ModuleID = 'pow.c'
|
|
||||||
source_filename = "pow.c"
|
|
||||||
target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"
|
|
||||||
target triple = "armv7-none-linux-eabi"
|
|
||||||
|
|
||||||
@.str = private unnamed_addr constant [24 x i8] c"***** %d^%d = %d *****\0A\00", align 1
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
define dso_local i32 @main(i32 %0, i8** nocapture readonly %1) local_unnamed_addr #0 !dbg !14 {
|
|
||||||
call void @llvm.dbg.value(metadata i32 %0, metadata !18, metadata !DIExpression()), !dbg !24
|
|
||||||
call void @llvm.dbg.value(metadata i8** %1, metadata !19, metadata !DIExpression()), !dbg !24
|
|
||||||
%3 = getelementptr inbounds i8*, i8** %1, i32 1, !dbg !25
|
|
||||||
%4 = load i8*, i8** %3, align 4, !dbg !25, !tbaa !26
|
|
||||||
call void @llvm.dbg.value(metadata i8* %4, metadata !30, metadata !DIExpression()) #4, !dbg !38
|
|
||||||
%5 = tail call i32 @strtol(i8* nocapture nonnull %4, i8** null, i32 10) #4, !dbg !40
|
|
||||||
call void @llvm.dbg.value(metadata i32 %5, metadata !20, metadata !DIExpression()), !dbg !24
|
|
||||||
call void @llvm.dbg.value(metadata i32 1, metadata !21, metadata !DIExpression()), !dbg !24
|
|
||||||
call void @llvm.dbg.value(metadata i32 1, metadata !22, metadata !DIExpression()), !dbg !41
|
|
||||||
%6 = icmp sgt i32 %5, 1, !dbg !42
|
|
||||||
br i1 %6, label %10, label %7, !dbg !44
|
|
||||||
|
|
||||||
7: ; preds = %10, %2
|
|
||||||
%8 = phi i32 [ 1, %2 ], [ %13, %10 ], !dbg !24
|
|
||||||
%9 = tail call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([24 x i8], [24 x i8]* @.str, i32 0, i32 0), i32 2, i32 %5, i32 %8), !dbg !45
|
|
||||||
ret i32 0, !dbg !46
|
|
||||||
|
|
||||||
10: ; preds = %2, %10
|
|
||||||
%11 = phi i32 [ %14, %10 ], [ 1, %2 ]
|
|
||||||
%12 = phi i32 [ %13, %10 ], [ 1, %2 ]
|
|
||||||
call void @llvm.dbg.value(metadata i32 %11, metadata !22, metadata !DIExpression()), !dbg !41
|
|
||||||
call void @llvm.dbg.value(metadata i32 %12, metadata !21, metadata !DIExpression()), !dbg !24
|
|
||||||
%13 = shl nsw i32 %12, 1, !dbg !47
|
|
||||||
call void @llvm.dbg.value(metadata i32 %13, metadata !21, metadata !DIExpression()), !dbg !24
|
|
||||||
%14 = add nuw nsw i32 %11, 1, !dbg !48
|
|
||||||
call void @llvm.dbg.value(metadata i32 %14, metadata !22, metadata !DIExpression()), !dbg !41
|
|
||||||
%15 = icmp eq i32 %14, %5, !dbg !42
|
|
||||||
br i1 %15, label %7, label %10, !dbg !44, !llvm.loop !49
|
|
||||||
}
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind
|
|
||||||
declare dso_local noundef i32 @printf(i8* nocapture noundef readonly, ...) local_unnamed_addr #1
|
|
||||||
|
|
||||||
; Function Attrs: nofree nounwind willreturn
|
|
||||||
declare dso_local i32 @strtol(i8* readonly, i8** nocapture, i32) local_unnamed_addr #2
|
|
||||||
|
|
||||||
; Function Attrs: nofree nosync nounwind readnone speculatable willreturn
|
|
||||||
declare void @llvm.dbg.value(metadata, metadata, metadata) #3
|
|
||||||
|
|
||||||
attributes #0 = { nofree nounwind "disable-tail-calls"="false" "frame-pointer"="none" "min-legal-vector-width"="0" "no-jump-tables"="false" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+armv7-a,+d32,+dsp,+fp64,+neon,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,-thumb-mode" }
|
|
||||||
attributes #1 = { nofree nounwind "disable-tail-calls"="false" "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+armv7-a,+d32,+dsp,+fp64,+neon,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,-thumb-mode" }
|
|
||||||
attributes #2 = { nofree nounwind willreturn "disable-tail-calls"="false" "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic" "target-features"="+armv7-a,+d32,+dsp,+fp64,+neon,+vfp2,+vfp2sp,+vfp3,+vfp3d16,+vfp3d16sp,+vfp3sp,-thumb-mode" }
|
|
||||||
attributes #3 = { nofree nosync nounwind readnone speculatable willreturn }
|
|
||||||
attributes #4 = { nounwind }
|
|
||||||
|
|
||||||
!llvm.dbg.cu = !{!0}
|
|
||||||
!llvm.module.flags = !{!9, !10, !11, !12}
|
|
||||||
!llvm.ident = !{!13}
|
|
||||||
|
|
||||||
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 13.0.0 (https://github.com/MPSLab-ASU/CCF-20.04/ 05285de7579f417a4d73ad832b8f4cc497f25235)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !3, splitDebugInlining: false, nameTableKind: None)
|
|
||||||
!1 = !DIFile(filename: "pow.c", directory: "/home/local/ASUAD/quoclon1/publish_ccf_github/benchmarks/pow")
|
|
||||||
!2 = !{}
|
|
||||||
!3 = !{!4, !5, !8}
|
|
||||||
!4 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
|
|
||||||
!5 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !6, size: 32)
|
|
||||||
!6 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !7, size: 32)
|
|
||||||
!7 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_unsigned_char)
|
|
||||||
!8 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 32)
|
|
||||||
!9 = !{i32 7, !"Dwarf Version", i32 4}
|
|
||||||
!10 = !{i32 2, !"Debug Info Version", i32 3}
|
|
||||||
!11 = !{i32 1, !"wchar_size", i32 4}
|
|
||||||
!12 = !{i32 1, !"min_enum_size", i32 4}
|
|
||||||
!13 = !{!"clang version 13.0.0 (https://github.com/MPSLab-ASU/CCF-20.04/ 05285de7579f417a4d73ad832b8f4cc497f25235)"}
|
|
||||||
!14 = distinct !DISubprogram(name: "main", scope: !1, file: !1, line: 14, type: !15, scopeLine: 15, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !17)
|
|
||||||
!15 = !DISubroutineType(types: !16)
|
|
||||||
!16 = !{!4, !4, !5}
|
|
||||||
!17 = !{!18, !19, !20, !21, !22}
|
|
||||||
!18 = !DILocalVariable(name: "argc", arg: 1, scope: !14, file: !1, line: 14, type: !4)
|
|
||||||
!19 = !DILocalVariable(name: "argv", arg: 2, scope: !14, file: !1, line: 14, type: !5)
|
|
||||||
!20 = !DILocalVariable(name: "pow", scope: !14, file: !1, line: 16, type: !4)
|
|
||||||
!21 = !DILocalVariable(name: "ret", scope: !14, file: !1, line: 17, type: !4)
|
|
||||||
!22 = !DILocalVariable(name: "i", scope: !23, file: !1, line: 21, type: !4)
|
|
||||||
!23 = distinct !DILexicalBlock(scope: !14, file: !1, line: 21, column: 3)
|
|
||||||
!24 = !DILocation(line: 0, scope: !14)
|
|
||||||
!25 = !DILocation(line: 16, column: 18, scope: !14)
|
|
||||||
!26 = !{!27, !27, i64 0}
|
|
||||||
!27 = !{!"any pointer", !28, i64 0}
|
|
||||||
!28 = !{!"omnipotent char", !29, i64 0}
|
|
||||||
!29 = !{!"Simple C/C++ TBAA"}
|
|
||||||
!30 = !DILocalVariable(name: "__nptr", arg: 1, scope: !31, file: !32, line: 361, type: !35)
|
|
||||||
!31 = distinct !DISubprogram(name: "atoi", scope: !32, file: !32, line: 361, type: !33, scopeLine: 362, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !37)
|
|
||||||
!32 = !DIFile(filename: "/usr/arm-linux-gnueabi/include/stdlib.h", directory: "")
|
|
||||||
!33 = !DISubroutineType(types: !34)
|
|
||||||
!34 = !{!4, !35}
|
|
||||||
!35 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !36, size: 32)
|
|
||||||
!36 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !7)
|
|
||||||
!37 = !{!30}
|
|
||||||
!38 = !DILocation(line: 0, scope: !31, inlinedAt: !39)
|
|
||||||
!39 = distinct !DILocation(line: 16, column: 13, scope: !14)
|
|
||||||
!40 = !DILocation(line: 363, column: 16, scope: !31, inlinedAt: !39)
|
|
||||||
!41 = !DILocation(line: 0, scope: !23)
|
|
||||||
!42 = !DILocation(line: 21, column: 20, scope: !43)
|
|
||||||
!43 = distinct !DILexicalBlock(scope: !23, file: !1, line: 21, column: 3)
|
|
||||||
!44 = !DILocation(line: 21, column: 3, scope: !23)
|
|
||||||
!45 = !DILocation(line: 24, column: 3, scope: !14)
|
|
||||||
!46 = !DILocation(line: 26, column: 1, scope: !14)
|
|
||||||
!47 = !DILocation(line: 22, column: 9, scope: !43)
|
|
||||||
!48 = !DILocation(line: 21, column: 28, scope: !43)
|
|
||||||
!49 = distinct !{!49, !44, !50, !51, !52, !53}
|
|
||||||
!50 = !DILocation(line: 22, column: 12, scope: !23)
|
|
||||||
!51 = !{!"llvm.loop.mustprogress"}
|
|
||||||
!52 = !{!"llvm.loop.CGRA.enable"}
|
|
||||||
!53 = !{!"llvm.loop.unroll.disable"}
|
|
|
@ -1,14 +0,0 @@
|
||||||
X,4
|
|
||||||
Y,4
|
|
||||||
R,4
|
|
||||||
IC,0
|
|
||||||
Cclock,0.7
|
|
||||||
CPUclock,2
|
|
||||||
Mem,8GB
|
|
||||||
MODE,0
|
|
||||||
ALGO,FalconCrimson
|
|
||||||
MSA,10
|
|
||||||
MAPII,10
|
|
||||||
MAX_MAP,1000
|
|
||||||
MAX_II,50
|
|
||||||
LAMBDA,0.02
|
|
|
|
@ -1,14 +0,0 @@
|
||||||
4
|
|
||||||
4
|
|
||||||
4
|
|
||||||
0
|
|
||||||
0.7
|
|
||||||
2
|
|
||||||
8GB
|
|
||||||
0
|
|
||||||
FalconCrimson
|
|
||||||
10
|
|
||||||
10
|
|
||||||
1000
|
|
||||||
50
|
|
||||||
0.02
|
|
|
@ -1,5 +0,0 @@
|
||||||
3 0 1 TRU 0
|
|
||||||
2 1 1 TRU 0
|
|
||||||
1 2 0 TRU 0
|
|
||||||
0 3 0 TRU 0
|
|
||||||
3 4 0 TRU 0
|
|
|
@ -1,5 +0,0 @@
|
||||||
0 29 1
|
|
||||||
1 29 1
|
|
||||||
2 2 1
|
|
||||||
3 0 1
|
|
||||||
4 10 1
|
|
|
@ -1,33 +0,0 @@
|
||||||
digraph Success_MS_ {
|
|
||||||
{
|
|
||||||
0 [color=red ];
|
|
||||||
|
|
||||||
1 [color=red ];
|
|
||||||
|
|
||||||
2 [color=red ];
|
|
||||||
|
|
||||||
3 [color=red ];
|
|
||||||
|
|
||||||
4 [color=red ];
|
|
||||||
3 -> 0 [style=bold, color=red, label=1]
|
|
||||||
2 -> 1 [style=bold, color=red, label=1]
|
|
||||||
1 -> 2
|
|
||||||
0 -> 3
|
|
||||||
3 -> 4
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
node [shape=plaintext];
|
|
||||||
T0 -> T1;
|
|
||||||
}{ rank = same;
|
|
||||||
0; 1; 4; T0;
|
|
||||||
};
|
|
||||||
{ rank = same;
|
|
||||||
2; 3; T1;
|
|
||||||
};
|
|
||||||
{ rank = same;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,788 +0,0 @@
|
||||||
|
|
||||||
UPDATING EDGES 3:0
|
|
||||||
|
|
||||||
UPDATING DEPENDENCY EDGES FOR NODE 0:1
|
|
||||||
|
|
||||||
UPDATING EDGES 2:1
|
|
||||||
|
|
||||||
UPDATING DEPENDENCY EDGES FOR NODE 1:1
|
|
||||||
|
|
||||||
UPDATING EDGES 1:2
|
|
||||||
|
|
||||||
UPDATING EDGES 0:3
|
|
||||||
|
|
||||||
UPDATING EDGES 3:4
|
|
||||||
|
|
||||||
UPDATING EDGES 5:0
|
|
||||||
|
|
||||||
UPDATING EDGES 8:1
|
|
||||||
|
|
||||||
UPDATING EDGES 11:2
|
|
||||||
|
|
||||||
UPDATING EDGES 14:3
|
|
||||||
|
|
||||||
UPDATING EDGES 15:4
|
|
||||||
|
|
||||||
UPDATING EDGES 119:120
|
|
||||||
|
|
||||||
UPDATING EDGES 2:120
|
|
||||||
|
|
||||||
UPDATING EDGES 118:120
|
|
||||||
file ptr:0 open:1 prolog_size:64
|
|
||||||
|
|
||||||
|
|
||||||
64
|
|
||||||
32
|
|
||||||
16
|
|
||||||
*********KERNEL*****************
|
|
||||||
*********EPILOG*****************
|
|
||||||
LiveOut_data_pe: 8 liveOut_data: 2
|
|
||||||
LiveOut_add_pe: 10 liveOut_add: 119
|
|
||||||
PE: 0 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 1 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 2 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 3 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 4 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 5 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 6 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 7 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 8 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 9 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 10 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 11 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 12 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 13 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 14 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 15 Configuration Boundary: 0 10e004000
|
|
||||||
reg_num: 0
|
|
||||||
Generating Instructions To Store Address (Hex) 9a640
|
|
||||||
gVar1
|
|
||||||
Loading dynamic constant value. LDA and LDD are 168c02004: 105c04000 in pe 9
|
|
||||||
Load Dyn Cons 168c02004 105c04000
|
|
||||||
reg_num: 0
|
|
||||||
Generating Instructions To Store Address (Hex) 9a650
|
|
||||||
gVar2
|
|
||||||
Loading dynamic constant value. LDA and LDD are 168c02004: 105c04000 in pe 8
|
|
||||||
Load Dyn Cons 168c02004 105c04000
|
|
||||||
reg_num: 1
|
|
||||||
Generating Instructions To Store Address (Hex) 9a658
|
|
||||||
gVar3
|
|
||||||
Loading dynamic constant value. LDA and LDD are 168c82004: 105c0c000 in pe 8
|
|
||||||
Load Dyn Cons 168c82004 105c0c000
|
|
||||||
reg_num: 0
|
|
||||||
Generating Instructions To Store Address (Hex) 9a64c
|
|
||||||
gVar4
|
|
||||||
Loading dynamic constant value. LDA and LDD are 168c02004: 105c04000 in pe 13
|
|
||||||
Load Dyn Cons 168c02004 105c04000
|
|
||||||
reg_num: 1
|
|
||||||
reg_num: 2
|
|
||||||
reg_num: 3
|
|
||||||
reg_num: 2
|
|
||||||
reg_num: 1
|
|
||||||
reg_num: 3
|
|
||||||
Generating Instructions To Store Address (Hex) 9a640
|
|
||||||
gVar1
|
|
||||||
Loading dynamic constant value. LDA and LDD are 168d82004: 105c1c000 in pe 9
|
|
||||||
Load Dyn Cons 168d82004 105c1c000
|
|
||||||
reg_num: 4
|
|
||||||
Generating Instructions To Store Address (Hex) 9a650
|
|
||||||
gVar2
|
|
||||||
Loading dynamic constant value. LDA and LDD are 168c02004: 105c04000 in pe 8
|
|
||||||
Load Dyn Cons 168c02004 105c04000
|
|
||||||
reg_num: 5
|
|
||||||
Generating Instructions To Store Address (Hex) 9a658
|
|
||||||
gVar3
|
|
||||||
Loading dynamic constant value. LDA and LDD are 168c82004: 105c0c000 in pe 8
|
|
||||||
Load Dyn Cons 168c82004 105c0c000
|
|
||||||
reg_num: 0
|
|
||||||
Large Constant (Hex): 1 Constant (Decimal): 1
|
|
||||||
reg_num: 2
|
|
||||||
Generating Instructions To Store Address (Hex) 9a64c
|
|
||||||
gVar4
|
|
||||||
Loading dynamic constant value. LDA and LDD are 168d02004: 105c14000 in pe 13
|
|
||||||
Load Dyn Cons 168d02004 105c14000
|
|
||||||
reg_num: 4
|
|
||||||
Generating Instructions To Store Address (Hex) 9a644
|
|
||||||
gVar5
|
|
||||||
reg_num: 0
|
|
||||||
|
|
||||||
Variable Address (Hex): 9a644 Node: 119 PE: 10 Address (Decimal): 632388 RegNum: 0
|
|
||||||
reg_num: 6
|
|
||||||
pe mem op
|
|
||||||
0 3
|
|
||||||
1 0
|
|
||||||
2 0
|
|
||||||
3 0
|
|
||||||
4 0
|
|
||||||
5 0
|
|
||||||
6 0
|
|
||||||
7 0
|
|
||||||
8 28
|
|
||||||
9 19
|
|
||||||
10 3
|
|
||||||
11 0
|
|
||||||
12 0
|
|
||||||
13 13
|
|
||||||
14 0
|
|
||||||
15 0
|
|
||||||
|
|
||||||
****** Generatina Instructions For Non-Phi Nodes *****
|
|
||||||
|
|
||||||
NODES SCHEDULED AT 0
|
|
||||||
4
|
|
||||||
|
|
||||||
FOR NODE 4: Datatype:1 opcode:12 lmux:3 rmux:0 reg1:0 reg2:2 we:0 wreg:0 imm:0 ab:0 db:0
|
|
||||||
Decoded 1c3040000
|
|
||||||
|
|
||||||
NODES SCHEDULED AT 1
|
|
||||||
2 3
|
|
||||||
|
|
||||||
FOR NODE 2: Datatype:1 opcode:2 lmux:7 rmux:0 reg1:0 reg2:5 we:0 wreg:0 imm:0 ab:0 db:0
|
|
||||||
Decoded 127020000
|
|
||||||
|
|
||||||
FOR NODE 3: Datatype:1 opcode:0 lmux:7 rmux:6 reg1:0 reg2:0 we:0 wreg:0 imm:1 ab:0 db:0
|
|
||||||
Decoded 107c00001
|
|
||||||
|
|
||||||
****** Generating Instructions For Phi Nodes *****
|
|
||||||
|
|
||||||
NODES SCHEDULED AT 0
|
|
||||||
0 1
|
|
||||||
Phi Instructions
|
|
||||||
|
|
||||||
Phi! Prolog! FOR NODE 0: Datatype:1 opcode:1 lmux:0 rmux:0 reg1:3 reg2:0 we:0 wreg:0 imm:1 ab:0 db:0
|
|
||||||
Decoded 118180001
|
|
||||||
|
|
||||||
Phi! Prolog! FOR NODE 1: Datatype:1 opcode:1 lmux:0 rmux:0 reg1:4 reg2:0 we:0 wreg:0 imm:2 ab:0 db:0
|
|
||||||
Decoded 118000002
|
|
||||||
|
|
||||||
Kernel Instructions
|
|
||||||
|
|
||||||
FOR NODE 0: Datatype:1 opcode:1 lmux:7 rmux:6 reg1:0 reg2:0 we:0 wreg:0 imm:0 ab:0 db:0
|
|
||||||
Decoded 11fc00000
|
|
||||||
|
|
||||||
FOR NODE 1: Datatype:1 opcode:1 lmux:7 rmux:6 reg1:0 reg2:0 we:0 wreg:0 imm:0 ab:0 db:0
|
|
||||||
Decoded 11fc00000
|
|
||||||
|
|
||||||
****** Generating Instructions For Store Nodes For Live Variables*****
|
|
||||||
|
|
||||||
NODES SCHEDULED AT 2
|
|
||||||
|
|
||||||
NODES SCHEDULED AT STORE CYCLE 0
|
|
||||||
119 120
|
|
||||||
|
|
||||||
FOR NODE 119: Datatype:1 opcode:6 lmux:0 rmux:6 reg1:0 reg2:0 we:0 wreg:0 imm:4 ab:1 db:0
|
|
||||||
Decoded 168c02004
|
|
||||||
|
|
||||||
FOR NODE 120: Datatype:1 opcode:0 lmux:7 rmux:6 reg1:0 reg2:0 we:0 wreg:0 imm:0 ab:0 db:1
|
|
||||||
Decoded 107c01000
|
|
||||||
*******PROLOG*********
|
|
||||||
0: 10e004000
|
|
||||||
1: 10e004000
|
|
||||||
2: 10e004000
|
|
||||||
3: 10e004000
|
|
||||||
4: 10e004000
|
|
||||||
5: 10e004000
|
|
||||||
6: 10e004000
|
|
||||||
7: 10e004000
|
|
||||||
8: 10e004000
|
|
||||||
9: 10e004000
|
|
||||||
10: 10e004000
|
|
||||||
11: 10e004000
|
|
||||||
12: 10e004000
|
|
||||||
13: 10e004000
|
|
||||||
14: 10e004000
|
|
||||||
15: 10e004000
|
|
||||||
16: 11e004001
|
|
||||||
17: 177e00000
|
|
||||||
18: 177e00000
|
|
||||||
19: 177e00000
|
|
||||||
20: 177e00000
|
|
||||||
21: 177e00000
|
|
||||||
22: 177e00000
|
|
||||||
23: 177e00000
|
|
||||||
24: 11e004650
|
|
||||||
25: 11e004640
|
|
||||||
26: 11e004644
|
|
||||||
27: 177e00000
|
|
||||||
28: 177e00000
|
|
||||||
29: 11e00464c
|
|
||||||
30: 177e00000
|
|
||||||
31: 177e00000
|
|
||||||
32: 12e004000
|
|
||||||
33: 177e00000
|
|
||||||
34: 177e00000
|
|
||||||
35: 177e00000
|
|
||||||
36: 177e00000
|
|
||||||
37: 177e00000
|
|
||||||
38: 177e00000
|
|
||||||
39: 177e00000
|
|
||||||
40: 12e00409a
|
|
||||||
41: 12e00409a
|
|
||||||
42: 12e00409a
|
|
||||||
43: 177e00000
|
|
||||||
44: 177e00000
|
|
||||||
45: 12e00409a
|
|
||||||
46: 177e00000
|
|
||||||
47: 177e00000
|
|
||||||
48: 13e004000
|
|
||||||
49: 177e00000
|
|
||||||
50: 177e00000
|
|
||||||
51: 177e00000
|
|
||||||
52: 177e00000
|
|
||||||
53: 177e00000
|
|
||||||
54: 177e00000
|
|
||||||
55: 177e00000
|
|
||||||
56: 13e004000
|
|
||||||
57: 13e004000
|
|
||||||
58: 13e004000
|
|
||||||
59: 177e00000
|
|
||||||
60: 177e00000
|
|
||||||
61: 13e004000
|
|
||||||
62: 177e00000
|
|
||||||
63: 177e00000
|
|
||||||
64: 177e00000
|
|
||||||
65: 177e00000
|
|
||||||
66: 177e00000
|
|
||||||
67: 177e00000
|
|
||||||
68: 177e00000
|
|
||||||
69: 177e00000
|
|
||||||
70: 177e00000
|
|
||||||
71: 177e00000
|
|
||||||
72: 167e00000
|
|
||||||
73: 168c02004
|
|
||||||
74: 177e00000
|
|
||||||
75: 177e00000
|
|
||||||
76: 177e00000
|
|
||||||
77: 168c02004
|
|
||||||
78: 177e00000
|
|
||||||
79: 177e00000
|
|
||||||
80: 177e00000
|
|
||||||
81: 177e00000
|
|
||||||
82: 177e00000
|
|
||||||
83: 177e00000
|
|
||||||
84: 177e00000
|
|
||||||
85: 177e00000
|
|
||||||
86: 177e00000
|
|
||||||
87: 177e00000
|
|
||||||
88: 167e00000
|
|
||||||
89: 105c04000
|
|
||||||
90: 177e00000
|
|
||||||
91: 177e00000
|
|
||||||
92: 177e00000
|
|
||||||
93: 105c04000
|
|
||||||
94: 177e00000
|
|
||||||
95: 177e00000
|
|
||||||
96: 177e00000
|
|
||||||
97: 177e00000
|
|
||||||
98: 177e00000
|
|
||||||
99: 177e00000
|
|
||||||
100: 177e00000
|
|
||||||
101: 177e00000
|
|
||||||
102: 177e00000
|
|
||||||
103: 177e00000
|
|
||||||
104: 168c02004
|
|
||||||
105: 11e01c640
|
|
||||||
106: 177e00000
|
|
||||||
107: 177e00000
|
|
||||||
108: 177e00000
|
|
||||||
109: 11e01464c
|
|
||||||
110: 177e00000
|
|
||||||
111: 177e00000
|
|
||||||
112: 177e00000
|
|
||||||
113: 177e00000
|
|
||||||
114: 177e00000
|
|
||||||
115: 177e00000
|
|
||||||
116: 177e00000
|
|
||||||
117: 177e00000
|
|
||||||
118: 177e00000
|
|
||||||
119: 177e00000
|
|
||||||
120: 105c04000
|
|
||||||
121: 12e01c09a
|
|
||||||
122: 177e00000
|
|
||||||
123: 177e00000
|
|
||||||
124: 177e00000
|
|
||||||
125: 12e01409a
|
|
||||||
126: 177e00000
|
|
||||||
127: 177e00000
|
|
||||||
128: 177e00000
|
|
||||||
129: 177e00000
|
|
||||||
130: 177e00000
|
|
||||||
131: 177e00000
|
|
||||||
132: 177e00000
|
|
||||||
133: 177e00000
|
|
||||||
134: 177e00000
|
|
||||||
135: 177e00000
|
|
||||||
136: 11e00c658
|
|
||||||
137: 13e01c000
|
|
||||||
138: 177e00000
|
|
||||||
139: 177e00000
|
|
||||||
140: 177e00000
|
|
||||||
141: 13e014000
|
|
||||||
142: 177e00000
|
|
||||||
143: 177e00000
|
|
||||||
144: 177e00000
|
|
||||||
145: 177e00000
|
|
||||||
146: 177e00000
|
|
||||||
147: 177e00000
|
|
||||||
148: 177e00000
|
|
||||||
149: 177e00000
|
|
||||||
150: 177e00000
|
|
||||||
151: 177e00000
|
|
||||||
152: 12e00c09a
|
|
||||||
153: 168d82004
|
|
||||||
154: 177e00000
|
|
||||||
155: 177e00000
|
|
||||||
156: 177e00000
|
|
||||||
157: 168d02004
|
|
||||||
158: 177e00000
|
|
||||||
159: 177e00000
|
|
||||||
160: 177e00000
|
|
||||||
161: 177e00000
|
|
||||||
162: 177e00000
|
|
||||||
163: 177e00000
|
|
||||||
164: 177e00000
|
|
||||||
165: 177e00000
|
|
||||||
166: 177e00000
|
|
||||||
167: 177e00000
|
|
||||||
168: 13e00c000
|
|
||||||
169: 105c1c000
|
|
||||||
170: 177e00000
|
|
||||||
171: 177e00000
|
|
||||||
172: 177e00000
|
|
||||||
173: 105c14000
|
|
||||||
174: 177e00000
|
|
||||||
175: 177e00000
|
|
||||||
176: 177e00000
|
|
||||||
177: 177e00000
|
|
||||||
178: 177e00000
|
|
||||||
179: 177e00000
|
|
||||||
180: 177e00000
|
|
||||||
181: 177e00000
|
|
||||||
182: 177e00000
|
|
||||||
183: 177e00000
|
|
||||||
184: 168c82004
|
|
||||||
185: 11e004644
|
|
||||||
186: 177e00000
|
|
||||||
187: 177e00000
|
|
||||||
188: 177e00000
|
|
||||||
189: 177e00000
|
|
||||||
190: 177e00000
|
|
||||||
191: 177e00000
|
|
||||||
192: 177e00000
|
|
||||||
193: 177e00000
|
|
||||||
194: 177e00000
|
|
||||||
195: 177e00000
|
|
||||||
196: 177e00000
|
|
||||||
197: 177e00000
|
|
||||||
198: 177e00000
|
|
||||||
199: 177e00000
|
|
||||||
200: 105c0c000
|
|
||||||
201: 12e00409a
|
|
||||||
202: 177e00000
|
|
||||||
203: 177e00000
|
|
||||||
204: 177e00000
|
|
||||||
205: 177e00000
|
|
||||||
206: 177e00000
|
|
||||||
207: 177e00000
|
|
||||||
208: 177e00000
|
|
||||||
209: 177e00000
|
|
||||||
210: 177e00000
|
|
||||||
211: 177e00000
|
|
||||||
212: 177e00000
|
|
||||||
213: 177e00000
|
|
||||||
214: 177e00000
|
|
||||||
215: 177e00000
|
|
||||||
216: 11e004650
|
|
||||||
217: 13e004000
|
|
||||||
218: 177e00000
|
|
||||||
219: 177e00000
|
|
||||||
220: 177e00000
|
|
||||||
221: 177e00000
|
|
||||||
222: 177e00000
|
|
||||||
223: 177e00000
|
|
||||||
224: 177e00000
|
|
||||||
225: 177e00000
|
|
||||||
226: 177e00000
|
|
||||||
227: 177e00000
|
|
||||||
228: 177e00000
|
|
||||||
229: 177e00000
|
|
||||||
230: 177e00000
|
|
||||||
231: 177e00000
|
|
||||||
232: 12e00409a
|
|
||||||
233: 177e00000
|
|
||||||
234: 177e00000
|
|
||||||
235: 177e00000
|
|
||||||
236: 177e00000
|
|
||||||
237: 177e00000
|
|
||||||
238: 177e00000
|
|
||||||
239: 177e00000
|
|
||||||
240: 177e00000
|
|
||||||
241: 177e00000
|
|
||||||
242: 177e00000
|
|
||||||
243: 177e00000
|
|
||||||
244: 177e00000
|
|
||||||
245: 177e00000
|
|
||||||
246: 177e00000
|
|
||||||
247: 177e00000
|
|
||||||
248: 13e004000
|
|
||||||
249: 177e00000
|
|
||||||
250: 177e00000
|
|
||||||
251: 177e00000
|
|
||||||
252: 177e00000
|
|
||||||
253: 177e00000
|
|
||||||
254: 177e00000
|
|
||||||
255: 177e00000
|
|
||||||
256: 177e00000
|
|
||||||
257: 177e00000
|
|
||||||
258: 177e00000
|
|
||||||
259: 177e00000
|
|
||||||
260: 177e00000
|
|
||||||
261: 177e00000
|
|
||||||
262: 177e00000
|
|
||||||
263: 177e00000
|
|
||||||
264: 168c02004
|
|
||||||
265: 177e00000
|
|
||||||
266: 177e00000
|
|
||||||
267: 177e00000
|
|
||||||
268: 177e00000
|
|
||||||
269: 177e00000
|
|
||||||
270: 177e00000
|
|
||||||
271: 177e00000
|
|
||||||
272: 177e00000
|
|
||||||
273: 177e00000
|
|
||||||
274: 177e00000
|
|
||||||
275: 177e00000
|
|
||||||
276: 177e00000
|
|
||||||
277: 177e00000
|
|
||||||
278: 177e00000
|
|
||||||
279: 177e00000
|
|
||||||
280: 105c04000
|
|
||||||
281: 177e00000
|
|
||||||
282: 177e00000
|
|
||||||
283: 177e00000
|
|
||||||
284: 177e00000
|
|
||||||
285: 177e00000
|
|
||||||
286: 177e00000
|
|
||||||
287: 177e00000
|
|
||||||
288: 177e00000
|
|
||||||
289: 177e00000
|
|
||||||
290: 177e00000
|
|
||||||
291: 177e00000
|
|
||||||
292: 177e00000
|
|
||||||
293: 177e00000
|
|
||||||
294: 177e00000
|
|
||||||
295: 177e00000
|
|
||||||
296: 11e00c658
|
|
||||||
297: 177e00000
|
|
||||||
298: 177e00000
|
|
||||||
299: 177e00000
|
|
||||||
300: 177e00000
|
|
||||||
301: 177e00000
|
|
||||||
302: 177e00000
|
|
||||||
303: 177e00000
|
|
||||||
304: 177e00000
|
|
||||||
305: 177e00000
|
|
||||||
306: 177e00000
|
|
||||||
307: 177e00000
|
|
||||||
308: 177e00000
|
|
||||||
309: 177e00000
|
|
||||||
310: 177e00000
|
|
||||||
311: 177e00000
|
|
||||||
312: 12e00c09a
|
|
||||||
313: 177e00000
|
|
||||||
314: 177e00000
|
|
||||||
315: 177e00000
|
|
||||||
316: 177e00000
|
|
||||||
317: 177e00000
|
|
||||||
318: 177e00000
|
|
||||||
319: 177e00000
|
|
||||||
320: 177e00000
|
|
||||||
321: 177e00000
|
|
||||||
322: 177e00000
|
|
||||||
323: 177e00000
|
|
||||||
324: 177e00000
|
|
||||||
325: 177e00000
|
|
||||||
326: 177e00000
|
|
||||||
327: 177e00000
|
|
||||||
328: 13e00c000
|
|
||||||
329: 177e00000
|
|
||||||
330: 177e00000
|
|
||||||
331: 177e00000
|
|
||||||
332: 177e00000
|
|
||||||
333: 177e00000
|
|
||||||
334: 177e00000
|
|
||||||
335: 177e00000
|
|
||||||
336: 177e00000
|
|
||||||
337: 177e00000
|
|
||||||
338: 177e00000
|
|
||||||
339: 177e00000
|
|
||||||
340: 177e00000
|
|
||||||
341: 177e00000
|
|
||||||
342: 177e00000
|
|
||||||
343: 177e00000
|
|
||||||
344: 168c82004
|
|
||||||
345: 177e00000
|
|
||||||
346: 177e00000
|
|
||||||
347: 177e00000
|
|
||||||
348: 177e00000
|
|
||||||
349: 177e00000
|
|
||||||
350: 177e00000
|
|
||||||
351: 177e00000
|
|
||||||
352: 177e00000
|
|
||||||
353: 177e00000
|
|
||||||
354: 177e00000
|
|
||||||
355: 177e00000
|
|
||||||
356: 177e00000
|
|
||||||
357: 177e00000
|
|
||||||
358: 177e00000
|
|
||||||
359: 177e00000
|
|
||||||
360: 105c0c000
|
|
||||||
361: 177e00000
|
|
||||||
362: 177e00000
|
|
||||||
363: 177e00000
|
|
||||||
364: 177e00000
|
|
||||||
365: 177e00000
|
|
||||||
366: 177e00000
|
|
||||||
367: 177e00000
|
|
||||||
368: 177e00000
|
|
||||||
369: 177e00000
|
|
||||||
370: 177e00000
|
|
||||||
371: 177e00000
|
|
||||||
372: 177e00000
|
|
||||||
373: 177e00000
|
|
||||||
374: 177e00000
|
|
||||||
375: 177e00000
|
|
||||||
376: 177e00000
|
|
||||||
377: 177e00000
|
|
||||||
378: 177e00000
|
|
||||||
379: 177e00000
|
|
||||||
380: 177e00000
|
|
||||||
381: 177e00000
|
|
||||||
382: 177e00000
|
|
||||||
383: 177e00000
|
|
||||||
384: 177e00000
|
|
||||||
385: 177e00000
|
|
||||||
386: 177e00000
|
|
||||||
387: 177e00000
|
|
||||||
388: 177e00000
|
|
||||||
389: 177e00000
|
|
||||||
390: 177e00000
|
|
||||||
391: 177e00000
|
|
||||||
392: 177e00000
|
|
||||||
393: 177e00000
|
|
||||||
394: 177e00000
|
|
||||||
395: 177e00000
|
|
||||||
396: 177e00000
|
|
||||||
397: 177e00000
|
|
||||||
398: 177e00000
|
|
||||||
399: 177e00000
|
|
||||||
400: 177e00000
|
|
||||||
401: 177e00000
|
|
||||||
402: 177e00000
|
|
||||||
403: 177e00000
|
|
||||||
404: 177e00000
|
|
||||||
405: 177e00000
|
|
||||||
406: 177e00000
|
|
||||||
407: 177e00000
|
|
||||||
408: 177e00000
|
|
||||||
409: 177e00000
|
|
||||||
410: 177e00000
|
|
||||||
411: 177e00000
|
|
||||||
412: 177e00000
|
|
||||||
413: 177e00000
|
|
||||||
414: 177e00000
|
|
||||||
415: 177e00000
|
|
||||||
416: 177e00000
|
|
||||||
417: 177e00000
|
|
||||||
418: 177e00000
|
|
||||||
419: 177e00000
|
|
||||||
420: 177e00000
|
|
||||||
421: 177e00000
|
|
||||||
422: 177e00000
|
|
||||||
423: 177e00000
|
|
||||||
424: 177e00000
|
|
||||||
425: 177e00000
|
|
||||||
426: 177e00000
|
|
||||||
427: 177e00000
|
|
||||||
428: 177e00000
|
|
||||||
429: 177e00000
|
|
||||||
430: 177e00000
|
|
||||||
431: 177e00000
|
|
||||||
432: 177e00000
|
|
||||||
433: 177e00000
|
|
||||||
434: 177e00000
|
|
||||||
435: 177e00000
|
|
||||||
436: 177e00000
|
|
||||||
437: 177e00000
|
|
||||||
438: 177e00000
|
|
||||||
439: 177e00000
|
|
||||||
440: 177e00000
|
|
||||||
441: 177e00000
|
|
||||||
442: 177e00000
|
|
||||||
443: 177e00000
|
|
||||||
444: 177e00000
|
|
||||||
445: 177e00000
|
|
||||||
446: 177e00000
|
|
||||||
447: 177e00000
|
|
||||||
448: 177e00000
|
|
||||||
449: 177e00000
|
|
||||||
450: 177e00000
|
|
||||||
451: 177e00000
|
|
||||||
452: 177e00000
|
|
||||||
453: 177e00000
|
|
||||||
454: 177e00000
|
|
||||||
455: 177e00000
|
|
||||||
456: 177e00000
|
|
||||||
457: 177e00000
|
|
||||||
458: 177e00000
|
|
||||||
459: 177e00000
|
|
||||||
460: 177e00000
|
|
||||||
461: 177e00000
|
|
||||||
462: 177e00000
|
|
||||||
463: 177e00000
|
|
||||||
464: 177e00000
|
|
||||||
465: 177e00000
|
|
||||||
466: 177e00000
|
|
||||||
467: 177e00000
|
|
||||||
468: 177e00000
|
|
||||||
469: 177e00000
|
|
||||||
470: 177e00000
|
|
||||||
471: 177e00000
|
|
||||||
472: 177e00000
|
|
||||||
473: 177e00000
|
|
||||||
474: 177e00000
|
|
||||||
475: 177e00000
|
|
||||||
476: 177e00000
|
|
||||||
477: 177e00000
|
|
||||||
478: 177e00000
|
|
||||||
479: 177e00000
|
|
||||||
480: 177e00000
|
|
||||||
481: 177e00000
|
|
||||||
482: 177e00000
|
|
||||||
483: 177e00000
|
|
||||||
484: 177e00000
|
|
||||||
485: 177e00000
|
|
||||||
486: 177e00000
|
|
||||||
487: 177e00000
|
|
||||||
488: 118000002
|
|
||||||
489: 118180001
|
|
||||||
490: 177e00000
|
|
||||||
491: 177e00000
|
|
||||||
492: 177e00000
|
|
||||||
493: 177e00000
|
|
||||||
494: 177e00000
|
|
||||||
495: 177e00000
|
|
||||||
496: 177e00000
|
|
||||||
497: 177e00000
|
|
||||||
498: 177e00000
|
|
||||||
499: 177e00000
|
|
||||||
500: 177e00000
|
|
||||||
501: 177e00000
|
|
||||||
502: 177e00000
|
|
||||||
503: 177e00000
|
|
||||||
504: 127020000
|
|
||||||
505: 107c00001
|
|
||||||
506: 177e00000
|
|
||||||
507: 177e00000
|
|
||||||
508: 177e00000
|
|
||||||
509: 177e00000
|
|
||||||
510: 177e00000
|
|
||||||
511: 177e00000
|
|
||||||
512: 177e00000
|
|
||||||
513: 177e00000
|
|
||||||
514: 177e00000
|
|
||||||
515: 177e00000
|
|
||||||
516: 177e00000
|
|
||||||
517: 177e00000
|
|
||||||
518: 177e00000
|
|
||||||
519: 177e00000
|
|
||||||
520: 11fc00000
|
|
||||||
521: 11fc00000
|
|
||||||
522: 177e00000
|
|
||||||
523: 177e00000
|
|
||||||
524: 177e00000
|
|
||||||
525: 1c3040000
|
|
||||||
526: 177e00000
|
|
||||||
527: 177e00000
|
|
||||||
528: 177e00000
|
|
||||||
529: 177e00000
|
|
||||||
530: 177e00000
|
|
||||||
531: 177e00000
|
|
||||||
532: 177e00000
|
|
||||||
533: 177e00000
|
|
||||||
534: 177e00000
|
|
||||||
535: 177e00000
|
|
||||||
536: 127020000
|
|
||||||
537: 107c00001
|
|
||||||
538: 177e00000
|
|
||||||
539: 177e00000
|
|
||||||
540: 177e00000
|
|
||||||
541: 177e00000
|
|
||||||
542: 177e00000
|
|
||||||
543: 177e00000
|
|
||||||
*******KERNEl*********
|
|
||||||
0: 177e00000
|
|
||||||
1: 177e00000
|
|
||||||
2: 177e00000
|
|
||||||
3: 177e00000
|
|
||||||
4: 177e00000
|
|
||||||
5: 177e00000
|
|
||||||
6: 177e00000
|
|
||||||
7: 177e00000
|
|
||||||
8: 11fc00000
|
|
||||||
9: 11fc00000
|
|
||||||
10: 177e00000
|
|
||||||
11: 177e00000
|
|
||||||
12: 177e00000
|
|
||||||
13: 1c3040000
|
|
||||||
14: 177e00000
|
|
||||||
15: 177e00000
|
|
||||||
16: 177e00000
|
|
||||||
17: 177e00000
|
|
||||||
18: 177e00000
|
|
||||||
19: 177e00000
|
|
||||||
20: 177e00000
|
|
||||||
21: 177e00000
|
|
||||||
22: 177e00000
|
|
||||||
23: 177e00000
|
|
||||||
24: 127020000
|
|
||||||
25: 107c00001
|
|
||||||
26: 177e00000
|
|
||||||
27: 177e00000
|
|
||||||
28: 177e00000
|
|
||||||
29: 177e00000
|
|
||||||
30: 177e00000
|
|
||||||
31: 177e00000
|
|
||||||
*******EPILOG*********
|
|
||||||
0: 177e00000
|
|
||||||
1: 177e00000
|
|
||||||
2: 177e00000
|
|
||||||
3: 177e00000
|
|
||||||
4: 177e00000
|
|
||||||
5: 177e00000
|
|
||||||
6: 177e00000
|
|
||||||
7: 177e00000
|
|
||||||
8: 177e00000
|
|
||||||
9: 177e00000
|
|
||||||
10: 177e00000
|
|
||||||
11: 177e00000
|
|
||||||
12: 177e00000
|
|
||||||
13: 1c3040000
|
|
||||||
14: 177e00000
|
|
||||||
15: 177e00000
|
|
||||||
16: 177e00000
|
|
||||||
17: 177e00000
|
|
||||||
18: 177e00000
|
|
||||||
19: 177e00000
|
|
||||||
20: 177e00000
|
|
||||||
21: 177e00000
|
|
||||||
22: 177e00000
|
|
||||||
23: 177e00000
|
|
||||||
24: 107c01000
|
|
||||||
25: 177e00000
|
|
||||||
26: 168c02004
|
|
||||||
27: 177e00000
|
|
||||||
28: 177e00000
|
|
||||||
29: 177e00000
|
|
||||||
30: 177e00000
|
|
||||||
31: 177e00000
|
|
|
@ -1,41 +0,0 @@
|
||||||
Mapping has started
|
|
||||||
Operating mode:3
|
|
||||||
Starting II: 2 rec_MII: 2
|
|
||||||
node_set size: 5
|
|
||||||
Node: 2
|
|
||||||
|
|
||||||
Node: 2 type:2 ASAP: 1 ALAP:2 random try_time: 1
|
|
||||||
Node: 1
|
|
||||||
|
|
||||||
Node: 1 type:29 ASAP: 0 ALAP:0 random try_time: 0
|
|
||||||
Node: 4
|
|
||||||
|
|
||||||
Node: 4 type:10 ASAP: 2 ALAP:3 random try_time: 2
|
|
||||||
Node: 3
|
|
||||||
|
|
||||||
Node: 3 type:0 ASAP: 1 ALAP:1 random try_time: 1
|
|
||||||
Node: 0
|
|
||||||
|
|
||||||
Node: 0 type:29 ASAP: 0 ALAP:0 random try_time: 0
|
|
||||||
Feasible II is 2 Schedule Len is 4
|
|
||||||
Node: 0 ASAP: 0 ALAP: 0 is init: 1 sched @ 0 mod: 0
|
|
||||||
Node: 1 ASAP: 0 ALAP: 0 is init: 1 sched @ 0 mod: 0
|
|
||||||
Node: 2 ASAP: 1 ALAP: 2 is init: 1 sched @ 1 mod: 1
|
|
||||||
Node: 3 ASAP: 1 ALAP: 1 is init: 1 sched @ 1 mod: 1
|
|
||||||
Node: 4 ASAP: 2 ALAP: 3 is init: 1 sched @ 2 mod: 0
|
|
||||||
Left Nodes Are: 0
|
|
||||||
Left Nodes Are: 1
|
|
||||||
Left Nodes Are: 2
|
|
||||||
K : 1
|
|
||||||
distance: 1
|
|
||||||
adding nodes between: 2-->1
|
|
||||||
Left Nodes Are: 3
|
|
||||||
K : 1
|
|
||||||
distance: 1
|
|
||||||
adding nodes between: 3-->0
|
|
||||||
Successfully inserted routing nodes to the scheduled DFG.
|
|
||||||
attempt=0
|
|
||||||
rec_MII=0 resMII=1 II:2
|
|
||||||
Start Placement for II = 2
|
|
||||||
MII = 2 Current II=2
|
|
||||||
Mapping is completed and successfull
|
|
|
@ -1,17 +0,0 @@
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
4
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
16
|
|
Binary file not shown.
|
@ -1,10 +0,0 @@
|
||||||
0 29 1
|
|
||||||
1 29 1
|
|
||||||
2 2 1
|
|
||||||
3 0 1
|
|
||||||
4 10 1
|
|
||||||
5 30 1
|
|
||||||
8 30 1
|
|
||||||
11 30 1
|
|
||||||
14 30 1
|
|
||||||
15 30 1
|
|
|
@ -1,10 +0,0 @@
|
||||||
2011168768
|
|
||||||
2011168768
|
|
||||||
2
|
|
||||||
2
|
|
||||||
18
|
|
||||||
7
|
|
||||||
1
|
|
||||||
678624
|
|
||||||
678888
|
|
||||||
681200
|
|
|
@ -1,20 +0,0 @@
|
||||||
digraph iso_graph {
|
|
||||||
{
|
|
||||||
0 [color=red ];
|
|
||||||
|
|
||||||
1 [color=red ];
|
|
||||||
|
|
||||||
2 [color=red ];
|
|
||||||
|
|
||||||
3 [color=red ];
|
|
||||||
|
|
||||||
4 [color=red ];
|
|
||||||
3 -> 0 [style=bold, color=red, label=1]
|
|
||||||
2 -> 1 [style=bold, color=red, label=1]
|
|
||||||
1 -> 2
|
|
||||||
0 -> 3
|
|
||||||
3 -> 4
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,33 +0,0 @@
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
1 0 0
|
|
||||||
0 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
4 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
2 0 1
|
|
||||||
3 0 1
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
32
|
|
|
@ -1 +0,0 @@
|
||||||
-3
|
|
Binary file not shown.
|
@ -1,12 +0,0 @@
|
||||||
106 107 0 LRE 0
|
|
||||||
107 0 0 TRU 1
|
|
||||||
5 106 0 TRU 0
|
|
||||||
109 110 0 LRE 0
|
|
||||||
110 1 0 TRU 1
|
|
||||||
8 109 0 TRU 0
|
|
||||||
112 113 0 LRE 0
|
|
||||||
113 2 0 TRU 1
|
|
||||||
11 112 0 TRU 0
|
|
||||||
116 117 0 LRE 0
|
|
||||||
117 4 0 TRU 1
|
|
||||||
15 116 0 TRU 0
|
|
|
@ -1,16 +0,0 @@
|
||||||
0 29 0 1
|
|
||||||
5 30 gVar1 1
|
|
||||||
106 19 ld_add_gVar1 1
|
|
||||||
107 20 ld_data_gVar1 1
|
|
||||||
1 29 1 1
|
|
||||||
8 30 gVar2 1
|
|
||||||
109 19 ld_add_gVar2 1
|
|
||||||
110 20 ld_data_gVar2 1
|
|
||||||
2 2 2 1
|
|
||||||
11 30 gVar3 1
|
|
||||||
112 19 ld_add_gVar3 1
|
|
||||||
113 20 ld_data_gVar3 1
|
|
||||||
4 10 4 1
|
|
||||||
15 30 gVar4 1
|
|
||||||
116 19 ld_add_gVar4 1
|
|
||||||
117 20 ld_data_gVar4 1
|
|
|
@ -1,3 +0,0 @@
|
||||||
119 120 0 SRE 0
|
|
||||||
2 120 0 TRU 0
|
|
||||||
118 120 0 TRU 1
|
|
|
@ -1,4 +0,0 @@
|
||||||
2 2 2 0 1
|
|
||||||
118 30 gVar5 0 1
|
|
||||||
119 21 st_add_gVar5 4 1
|
|
||||||
120 22 st_data_gVar5 0 1
|
|
|
@ -1 +0,0 @@
|
||||||
16
|
|
|
@ -1,10 +0,0 @@
|
||||||
3 0 1 TRU 0
|
|
||||||
5 0 0 LIE 1
|
|
||||||
2 1 1 TRU 0
|
|
||||||
8 1 0 LIE 1
|
|
||||||
1 2 0 TRU 0
|
|
||||||
11 2 0 LIE 1
|
|
||||||
0 3 0 TRU 0
|
|
||||||
14 3 0 TRU 1
|
|
||||||
3 4 0 TRU 0
|
|
||||||
15 4 0 LIE 1
|
|
|
@ -1,10 +0,0 @@
|
||||||
0 29 0 0 1
|
|
||||||
1 29 1 0 1
|
|
||||||
2 2 2 0 1
|
|
||||||
3 0 3 0 1
|
|
||||||
4 10 4 0 1
|
|
||||||
5 30 gVar1 4 1
|
|
||||||
8 30 gVar2 4 1
|
|
||||||
11 30 gVar3 4 1
|
|
||||||
14 30 ConstInt1 0 1
|
|
||||||
15 30 gVar4 4 1
|
|
|
@ -1,38 +0,0 @@
|
||||||
digraph loop_21 {
|
|
||||||
{
|
|
||||||
0 [shape=box, color=red, label="0\nPHI"];
|
|
||||||
|
|
||||||
1 [shape=box, color=red, label="1\nPHI"];
|
|
||||||
|
|
||||||
2 [shape=house, color=purple, label="2\nMultiply"];
|
|
||||||
|
|
||||||
3 [shape=polygon, color=purple, label="3\nAdd"];
|
|
||||||
|
|
||||||
4 [shape=trapezium, color=orange, label="4\nCMPEQ"];
|
|
||||||
|
|
||||||
5 [color=black, label="gVar1\n"];
|
|
||||||
|
|
||||||
8 [color=black, label="gVar2\n"];
|
|
||||||
|
|
||||||
11 [color=black, label="gVar3\n"];
|
|
||||||
|
|
||||||
14 [color=black, label="ConstInt1\n"];
|
|
||||||
|
|
||||||
15 [color=black, label="gVar4\n"];
|
|
||||||
|
|
||||||
118 [color=black, label="gVar5\n"];
|
|
||||||
3 -> 0 [style=bold, color=red, label=1]
|
|
||||||
5 -> 0 [color=orange, label=4]
|
|
||||||
2 -> 1 [style=bold, color=red, label=1]
|
|
||||||
8 -> 1 [color=orange, label=4]
|
|
||||||
1 -> 2
|
|
||||||
11 -> 2 [color=orange, label=4]
|
|
||||||
0 -> 3
|
|
||||||
14 -> 3 [color=gray]
|
|
||||||
3 -> 4
|
|
||||||
15 -> 4 [color=orange, label=4]
|
|
||||||
2 -> 118 [color=orange, label=4]
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1 +0,0 @@
|
||||||
0
|
|
|
@ -1,5 +0,0 @@
|
||||||
0 1
|
|
||||||
1 1
|
|
||||||
2 1
|
|
||||||
3 1
|
|
||||||
4 1
|
|
|
@ -1,65 +0,0 @@
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
1
|
|
||||||
0
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
1
|
|
||||||
0
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
4
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
64
|
|
Binary file not shown.
|
@ -1,16 +0,0 @@
|
||||||
0 0
|
|
||||||
1 0
|
|
||||||
2 0
|
|
||||||
3 0
|
|
||||||
4 0
|
|
||||||
5 0
|
|
||||||
6 0
|
|
||||||
7 0
|
|
||||||
8 0
|
|
||||||
9 0
|
|
||||||
10 0
|
|
||||||
11 0
|
|
||||||
12 0
|
|
||||||
13 0
|
|
||||||
14 0
|
|
||||||
15 0
|
|
|
@ -1,112 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
############################################
|
|
||||||
############################################
|
|
||||||
## Author : Shail Dave ##
|
|
||||||
## Arizona State University ##
|
|
||||||
## ##
|
|
||||||
## Notes : Script File To Compile A Loop ##
|
|
||||||
## for its Execution on CGRA ##
|
|
||||||
## ##
|
|
||||||
############################################
|
|
||||||
############################################
|
|
||||||
|
|
||||||
#Set Architecture Parameters
|
|
||||||
#X=4
|
|
||||||
#Y=4
|
|
||||||
#R=4
|
|
||||||
|
|
||||||
X=0
|
|
||||||
Y=0
|
|
||||||
R=0
|
|
||||||
IC=0
|
|
||||||
CGRAclock=0
|
|
||||||
CPUClock=0
|
|
||||||
ALGO=""
|
|
||||||
MSA=10
|
|
||||||
MAPII=10
|
|
||||||
MAX_MAP=1000
|
|
||||||
MAX_II=50
|
|
||||||
LAMBDA=0.02
|
|
||||||
|
|
||||||
if [ -f "CGRA_config.csv" ]; then
|
|
||||||
INPUTFILE="CGRA_config.csv"
|
|
||||||
X=$(grep -w X $INPUTFILE | cut -d, -f2)
|
|
||||||
Y=$(grep -w Y $INPUTFILE | cut -d, -f2)
|
|
||||||
R=$(grep -w R $INPUTFILE | cut -d, -f2)
|
|
||||||
ALGO=$(grep -w ALGO $INPUTFILE | cut -d, -f2)
|
|
||||||
MSA=$(grep -w MSA $INPUTFILE | cut -d, -f2)
|
|
||||||
MAPII=$(grep -w MAPII $INPUTFILE | cut -d, -f2)
|
|
||||||
MAX_MAP=$(grep -w MAX_MAP $INPUTFILE | cut -d, -f2)
|
|
||||||
MAX_II=$(grep -w MAX_II $INPUTFILE | cut -d, -f2)
|
|
||||||
LAMBDA=$(grep -w LAMBDA $INPUTFILE | cut -d, -f2)
|
|
||||||
|
|
||||||
|
|
||||||
else
|
|
||||||
echo "Please include CGRA architecture file"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
obj="$1"
|
|
||||||
|
|
||||||
#Setting Paths
|
|
||||||
LEVEL=../..
|
|
||||||
#toolchain="/home/shail/ccf-init"
|
|
||||||
ccf_root="$2"
|
|
||||||
script="$ccf_root/scripts"
|
|
||||||
opcodegen="$ccf_root/InstructionGenerator/insgen"
|
|
||||||
opcodegen1="$ccf_root/InstructionGenerator/falcon_insgen"
|
|
||||||
|
|
||||||
#Detect node and edge file
|
|
||||||
llvmedge="$(find . -name "*.txt" | grep -i loop | grep -i edge)"
|
|
||||||
llvmnode="$(find . -name "*.txt" | grep -i loop | grep -i node)"
|
|
||||||
|
|
||||||
echo $llvmnode
|
|
||||||
|
|
||||||
#RAMP - Scheduling and Mapping
|
|
||||||
#if [ $ALGO -eq 0 ]; then
|
|
||||||
# $script/map.sh $llvmnode $llvmedge -X $X -Y $Y -R $R
|
|
||||||
#elif [ $ALGO -eq 1 ]; then
|
|
||||||
# $script/map1.sh $llvmnode $llvmedge $X $Y $R $MODE
|
|
||||||
#elif [ $ALGO -eq 2 ]; then
|
|
||||||
# $script/map2.sh $llvmnode $llvmedge $X $Y $R $MODE
|
|
||||||
#elif [ $ALGO -eq 3 ]; then
|
|
||||||
# $script/map3.sh $llvmnode $llvmedge $X $Y $R $MODE
|
|
||||||
#else
|
|
||||||
# $script/map4.sh $llvmnode $llvmedge $X $Y $R $MODE $SCHED
|
|
||||||
#fi
|
|
||||||
|
|
||||||
pwd
|
|
||||||
find ${ccf_root}/mappings -maxdepth 1 -mindepth 1 -type d | while read dir; do
|
|
||||||
if [[ $dir == *"$ALGO" ]]; then
|
|
||||||
map="$dir/Release"
|
|
||||||
nodefile="$dir/DFGFiles"
|
|
||||||
$map/$ALGO -EDGE $llvmedge -NODE $llvmnode -X $X -Y $Y -R $R -MSA $MSA -MAPII $MAPII -MAX_MAP $MAX_MAP -MAX_II $MAX_II -LAMBDA $LAMBDA #> $schfile
|
|
||||||
$nodefile/nodefile $llvmnode DUMP_node.txt > final_node.txt
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
finalnode="$(find ./ -name "*.txt" | grep -i final | grep -i node)"
|
|
||||||
node="$(find ./ -name "*.txt" | grep -i DUMP | grep -i node)"
|
|
||||||
edge="$(find ./ -name "*.txt" | grep -i DUMP | grep -i edge)"
|
|
||||||
|
|
||||||
liveoutnode="$(find ./ -name "*.txt" | grep -i liveout | grep -i node)"
|
|
||||||
liveoutedge="$(find ./ -name "*.txt" | grep -i liveout | grep -i edge)"
|
|
||||||
|
|
||||||
if [ $R -eq 0 ]; then
|
|
||||||
R=4
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#echo "Num regs is $R"
|
|
||||||
|
|
||||||
#Instruction Generator
|
|
||||||
echo Instruction Generator
|
|
||||||
if [ $ALGO == "FalconCrimson" ]; then
|
|
||||||
echo running FalcomCrimson
|
|
||||||
$opcodegen1 $finalnode $edge $llvmnode $llvmedge $obj prolog.sch kernel.sch epilog.sch $X $Y $R $liveoutnode $liveoutedge > cgra_instructions.txt
|
|
||||||
else
|
|
||||||
echo Running something else
|
|
||||||
#$opcodegen $finalnode $edge $llvmnode $llvmedge $obj prolog.sch kernel.sch epilog.sch $X $Y $R $liveoutnode $liveoutedge > cgra_instructions.txt
|
|
||||||
$opcodegen $finalnode $edge $llvmnode $llvmedge $obj prolog.sch kernel.sch epilog.sch $X $Y $R $liveoutnode $liveoutedge &> cgra_instructions.debug
|
|
||||||
fi
|
|
|
@ -1,42 +0,0 @@
|
||||||
digraph schedule {
|
|
||||||
{
|
|
||||||
0 [color=red ];
|
|
||||||
|
|
||||||
1 [color=red ];
|
|
||||||
|
|
||||||
2 [color=red ];
|
|
||||||
|
|
||||||
3 [color=red ];
|
|
||||||
|
|
||||||
4 [color=red ];
|
|
||||||
3 -> 0 [style=bold, color=red, label=1]
|
|
||||||
2 -> 1 [style=bold, color=red, label=1]
|
|
||||||
1 -> 2
|
|
||||||
0 -> 3
|
|
||||||
3 -> 4
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
node [shape=plaintext];
|
|
||||||
T0 -> T1 -> T2 -> T3 -> T4;
|
|
||||||
}{ rank = source;
|
|
||||||
T0;
|
|
||||||
};
|
|
||||||
{ rank = same;
|
|
||||||
0; 1; T0;
|
|
||||||
};
|
|
||||||
{ rank = same;
|
|
||||||
2; 3; T1;
|
|
||||||
};
|
|
||||||
{ rank = same;
|
|
||||||
4; T2;
|
|
||||||
};
|
|
||||||
{ rank = same;
|
|
||||||
|
|
||||||
};
|
|
||||||
{ rank = same;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,42 +0,0 @@
|
||||||
digraph schedule {
|
|
||||||
{
|
|
||||||
0 [color=red ];
|
|
||||||
|
|
||||||
1 [color=red ];
|
|
||||||
|
|
||||||
2 [color=red ];
|
|
||||||
|
|
||||||
3 [color=red ];
|
|
||||||
|
|
||||||
4 [color=red ];
|
|
||||||
3 -> 0 [style=bold, color=red, label=1]
|
|
||||||
2 -> 1 [style=bold, color=red, label=1]
|
|
||||||
1 -> 2
|
|
||||||
0 -> 3
|
|
||||||
3 -> 4
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
node [shape=plaintext];
|
|
||||||
T0 -> T1 -> T2 -> T3 -> T4;
|
|
||||||
}{ rank = source;
|
|
||||||
T0;
|
|
||||||
};
|
|
||||||
{ rank = same;
|
|
||||||
0; 1; T0;
|
|
||||||
};
|
|
||||||
{ rank = same;
|
|
||||||
2; 3; T1;
|
|
||||||
};
|
|
||||||
{ rank = same;
|
|
||||||
4; T2;
|
|
||||||
};
|
|
||||||
{ rank = same;
|
|
||||||
|
|
||||||
};
|
|
||||||
{ rank = same;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
X,4
|
|
||||||
Y,4
|
|
||||||
R,4
|
|
||||||
IC,0
|
|
||||||
Cclock,0.7
|
|
||||||
CPUclock,2
|
|
||||||
Mem,8GB
|
|
||||||
MODE,0
|
|
||||||
ALGO,FalconCrimson
|
|
||||||
MSA,10
|
|
||||||
MAPII,10
|
|
||||||
MAX_MAP,1000
|
|
||||||
MAX_II,50
|
|
||||||
LAMBDA,0.02
|
|
|
|
@ -1,14 +0,0 @@
|
||||||
4
|
|
||||||
4
|
|
||||||
4
|
|
||||||
0
|
|
||||||
0.7
|
|
||||||
2
|
|
||||||
8GB
|
|
||||||
0
|
|
||||||
FalconCrimson
|
|
||||||
10
|
|
||||||
10
|
|
||||||
1000
|
|
||||||
50
|
|
||||||
0.02
|
|
|
@ -1,5 +0,0 @@
|
||||||
3 0 1 TRU 0
|
|
||||||
2 1 1 TRU 0
|
|
||||||
1 2 0 TRU 0
|
|
||||||
0 3 0 TRU 0
|
|
||||||
3 4 0 TRU 0
|
|
|
@ -1,5 +0,0 @@
|
||||||
0 29 1
|
|
||||||
1 29 1
|
|
||||||
2 4 1
|
|
||||||
3 0 1
|
|
||||||
4 10 1
|
|
|
@ -1,33 +0,0 @@
|
||||||
digraph Success_MS_ {
|
|
||||||
{
|
|
||||||
0 [color=red ];
|
|
||||||
|
|
||||||
1 [color=red ];
|
|
||||||
|
|
||||||
2 [color=red ];
|
|
||||||
|
|
||||||
3 [color=red ];
|
|
||||||
|
|
||||||
4 [color=red ];
|
|
||||||
3 -> 0 [style=bold, color=red, label=1]
|
|
||||||
2 -> 1 [style=bold, color=red, label=1]
|
|
||||||
1 -> 2
|
|
||||||
0 -> 3
|
|
||||||
3 -> 4
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
node [shape=plaintext];
|
|
||||||
T0 -> T1;
|
|
||||||
}{ rank = same;
|
|
||||||
0; 1; 4; T0;
|
|
||||||
};
|
|
||||||
{ rank = same;
|
|
||||||
2; 3; T1;
|
|
||||||
};
|
|
||||||
{ rank = same;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,504 +0,0 @@
|
||||||
|
|
||||||
UPDATING EDGES 3:0
|
|
||||||
|
|
||||||
UPDATING DEPENDENCY EDGES FOR NODE 0:1
|
|
||||||
|
|
||||||
UPDATING EDGES 2:1
|
|
||||||
|
|
||||||
UPDATING DEPENDENCY EDGES FOR NODE 1:1
|
|
||||||
|
|
||||||
UPDATING EDGES 1:2
|
|
||||||
|
|
||||||
UPDATING EDGES 0:3
|
|
||||||
|
|
||||||
UPDATING EDGES 3:4
|
|
||||||
|
|
||||||
UPDATING EDGES 5:0
|
|
||||||
|
|
||||||
UPDATING EDGES 6:1
|
|
||||||
|
|
||||||
UPDATING EDGES 5:2
|
|
||||||
|
|
||||||
UPDATING EDGES 5:3
|
|
||||||
|
|
||||||
UPDATING EDGES 7:4
|
|
||||||
|
|
||||||
UPDATING EDGES 111:112
|
|
||||||
|
|
||||||
UPDATING EDGES 2:112
|
|
||||||
|
|
||||||
UPDATING EDGES 110:112
|
|
||||||
file ptr:0 open:1 prolog_size:64
|
|
||||||
|
|
||||||
|
|
||||||
64
|
|
||||||
32
|
|
||||||
16
|
|
||||||
*********KERNEL*****************
|
|
||||||
*********EPILOG*****************
|
|
||||||
LiveOut_data_pe: 8 liveOut_data: 2
|
|
||||||
LiveOut_add_pe: 10 liveOut_add: 111
|
|
||||||
PE: 0 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 1 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 2 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 3 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 4 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 5 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 6 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 7 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 8 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 9 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 10 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 11 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 12 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 13 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 14 Configuration Boundary: 0 10e004000
|
|
||||||
PE: 15 Configuration Boundary: 0 10e004000
|
|
||||||
reg_num: 0
|
|
||||||
Generating Instructions To Store Address (Hex) 9a648
|
|
||||||
gVar6
|
|
||||||
Loading dynamic constant value. LDA and LDD are 168c02004: 105c04000 in pe 13
|
|
||||||
Load Dyn Cons 168c02004 105c04000
|
|
||||||
reg_num: 0
|
|
||||||
reg_num: 0
|
|
||||||
reg_num: 1
|
|
||||||
reg_num: 1
|
|
||||||
reg_num: 1
|
|
||||||
reg_num: 0
|
|
||||||
Large Constant (Hex): 1 Constant (Decimal): 1
|
|
||||||
reg_num: 1
|
|
||||||
Large Constant (Hex): 2 Constant (Decimal): 2
|
|
||||||
reg_num: 2
|
|
||||||
Generating Instructions To Store Address (Hex) 9a648
|
|
||||||
gVar6
|
|
||||||
Loading dynamic constant value. LDA and LDD are 168d02004: 105c14000 in pe 13
|
|
||||||
Load Dyn Cons 168d02004 105c14000
|
|
||||||
reg_num: 2
|
|
||||||
Generating Instructions To Store Address (Hex) 9a654
|
|
||||||
gVar7
|
|
||||||
reg_num: 0
|
|
||||||
|
|
||||||
Variable Address (Hex): 9a654 Node: 111 PE: 10 Address (Decimal): 632404 RegNum: 0
|
|
||||||
reg_num: 2
|
|
||||||
pe mem op
|
|
||||||
0 6
|
|
||||||
1 0
|
|
||||||
2 0
|
|
||||||
3 0
|
|
||||||
4 0
|
|
||||||
5 0
|
|
||||||
6 0
|
|
||||||
7 0
|
|
||||||
8 6
|
|
||||||
9 9
|
|
||||||
10 3
|
|
||||||
11 0
|
|
||||||
12 0
|
|
||||||
13 13
|
|
||||||
14 0
|
|
||||||
15 0
|
|
||||||
|
|
||||||
****** Generatina Instructions For Non-Phi Nodes *****
|
|
||||||
|
|
||||||
NODES SCHEDULED AT 0
|
|
||||||
4
|
|
||||||
|
|
||||||
FOR NODE 4: Datatype:1 opcode:12 lmux:3 rmux:0 reg1:0 reg2:2 we:0 wreg:0 imm:0 ab:0 db:0
|
|
||||||
Decoded 1c3040000
|
|
||||||
|
|
||||||
NODES SCHEDULED AT 1
|
|
||||||
2 3
|
|
||||||
|
|
||||||
FOR NODE 2: Datatype:1 opcode:8 lmux:7 rmux:6 reg1:0 reg2:0 we:0 wreg:0 imm:1 ab:0 db:0
|
|
||||||
Decoded 187c00001
|
|
||||||
|
|
||||||
FOR NODE 3: Datatype:1 opcode:0 lmux:7 rmux:6 reg1:0 reg2:0 we:0 wreg:0 imm:1 ab:0 db:0
|
|
||||||
Decoded 107c00001
|
|
||||||
|
|
||||||
****** Generating Instructions For Phi Nodes *****
|
|
||||||
|
|
||||||
NODES SCHEDULED AT 0
|
|
||||||
0 1
|
|
||||||
Phi Instructions
|
|
||||||
|
|
||||||
Phi! Prolog! FOR NODE 0: Datatype:1 opcode:1 lmux:6 rmux:0 reg1:0 reg2:0 we:0 wreg:0 imm:1 ab:0 db:0
|
|
||||||
Decoded 11e000001
|
|
||||||
|
|
||||||
Phi! Prolog! FOR NODE 1: Datatype:1 opcode:1 lmux:6 rmux:0 reg1:0 reg2:0 we:0 wreg:0 imm:2 ab:0 db:0
|
|
||||||
Decoded 11e000002
|
|
||||||
|
|
||||||
Kernel Instructions
|
|
||||||
|
|
||||||
FOR NODE 0: Datatype:1 opcode:1 lmux:7 rmux:6 reg1:0 reg2:0 we:0 wreg:0 imm:0 ab:0 db:0
|
|
||||||
Decoded 11fc00000
|
|
||||||
|
|
||||||
FOR NODE 1: Datatype:1 opcode:1 lmux:7 rmux:6 reg1:0 reg2:0 we:0 wreg:0 imm:0 ab:0 db:0
|
|
||||||
Decoded 11fc00000
|
|
||||||
|
|
||||||
****** Generating Instructions For Store Nodes For Live Variables*****
|
|
||||||
|
|
||||||
NODES SCHEDULED AT 2
|
|
||||||
|
|
||||||
NODES SCHEDULED AT STORE CYCLE 0
|
|
||||||
111 112
|
|
||||||
|
|
||||||
FOR NODE 111: Datatype:1 opcode:6 lmux:0 rmux:6 reg1:0 reg2:0 we:0 wreg:0 imm:4 ab:1 db:0
|
|
||||||
Decoded 168c02004
|
|
||||||
|
|
||||||
FOR NODE 112: Datatype:1 opcode:0 lmux:7 rmux:6 reg1:0 reg2:0 we:0 wreg:0 imm:0 ab:0 db:1
|
|
||||||
Decoded 107c01000
|
|
||||||
*******PROLOG*********
|
|
||||||
0: 10e004000
|
|
||||||
1: 10e004000
|
|
||||||
2: 10e004000
|
|
||||||
3: 10e004000
|
|
||||||
4: 10e004000
|
|
||||||
5: 10e004000
|
|
||||||
6: 10e004000
|
|
||||||
7: 10e004000
|
|
||||||
8: 10e004000
|
|
||||||
9: 10e004000
|
|
||||||
10: 10e004000
|
|
||||||
11: 10e004000
|
|
||||||
12: 10e004000
|
|
||||||
13: 10e004000
|
|
||||||
14: 10e004000
|
|
||||||
15: 10e004000
|
|
||||||
16: 11e004001
|
|
||||||
17: 177e00000
|
|
||||||
18: 177e00000
|
|
||||||
19: 177e00000
|
|
||||||
20: 177e00000
|
|
||||||
21: 177e00000
|
|
||||||
22: 177e00000
|
|
||||||
23: 177e00000
|
|
||||||
24: 177e00000
|
|
||||||
25: 11e014654
|
|
||||||
26: 11e004654
|
|
||||||
27: 177e00000
|
|
||||||
28: 177e00000
|
|
||||||
29: 11e004648
|
|
||||||
30: 177e00000
|
|
||||||
31: 177e00000
|
|
||||||
32: 12e004000
|
|
||||||
33: 177e00000
|
|
||||||
34: 177e00000
|
|
||||||
35: 177e00000
|
|
||||||
36: 177e00000
|
|
||||||
37: 177e00000
|
|
||||||
38: 177e00000
|
|
||||||
39: 177e00000
|
|
||||||
40: 177e00000
|
|
||||||
41: 12e01409a
|
|
||||||
42: 12e00409a
|
|
||||||
43: 177e00000
|
|
||||||
44: 177e00000
|
|
||||||
45: 12e00409a
|
|
||||||
46: 177e00000
|
|
||||||
47: 177e00000
|
|
||||||
48: 13e004000
|
|
||||||
49: 177e00000
|
|
||||||
50: 177e00000
|
|
||||||
51: 177e00000
|
|
||||||
52: 177e00000
|
|
||||||
53: 177e00000
|
|
||||||
54: 177e00000
|
|
||||||
55: 177e00000
|
|
||||||
56: 177e00000
|
|
||||||
57: 13e014000
|
|
||||||
58: 13e004000
|
|
||||||
59: 177e00000
|
|
||||||
60: 177e00000
|
|
||||||
61: 13e004000
|
|
||||||
62: 177e00000
|
|
||||||
63: 177e00000
|
|
||||||
64: 11e00c002
|
|
||||||
65: 177e00000
|
|
||||||
66: 177e00000
|
|
||||||
67: 177e00000
|
|
||||||
68: 177e00000
|
|
||||||
69: 177e00000
|
|
||||||
70: 177e00000
|
|
||||||
71: 177e00000
|
|
||||||
72: 177e00000
|
|
||||||
73: 177e00000
|
|
||||||
74: 177e00000
|
|
||||||
75: 177e00000
|
|
||||||
76: 177e00000
|
|
||||||
77: 168c02004
|
|
||||||
78: 177e00000
|
|
||||||
79: 177e00000
|
|
||||||
80: 12e00c000
|
|
||||||
81: 177e00000
|
|
||||||
82: 177e00000
|
|
||||||
83: 177e00000
|
|
||||||
84: 177e00000
|
|
||||||
85: 177e00000
|
|
||||||
86: 177e00000
|
|
||||||
87: 177e00000
|
|
||||||
88: 177e00000
|
|
||||||
89: 177e00000
|
|
||||||
90: 177e00000
|
|
||||||
91: 177e00000
|
|
||||||
92: 177e00000
|
|
||||||
93: 105c04000
|
|
||||||
94: 177e00000
|
|
||||||
95: 177e00000
|
|
||||||
96: 13e00c000
|
|
||||||
97: 177e00000
|
|
||||||
98: 177e00000
|
|
||||||
99: 177e00000
|
|
||||||
100: 177e00000
|
|
||||||
101: 177e00000
|
|
||||||
102: 177e00000
|
|
||||||
103: 177e00000
|
|
||||||
104: 177e00000
|
|
||||||
105: 177e00000
|
|
||||||
106: 177e00000
|
|
||||||
107: 177e00000
|
|
||||||
108: 177e00000
|
|
||||||
109: 11e014648
|
|
||||||
110: 177e00000
|
|
||||||
111: 177e00000
|
|
||||||
112: 177e00000
|
|
||||||
113: 177e00000
|
|
||||||
114: 177e00000
|
|
||||||
115: 177e00000
|
|
||||||
116: 177e00000
|
|
||||||
117: 177e00000
|
|
||||||
118: 177e00000
|
|
||||||
119: 177e00000
|
|
||||||
120: 177e00000
|
|
||||||
121: 177e00000
|
|
||||||
122: 177e00000
|
|
||||||
123: 177e00000
|
|
||||||
124: 177e00000
|
|
||||||
125: 12e01409a
|
|
||||||
126: 177e00000
|
|
||||||
127: 177e00000
|
|
||||||
128: 177e00000
|
|
||||||
129: 177e00000
|
|
||||||
130: 177e00000
|
|
||||||
131: 177e00000
|
|
||||||
132: 177e00000
|
|
||||||
133: 177e00000
|
|
||||||
134: 177e00000
|
|
||||||
135: 177e00000
|
|
||||||
136: 177e00000
|
|
||||||
137: 177e00000
|
|
||||||
138: 177e00000
|
|
||||||
139: 177e00000
|
|
||||||
140: 177e00000
|
|
||||||
141: 13e014000
|
|
||||||
142: 177e00000
|
|
||||||
143: 177e00000
|
|
||||||
144: 177e00000
|
|
||||||
145: 177e00000
|
|
||||||
146: 177e00000
|
|
||||||
147: 177e00000
|
|
||||||
148: 177e00000
|
|
||||||
149: 177e00000
|
|
||||||
150: 177e00000
|
|
||||||
151: 177e00000
|
|
||||||
152: 177e00000
|
|
||||||
153: 177e00000
|
|
||||||
154: 177e00000
|
|
||||||
155: 177e00000
|
|
||||||
156: 177e00000
|
|
||||||
157: 168d02004
|
|
||||||
158: 177e00000
|
|
||||||
159: 177e00000
|
|
||||||
160: 177e00000
|
|
||||||
161: 177e00000
|
|
||||||
162: 177e00000
|
|
||||||
163: 177e00000
|
|
||||||
164: 177e00000
|
|
||||||
165: 177e00000
|
|
||||||
166: 177e00000
|
|
||||||
167: 177e00000
|
|
||||||
168: 177e00000
|
|
||||||
169: 177e00000
|
|
||||||
170: 177e00000
|
|
||||||
171: 177e00000
|
|
||||||
172: 177e00000
|
|
||||||
173: 105c14000
|
|
||||||
174: 177e00000
|
|
||||||
175: 177e00000
|
|
||||||
176: 177e00000
|
|
||||||
177: 177e00000
|
|
||||||
178: 177e00000
|
|
||||||
179: 177e00000
|
|
||||||
180: 177e00000
|
|
||||||
181: 177e00000
|
|
||||||
182: 177e00000
|
|
||||||
183: 177e00000
|
|
||||||
184: 177e00000
|
|
||||||
185: 177e00000
|
|
||||||
186: 177e00000
|
|
||||||
187: 177e00000
|
|
||||||
188: 177e00000
|
|
||||||
189: 177e00000
|
|
||||||
190: 177e00000
|
|
||||||
191: 177e00000
|
|
||||||
192: 177e00000
|
|
||||||
193: 177e00000
|
|
||||||
194: 177e00000
|
|
||||||
195: 177e00000
|
|
||||||
196: 177e00000
|
|
||||||
197: 177e00000
|
|
||||||
198: 177e00000
|
|
||||||
199: 177e00000
|
|
||||||
200: 177e00000
|
|
||||||
201: 177e00000
|
|
||||||
202: 177e00000
|
|
||||||
203: 177e00000
|
|
||||||
204: 177e00000
|
|
||||||
205: 177e00000
|
|
||||||
206: 177e00000
|
|
||||||
207: 177e00000
|
|
||||||
208: 177e00000
|
|
||||||
209: 177e00000
|
|
||||||
210: 177e00000
|
|
||||||
211: 177e00000
|
|
||||||
212: 177e00000
|
|
||||||
213: 177e00000
|
|
||||||
214: 177e00000
|
|
||||||
215: 177e00000
|
|
||||||
216: 177e00000
|
|
||||||
217: 177e00000
|
|
||||||
218: 177e00000
|
|
||||||
219: 177e00000
|
|
||||||
220: 177e00000
|
|
||||||
221: 177e00000
|
|
||||||
222: 177e00000
|
|
||||||
223: 177e00000
|
|
||||||
224: 177e00000
|
|
||||||
225: 177e00000
|
|
||||||
226: 177e00000
|
|
||||||
227: 177e00000
|
|
||||||
228: 177e00000
|
|
||||||
229: 177e00000
|
|
||||||
230: 177e00000
|
|
||||||
231: 177e00000
|
|
||||||
232: 11e000002
|
|
||||||
233: 11e000001
|
|
||||||
234: 177e00000
|
|
||||||
235: 177e00000
|
|
||||||
236: 177e00000
|
|
||||||
237: 177e00000
|
|
||||||
238: 177e00000
|
|
||||||
239: 177e00000
|
|
||||||
240: 177e00000
|
|
||||||
241: 177e00000
|
|
||||||
242: 177e00000
|
|
||||||
243: 177e00000
|
|
||||||
244: 177e00000
|
|
||||||
245: 177e00000
|
|
||||||
246: 177e00000
|
|
||||||
247: 177e00000
|
|
||||||
248: 187c00001
|
|
||||||
249: 107c00001
|
|
||||||
250: 177e00000
|
|
||||||
251: 177e00000
|
|
||||||
252: 177e00000
|
|
||||||
253: 177e00000
|
|
||||||
254: 177e00000
|
|
||||||
255: 177e00000
|
|
||||||
256: 177e00000
|
|
||||||
257: 177e00000
|
|
||||||
258: 177e00000
|
|
||||||
259: 177e00000
|
|
||||||
260: 177e00000
|
|
||||||
261: 177e00000
|
|
||||||
262: 177e00000
|
|
||||||
263: 177e00000
|
|
||||||
264: 11fc00000
|
|
||||||
265: 11fc00000
|
|
||||||
266: 177e00000
|
|
||||||
267: 177e00000
|
|
||||||
268: 177e00000
|
|
||||||
269: 1c3040000
|
|
||||||
270: 177e00000
|
|
||||||
271: 177e00000
|
|
||||||
272: 177e00000
|
|
||||||
273: 177e00000
|
|
||||||
274: 177e00000
|
|
||||||
275: 177e00000
|
|
||||||
276: 177e00000
|
|
||||||
277: 177e00000
|
|
||||||
278: 177e00000
|
|
||||||
279: 177e00000
|
|
||||||
280: 187c00001
|
|
||||||
281: 107c00001
|
|
||||||
282: 177e00000
|
|
||||||
283: 177e00000
|
|
||||||
284: 177e00000
|
|
||||||
285: 177e00000
|
|
||||||
286: 177e00000
|
|
||||||
287: 177e00000
|
|
||||||
*******KERNEl*********
|
|
||||||
0: 177e00000
|
|
||||||
1: 177e00000
|
|
||||||
2: 177e00000
|
|
||||||
3: 177e00000
|
|
||||||
4: 177e00000
|
|
||||||
5: 177e00000
|
|
||||||
6: 177e00000
|
|
||||||
7: 177e00000
|
|
||||||
8: 11fc00000
|
|
||||||
9: 11fc00000
|
|
||||||
10: 177e00000
|
|
||||||
11: 177e00000
|
|
||||||
12: 177e00000
|
|
||||||
13: 1c3040000
|
|
||||||
14: 177e00000
|
|
||||||
15: 177e00000
|
|
||||||
16: 177e00000
|
|
||||||
17: 177e00000
|
|
||||||
18: 177e00000
|
|
||||||
19: 177e00000
|
|
||||||
20: 177e00000
|
|
||||||
21: 177e00000
|
|
||||||
22: 177e00000
|
|
||||||
23: 177e00000
|
|
||||||
24: 187c00001
|
|
||||||
25: 107c00001
|
|
||||||
26: 177e00000
|
|
||||||
27: 177e00000
|
|
||||||
28: 177e00000
|
|
||||||
29: 177e00000
|
|
||||||
30: 177e00000
|
|
||||||
31: 177e00000
|
|
||||||
*******EPILOG*********
|
|
||||||
0: 177e00000
|
|
||||||
1: 177e00000
|
|
||||||
2: 177e00000
|
|
||||||
3: 177e00000
|
|
||||||
4: 177e00000
|
|
||||||
5: 177e00000
|
|
||||||
6: 177e00000
|
|
||||||
7: 177e00000
|
|
||||||
8: 177e00000
|
|
||||||
9: 177e00000
|
|
||||||
10: 177e00000
|
|
||||||
11: 177e00000
|
|
||||||
12: 177e00000
|
|
||||||
13: 1c3040000
|
|
||||||
14: 177e00000
|
|
||||||
15: 177e00000
|
|
||||||
16: 177e00000
|
|
||||||
17: 177e00000
|
|
||||||
18: 177e00000
|
|
||||||
19: 177e00000
|
|
||||||
20: 177e00000
|
|
||||||
21: 177e00000
|
|
||||||
22: 177e00000
|
|
||||||
23: 177e00000
|
|
||||||
24: 107c01000
|
|
||||||
25: 177e00000
|
|
||||||
26: 168c02004
|
|
||||||
27: 177e00000
|
|
||||||
28: 177e00000
|
|
||||||
29: 177e00000
|
|
||||||
30: 177e00000
|
|
||||||
31: 177e00000
|
|
|
@ -1,41 +0,0 @@
|
||||||
Mapping has started
|
|
||||||
Operating mode:3
|
|
||||||
Starting II: 2 rec_MII: 2
|
|
||||||
node_set size: 5
|
|
||||||
Node: 2
|
|
||||||
|
|
||||||
Node: 2 type:4 ASAP: 1 ALAP:2 random try_time: 1
|
|
||||||
Node: 1
|
|
||||||
|
|
||||||
Node: 1 type:29 ASAP: 0 ALAP:0 random try_time: 0
|
|
||||||
Node: 4
|
|
||||||
|
|
||||||
Node: 4 type:10 ASAP: 2 ALAP:3 random try_time: 2
|
|
||||||
Node: 3
|
|
||||||
|
|
||||||
Node: 3 type:0 ASAP: 1 ALAP:1 random try_time: 1
|
|
||||||
Node: 0
|
|
||||||
|
|
||||||
Node: 0 type:29 ASAP: 0 ALAP:0 random try_time: 0
|
|
||||||
Feasible II is 2 Schedule Len is 4
|
|
||||||
Node: 0 ASAP: 0 ALAP: 0 is init: 1 sched @ 0 mod: 0
|
|
||||||
Node: 1 ASAP: 0 ALAP: 0 is init: 1 sched @ 0 mod: 0
|
|
||||||
Node: 2 ASAP: 1 ALAP: 2 is init: 1 sched @ 1 mod: 1
|
|
||||||
Node: 3 ASAP: 1 ALAP: 1 is init: 1 sched @ 1 mod: 1
|
|
||||||
Node: 4 ASAP: 2 ALAP: 3 is init: 1 sched @ 2 mod: 0
|
|
||||||
Left Nodes Are: 0
|
|
||||||
Left Nodes Are: 1
|
|
||||||
Left Nodes Are: 2
|
|
||||||
K : 1
|
|
||||||
distance: 1
|
|
||||||
adding nodes between: 2-->1
|
|
||||||
Left Nodes Are: 3
|
|
||||||
K : 1
|
|
||||||
distance: 1
|
|
||||||
adding nodes between: 3-->0
|
|
||||||
Successfully inserted routing nodes to the scheduled DFG.
|
|
||||||
attempt=0
|
|
||||||
rec_MII=0 resMII=1 II:2
|
|
||||||
Start Placement for II = 2
|
|
||||||
MII = 2 Current II=2
|
|
||||||
Mapping is completed and successfull
|
|
|
@ -1,17 +0,0 @@
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
4
|
|
||||||
-1
|
|
||||||
-1
|
|
||||||
16
|
|
Binary file not shown.
|
@ -1,8 +0,0 @@
|
||||||
0 29 1
|
|
||||||
1 29 1
|
|
||||||
2 4 1
|
|
||||||
3 0 1
|
|
||||||
4 10 1
|
|
||||||
5 30 1
|
|
||||||
6 30 1
|
|
||||||
7 30 1
|
|
|
@ -1,20 +0,0 @@
|
||||||
digraph iso_graph {
|
|
||||||
{
|
|
||||||
0 [color=red ];
|
|
||||||
|
|
||||||
1 [color=red ];
|
|
||||||
|
|
||||||
2 [color=red ];
|
|
||||||
|
|
||||||
3 [color=red ];
|
|
||||||
|
|
||||||
4 [color=red ];
|
|
||||||
3 -> 0 [style=bold, color=red, label=1]
|
|
||||||
2 -> 1 [style=bold, color=red, label=1]
|
|
||||||
1 -> 2
|
|
||||||
0 -> 3
|
|
||||||
3 -> 4
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,33 +0,0 @@
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
1 0 0
|
|
||||||
0 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
4 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
2 0 1
|
|
||||||
3 0 1
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
-1 0 0
|
|
||||||
32
|
|
|
@ -1 +0,0 @@
|
||||||
-3
|
|
Binary file not shown.
|
@ -1,3 +0,0 @@
|
||||||
108 109 0 LRE 0
|
|
||||||
109 4 0 TRU 1
|
|
||||||
7 108 0 TRU 0
|
|
|
@ -1,4 +0,0 @@
|
||||||
4 10 4 1
|
|
||||||
7 30 gVar6 1
|
|
||||||
108 19 ld_add_gVar6 1
|
|
||||||
109 20 ld_data_gVar6 1
|
|
|
@ -1,3 +0,0 @@
|
||||||
111 112 0 SRE 0
|
|
||||||
2 112 0 TRU 0
|
|
||||||
110 112 0 TRU 1
|
|
|
@ -1,4 +0,0 @@
|
||||||
2 4 2 0 1
|
|
||||||
110 30 gVar7 0 1
|
|
||||||
111 21 st_add_gVar7 4 1
|
|
||||||
112 22 st_data_gVar7 0 1
|
|
|
@ -1 +0,0 @@
|
||||||
16
|
|
|
@ -1,10 +0,0 @@
|
||||||
3 0 1 TRU 0
|
|
||||||
5 0 0 TRU 1
|
|
||||||
2 1 1 TRU 0
|
|
||||||
6 1 0 TRU 1
|
|
||||||
1 2 0 TRU 0
|
|
||||||
5 2 0 TRU 1
|
|
||||||
0 3 0 TRU 0
|
|
||||||
5 3 0 TRU 1
|
|
||||||
3 4 0 TRU 0
|
|
||||||
7 4 0 LIE 1
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue