fine-tune.c.137t.gml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438
  1. # generated with gcctree2gml
  2. graph [
  3. directed 1
  4. node [ id 72 label "search()
  5. ENTRY" ]
  6. node [ id 73 label "search()
  7. EXIT" ]
  8. node [ id 3 label "<bb 2>: search()
  9. bbD.4175_2(D)->visitedD.4144 = 1;
  10. veD.4179_3 = bbD.4175_2(D)->succD.4149;
  11. if (veD.4179_3 != 0B)
  12. goto <bb 3>;
  13. else
  14. goto <bb 7>;
  15. " ]
  16. node [ id 4 label "<bb 3>: search()
  17. " ]
  18. node [ id 5 label "<bb 7>: search()
  19. count.10D.5607_8 = countD.4173;
  20. bbD.4175_2(D)->dfs_orderD.4145 = count.10D.5607_8;
  21. count.11D.5608_10 = count.10D.5607_8 + -1;
  22. countD.4173 = count.11D.5608_10;
  23. return;
  24. " ]
  25. node [ id 6 label "<bb 4>: search()
  26. eD.4180_4 = veD.4179_9->edgeD.4138;
  27. succ_bbD.4178_5 = eD.4180_4->targetD.4135;
  28. D.5604_6 = succ_bbD.4178_5->visitedD.4144;
  29. if (D.5604_6 == 0)
  30. goto <bb 5>;
  31. else
  32. goto <bb 6>;
  33. " ]
  34. node [ id 7 label "<bb 6>: search()
  35. veD.4179_7 = veD.4179_9->nextD.4139;
  36. if (veD.4179_7 != 0B)
  37. goto <bb 4>;
  38. else
  39. goto <bb 7>;
  40. " ]
  41. node [ id 8 label "<bb 5>: search()
  42. eD.4180_4->typeD.4133 = 1;
  43. searchD.4176 (succ_bbD.4178_5);
  44. " ]
  45. edge [ source 72 target 3 ]
  46. edge [ source 3 target 4 ]
  47. edge [ source 3 target 5 ]
  48. edge [ source 4 target 6 ]
  49. edge [ source 7 target 6 fill "#0000ff" ]
  50. edge [ source 6 target 8 ]
  51. edge [ source 6 target 7 ]
  52. edge [ source 8 target 7 ]
  53. edge [ source 7 target 5 ]
  54. edge [ source 5 target 73 ]
  55. node [ id 74 label "depth_first_search()
  56. ENTRY" ]
  57. node [ id 75 label "depth_first_search()
  58. EXIT" ]
  59. node [ id 11 label "<bb 2>: depth_first_search()
  60. cfg.8D.5601_2 = cfgD.4174;
  61. bbD.4187_3 = cfg.8D.5601_2->bbD.4157;
  62. if (bbD.4187_3 != 0B)
  63. goto <bb 3>;
  64. else
  65. goto <bb 5>;
  66. " ]
  67. node [ id 12 label "<bb 3>: depth_first_search()
  68. " ]
  69. node [ id 13 label "<bb 5>: depth_first_search()
  70. count.9D.5602_6 = cfg.8D.5601_2->bb_numD.4153;
  71. countD.4173 = count.9D.5602_6;
  72. D.5603_8 = cfg.8D.5601_2->entryD.4155;
  73. searchD.4176 (D.5603_8); [tail call]
  74. return;
  75. " ]
  76. node [ id 14 label "<bb 4>: depth_first_search()
  77. bbD.4187_14->visitedD.4144 = 0;
  78. bbD.4187_4 = bbD.4187_14->nextD.4151;
  79. if (bbD.4187_4 != 0B)
  80. goto <bb 4>;
  81. else
  82. goto <bb 5>;
  83. " ]
  84. edge [ source 74 target 11 ]
  85. edge [ source 11 target 12 ]
  86. edge [ source 11 target 13 ]
  87. edge [ source 12 target 14 ]
  88. edge [ source 14 target 14 fill "#0000ff" ]
  89. edge [ source 14 target 13 ]
  90. edge [ source 13 target 75 ]
  91. node [ id 76 label "is_ancestor()
  92. ENTRY" ]
  93. node [ id 77 label "is_ancestor()
  94. EXIT" ]
  95. node [ id 17 label "<bb 2>: is_ancestor()
  96. if (targetD.4192_5(D) == sourceD.4191_7(D))
  97. goto <bb 11>;
  98. else
  99. goto <bb 3>;
  100. " ]
  101. node [ id 18 label "<bb 11>: is_ancestor()
  102. return D.5594_4;
  103. " ]
  104. node [ id 19 label "<bb 3>: is_ancestor()
  105. pretmp.24D.5629_1 = cfgD.4174;
  106. pretmp.26D.5631_19 = pretmp.24D.5629_1->entryD.4155;
  107. goto <bb 5>;
  108. " ]
  109. node [ id 20 label "<bb 5>: is_ancestor()
  110. veD.4196_9 = bbD.4195_21->predD.4147;
  111. if (veD.4196_9 != 0B)
  112. goto <bb 6>;
  113. else
  114. goto <bb 10>;
  115. " ]
  116. node [ id 21 label "<bb 4>: is_ancestor()
  117. if (bbD.4195_2 == sourceD.4191_7(D))
  118. goto <bb 11>;
  119. else
  120. goto <bb 13>;
  121. " ]
  122. node [ id 22 label "<bb 10>: is_ancestor()
  123. if (bbD.4195_2 != pretmp.26D.5631_19)
  124. goto <bb 4>;
  125. else
  126. goto <bb 11>;
  127. " ]
  128. node [ id 23 label "<bb 13>: is_ancestor()
  129. " ]
  130. node [ id 24 label "<bb 6>: is_ancestor()
  131. eD.4197_20 = veD.4196_9->edgeD.4138;
  132. D.5595_23 = eD.4197_20->typeD.4133;
  133. if (D.5595_23 == 1)
  134. goto <bb 8>;
  135. else
  136. goto <bb 9>;
  137. " ]
  138. node [ id 25 label "<bb 8>: is_ancestor()
  139. bbD.4195_12 = eD.4197_18->sourceD.4134;
  140. goto <bb 10>;
  141. " ]
  142. node [ id 26 label "<bb 9>: is_ancestor()
  143. " ]
  144. node [ id 27 label "<bb 7>: is_ancestor()
  145. eD.4197_10 = veD.4196_13->edgeD.4138;
  146. D.5595_11 = eD.4197_10->typeD.4133;
  147. if (D.5595_11 == 1)
  148. goto <bb 8>;
  149. else
  150. goto <bb 14>;
  151. " ]
  152. node [ id 28 label "<bb 12>: is_ancestor()
  153. veD.4196_13 = veD.4196_24->nextD.4139;
  154. if (veD.4196_13 != 0B)
  155. goto <bb 7>;
  156. else
  157. goto <bb 10>;
  158. " ]
  159. node [ id 29 label "<bb 14>: is_ancestor()
  160. goto <bb 12>;
  161. " ]
  162. edge [ source 76 target 17 ]
  163. edge [ source 17 target 18 ]
  164. edge [ source 17 target 19 ]
  165. edge [ source 19 target 20 ]
  166. edge [ source 22 target 21 ]
  167. edge [ source 21 target 18 ]
  168. edge [ source 21 target 23 ]
  169. edge [ source 23 target 20 fill "#0000ff" ]
  170. edge [ source 20 target 24 ]
  171. edge [ source 20 target 22 ]
  172. edge [ source 24 target 25 ]
  173. edge [ source 24 target 26 ]
  174. edge [ source 28 target 27 ]
  175. edge [ source 27 target 25 ]
  176. edge [ source 27 target 29 ]
  177. edge [ source 29 target 28 fill "#0000ff" ]
  178. edge [ source 25 target 22 ]
  179. edge [ source 26 target 28 ]
  180. edge [ source 28 target 22 ]
  181. edge [ source 22 target 18 ]
  182. edge [ source 18 target 77 ]
  183. node [ id 78 label "mark_edge()
  184. ENTRY" ]
  185. node [ id 79 label "mark_edge()
  186. EXIT" ]
  187. node [ id 32 label "<bb 2>: mark_edge()
  188. sourceD.4206_2 = eD.4203_1(D)->sourceD.4134;
  189. targetD.4207_3 = eD.4203_1(D)->targetD.4135;
  190. D.5584_4 = is_ancestorD.4193 (targetD.4207_3, sourceD.4206_2);
  191. if (D.5584_4 != 0)
  192. goto <bb 3>;
  193. else
  194. goto <bb 4>;
  195. " ]
  196. node [ id 33 label "<bb 3>: mark_edge()
  197. eD.4203_1(D)->typeD.4133 = 3;
  198. goto <bb 7>;
  199. " ]
  200. node [ id 34 label "<bb 4>: mark_edge()
  201. D.5588_5 = is_ancestorD.4193 (sourceD.4206_2, targetD.4207_3);
  202. if (D.5588_5 != 0)
  203. goto <bb 5>;
  204. else
  205. goto <bb 6>;
  206. " ]
  207. node [ id 35 label "<bb 7>: mark_edge()
  208. return;
  209. " ]
  210. node [ id 36 label "<bb 5>: mark_edge()
  211. eD.4203_1(D)->typeD.4133 = 2;
  212. goto <bb 7>;
  213. " ]
  214. node [ id 37 label "<bb 6>: mark_edge()
  215. eD.4203_1(D)->typeD.4133 = 4;
  216. " ]
  217. edge [ source 78 target 32 ]
  218. edge [ source 32 target 33 ]
  219. edge [ source 32 target 34 ]
  220. edge [ source 33 target 35 ]
  221. edge [ source 34 target 36 ]
  222. edge [ source 34 target 37 ]
  223. edge [ source 36 target 35 ]
  224. edge [ source 37 target 35 ]
  225. edge [ source 35 target 79 ]
  226. node [ id 80 label "mark_edges()
  227. ENTRY" ]
  228. node [ id 81 label "mark_edges()
  229. EXIT" ]
  230. node [ id 40 label "<bb 2>: mark_edges()
  231. current_function.6D.5580_2 = current_functionD.4113;
  232. cfgD.4211_3 = current_function.6D.5580_2->cfgD.4162;
  233. eD.4212_4 = cfgD.4211_3->edgeD.4159;
  234. if (eD.4212_4 != 0B)
  235. goto <bb 3>;
  236. else
  237. goto <bb 7>;
  238. " ]
  239. node [ id 41 label "<bb 3>: mark_edges()
  240. " ]
  241. node [ id 42 label "<bb 7>: mark_edges()
  242. return;
  243. " ]
  244. node [ id 43 label "<bb 4>: mark_edges()
  245. D.5581_5 = eD.4212_13->typeD.4133;
  246. if (D.5581_5 == 0)
  247. goto <bb 5>;
  248. else
  249. goto <bb 6>;
  250. " ]
  251. node [ id 44 label "<bb 6>: mark_edges()
  252. eD.4212_6 = eD.4212_13->nextD.4136;
  253. if (eD.4212_6 != 0B)
  254. goto <bb 4>;
  255. else
  256. goto <bb 7>;
  257. " ]
  258. node [ id 45 label "<bb 5>: mark_edges()
  259. mark_edgeD.4204 (eD.4212_13);
  260. " ]
  261. edge [ source 80 target 40 ]
  262. edge [ source 40 target 41 ]
  263. edge [ source 40 target 42 ]
  264. edge [ source 41 target 43 ]
  265. edge [ source 44 target 43 fill "#0000ff" ]
  266. edge [ source 43 target 45 ]
  267. edge [ source 43 target 44 ]
  268. edge [ source 45 target 44 ]
  269. edge [ source 44 target 42 ]
  270. edge [ source 42 target 81 ]
  271. node [ id 82 label "calc_max_distance_recursive()
  272. ENTRY" ]
  273. node [ id 83 label "calc_max_distance_recursive()
  274. EXIT" ]
  275. node [ id 48 label "<bb 2>: calc_max_distance_recursive()
  276. prephitmp.35D.5640_6 = bbD.4216_5(D)->max_distanceD.4146;
  277. if (prephitmp.35D.5640_6 == 0)
  278. goto <bb 3>;
  279. else
  280. goto <bb 10>;
  281. " ]
  282. node [ id 49 label "<bb 3>: calc_max_distance_recursive()
  283. veD.4221_7 = bbD.4216_5(D)->predD.4147;
  284. if (veD.4221_7 != 0B)
  285. goto <bb 4>;
  286. else
  287. goto <bb 9>;
  288. " ]
  289. node [ id 50 label "<bb 10>: calc_max_distance_recursive()
  290. return prephitmp.35D.5640_2;
  291. " ]
  292. node [ id 51 label "<bb 4>: calc_max_distance_recursive()
  293. " ]
  294. node [ id 52 label "<bb 9>: calc_max_distance_recursive()
  295. bbD.4216_5(D)->max_distanceD.4146 = prephitmp.35D.5640_23;
  296. " ]
  297. node [ id 53 label "<bb 5>: calc_max_distance_recursive()
  298. eD.4222_8 = veD.4221_27->edgeD.4138;
  299. D.5573_9 = eD.4222_8->typeD.4133;
  300. if (D.5573_9 == 3)
  301. goto <bb 7>;
  302. else
  303. goto <bb 6>;
  304. " ]
  305. node [ id 54 label "<bb 7>: calc_max_distance_recursive()
  306. veD.4221_13 = veD.4221_27->nextD.4139;
  307. if (veD.4221_13 != 0B)
  308. goto <bb 5>;
  309. else
  310. goto <bb 8>;
  311. " ]
  312. node [ id 55 label "<bb 6>: calc_max_distance_recursive()
  313. D.5576_10 = eD.4222_8->sourceD.4134;
  314. valD.4219_11 = calc_max_distance_recursiveD.4217 (D.5576_10);
  315. maxD.4220_12 = MAX_EXPR <valD.4219_11, maxD.4220_24>;
  316. " ]
  317. node [ id 56 label "<bb 8>: calc_max_distance_recursive()
  318. prephitmp.35D.5640_25 = maxD.4220_26 + 1;
  319. " ]
  320. edge [ source 82 target 48 ]
  321. edge [ source 48 target 49 ]
  322. edge [ source 48 target 50 ]
  323. edge [ source 49 target 51 ]
  324. edge [ source 49 target 52 ]
  325. edge [ source 51 target 53 ]
  326. edge [ source 54 target 53 fill "#0000ff" ]
  327. edge [ source 53 target 54 ]
  328. edge [ source 53 target 55 ]
  329. edge [ source 55 target 54 ]
  330. edge [ source 54 target 56 ]
  331. edge [ source 56 target 52 ]
  332. edge [ source 52 target 50 ]
  333. edge [ source 50 target 83 ]
  334. node [ id 84 label "calc_max_distance()
  335. ENTRY" ]
  336. node [ id 85 label "calc_max_distance()
  337. EXIT" ]
  338. node [ id 59 label "<bb 2>: calc_max_distance()
  339. depth_first_searchD.4185 ();
  340. mark_edgesD.4209 ();
  341. cfg.4D.5561_6 = cfgD.4174;
  342. D.5562_7 = cfg.4D.5561_6->exitD.4156;
  343. maxD.4231_8 = calc_max_distance_recursiveD.4217 (D.5562_7);
  344. bbD.4232_10 = cfg.4D.5561_6->bbD.4157;
  345. if (bbD.4232_10 != 0B)
  346. goto <bb 3>;
  347. else
  348. goto <bb 8>;
  349. " ]
  350. node [ id 60 label "<bb 3>: calc_max_distance()
  351. " ]
  352. node [ id 61 label "<bb 8>: calc_max_distance()
  353. D.5562_18 = cfg.4D.5561_6->exitD.4156;
  354. D.5562_18->max_distanceD.4146 = maxD.4231_4;
  355. return;
  356. " ]
  357. node [ id 62 label "<bb 4>: calc_max_distance()
  358. D.5563_11 = bbD.4232_28->max_distanceD.4146;
  359. if (D.5563_11 == 0)
  360. goto <bb 5>;
  361. else
  362. goto <bb 7>;
  363. " ]
  364. node [ id 63 label "<bb 7>: calc_max_distance()
  365. bbD.4232_16 = bbD.4232_28->nextD.4151;
  366. if (bbD.4232_16 != 0B)
  367. goto <bb 4>;
  368. else
  369. goto <bb 8>;
  370. " ]
  371. node [ id 64 label "<bb 5>: calc_max_distance()
  372. valD.4230_12 = calc_max_distance_recursiveD.4217 (bbD.4232_28);
  373. if (valD.4230_12 >= maxD.4231_27)
  374. goto <bb 6>;
  375. else
  376. goto <bb 7>;
  377. " ]
  378. node [ id 65 label "<bb 6>: calc_max_distance()
  379. maxD.4231_13 = valD.4230_12 + 1;
  380. " ]
  381. edge [ source 84 target 59 ]
  382. edge [ source 59 target 60 ]
  383. edge [ source 59 target 61 ]
  384. edge [ source 60 target 62 ]
  385. edge [ source 63 target 62 fill "#0000ff" ]
  386. edge [ source 62 target 64 ]
  387. edge [ source 62 target 63 ]
  388. edge [ source 64 target 65 ]
  389. edge [ source 64 target 63 ]
  390. edge [ source 65 target 63 ]
  391. edge [ source 63 target 61 ]
  392. edge [ source 61 target 85 ]
  393. node [ id 86 label "fine_tune_cfg()
  394. ENTRY" ]
  395. node [ id 87 label "fine_tune_cfg()
  396. EXIT" ]
  397. node [ id 68 label "<bb 2>: fine_tune_cfg()
  398. current_function.1D.5558_1 = first_functionD.4111;
  399. current_functionD.4113 = current_function.1D.5558_1;
  400. if (current_function.1D.5558_1 != 0B)
  401. goto <bb 3>;
  402. else
  403. goto <bb 5>;
  404. " ]
  405. node [ id 69 label "<bb 3>: fine_tune_cfg()
  406. " ]
  407. node [ id 70 label "<bb 5>: fine_tune_cfg()
  408. return;
  409. " ]
  410. node [ id 71 label "<bb 4>: fine_tune_cfg()
  411. cfg.2D.5559_4 = current_function.1D.5558_14->cfgD.4162;
  412. cfgD.4174 = cfg.2D.5559_4;
  413. calc_max_distanceD.4228 ();
  414. current_function.1D.5558_5 = current_functionD.4113;
  415. current_function.1D.5558_6 = current_function.1D.5558_5->nextD.4163;
  416. current_functionD.4113 = current_function.1D.5558_6;
  417. if (current_function.1D.5558_6 != 0B)
  418. goto <bb 4>;
  419. else
  420. goto <bb 5>;
  421. " ]
  422. edge [ source 86 target 68 ]
  423. edge [ source 68 target 69 ]
  424. edge [ source 68 target 70 ]
  425. edge [ source 69 target 71 ]
  426. edge [ source 71 target 71 fill "#0000ff" ]
  427. edge [ source 71 target 70 ]
  428. edge [ source 70 target 87 ]
  429. ]