Advertisement
Guest User

example.ll alias analysis

a guest
Nov 2nd, 2015
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.45 KB | None | 0 0
  1. $ opt-3.8 -basicaa -tbaa -scoped-noalias -aa-eval -analyze -print-memdeps example.bc
  2. Printing analysis 'Basic Alias Analysis (stateless AA impl)' for function 'main_loop':
  3. Pass::print not implemented for pass: 'Basic Alias Analysis (stateless AA impl)'!
  4. Printing analysis 'Basic Alias Analysis (stateless AA impl)' for function 'dummy_function':
  5. Pass::print not implemented for pass: 'Basic Alias Analysis (stateless AA impl)'!
  6. Printing analysis 'Type-Based Alias Analysis':
  7. Pass::print not implemented for pass: 'Type-Based Alias Analysis'!
  8. Printing analysis 'Scoped NoAlias Alias Analysis':
  9. Pass::print not implemented for pass: 'Scoped NoAlias Alias Analysis'!
  10. Printing analysis 'Exhaustive Alias Analysis Precision Evaluator' for function 'main_loop':
  11. Pass::print not implemented for pass: 'Exhaustive Alias Analysis Precision Evaluator'!
  12. Printing analysis 'Print MemDeps of function' for function 'main_loop':
  13. Unknown in block %.lr.ph.prol.preheader
  14. Unknown in block %.lr.ph.prol
  15. %4 = load i8, i8* %.04.prol, align 1, !tbaa !1
  16.  
  17. Unknown in block %.lr.ph.prol.preheader
  18. Unknown in block %.lr.ph.prol
  19. %6 = load i8, i8* %3, align 1, !tbaa !1
  20.  
  21. Unknown in block %.lr.ph.prol.preheader
  22. Unknown in block %.lr.ph.prol
  23. %8 = load i8, i8* %5, align 1, !tbaa !1
  24.  
  25. Unknown in block %.lr.ph.prol.preheader
  26. Unknown in block %.lr.ph.prol
  27. store i8 %11, i8* %.013.prol, align 1, !tbaa !1
  28.  
  29. Unknown in block %.lr.ph.prol.preheader
  30. Unknown in block %.lr.ph.prol
  31. store i8 %14, i8* %18, align 1, !tbaa !1
  32.  
  33. Unknown in block %.lr.ph.prol.preheader
  34. Unknown in block %.lr.ph.prol
  35. store i8 %17, i8* %19, align 1, !tbaa !1
  36.  
  37. Unknown in block %.lr.ph.preheader11
  38. Unknown in block %.lr.ph
  39. %24 = load i8, i8* %.04, align 1, !tbaa !1
  40.  
  41. Unknown in block %.lr.ph.preheader11
  42. Unknown in block %.lr.ph
  43. %26 = load i8, i8* %23, align 1, !tbaa !1
  44.  
  45. Unknown in block %.lr.ph.preheader11
  46. Unknown in block %.lr.ph
  47. %28 = load i8, i8* %25, align 1, !tbaa !1
  48.  
  49. Def from: %28 = load i8, i8* %25, align 1, !tbaa !1
  50. store i8 %31, i8* %.013, align 1, !tbaa !1
  51.  
  52. Def from: %28 = load i8, i8* %25, align 1, !tbaa !1
  53. store i8 %34, i8* %38, align 1, !tbaa !1
  54.  
  55. Def from: %28 = load i8, i8* %25, align 1, !tbaa !1
  56. store i8 %37, i8* %39, align 1, !tbaa !1
  57.  
  58. Clobber from: store i8 %37, i8* %39, align 1, !tbaa !1
  59. %42 = load i8, i8* %27, align 1, !tbaa !1
  60.  
  61. Clobber from: store i8 %37, i8* %39, align 1, !tbaa !1
  62. %44 = load i8, i8* %41, align 1, !tbaa !1
  63.  
  64. Clobber from: store i8 %37, i8* %39, align 1, !tbaa !1
  65. %46 = load i8, i8* %43, align 1, !tbaa !1
  66.  
  67. Def from: %46 = load i8, i8* %43, align 1, !tbaa !1
  68. store i8 %49, i8* %40, align 1, !tbaa !1
  69.  
  70. Def from: %46 = load i8, i8* %43, align 1, !tbaa !1
  71. store i8 %52, i8* %56, align 1, !tbaa !1
  72.  
  73. Def from: %46 = load i8, i8* %43, align 1, !tbaa !1
  74. store i8 %55, i8* %57, align 1, !tbaa !1
  75.  
  76. Clobber from: store i8 %55, i8* %57, align 1, !tbaa !1
  77. %60 = load i8, i8* %45, align 1, !tbaa !1
  78.  
  79. Clobber from: store i8 %55, i8* %57, align 1, !tbaa !1
  80. %62 = load i8, i8* %59, align 1, !tbaa !1
  81.  
  82. Clobber from: store i8 %55, i8* %57, align 1, !tbaa !1
  83. %64 = load i8, i8* %61, align 1, !tbaa !1
  84.  
  85. Def from: %64 = load i8, i8* %61, align 1, !tbaa !1
  86. store i8 %67, i8* %58, align 1, !tbaa !1
  87.  
  88. Def from: %64 = load i8, i8* %61, align 1, !tbaa !1
  89. store i8 %70, i8* %74, align 1, !tbaa !1
  90.  
  91. Def from: %64 = load i8, i8* %61, align 1, !tbaa !1
  92. store i8 %73, i8* %75, align 1, !tbaa !1
  93.  
  94. Clobber from: store i8 %73, i8* %75, align 1, !tbaa !1
  95. %78 = load i8, i8* %63, align 1, !tbaa !1
  96.  
  97. Clobber from: store i8 %73, i8* %75, align 1, !tbaa !1
  98. %80 = load i8, i8* %77, align 1, !tbaa !1
  99.  
  100. Clobber from: store i8 %73, i8* %75, align 1, !tbaa !1
  101. %82 = load i8, i8* %79, align 1, !tbaa !1
  102.  
  103. Def from: %82 = load i8, i8* %79, align 1, !tbaa !1
  104. store i8 %85, i8* %76, align 1, !tbaa !1
  105.  
  106. Def from: %82 = load i8, i8* %79, align 1, !tbaa !1
  107. store i8 %88, i8* %92, align 1, !tbaa !1
  108.  
  109. Def from: %82 = load i8, i8* %79, align 1, !tbaa !1
  110. store i8 %91, i8* %93, align 1, !tbaa !1
  111.  
  112. Clobber from: store i8 %91, i8* %93, align 1, !tbaa !1
  113. %96 = load i8, i8* %81, align 1, !tbaa !1
  114.  
  115. Clobber from: store i8 %91, i8* %93, align 1, !tbaa !1
  116. %98 = load i8, i8* %95, align 1, !tbaa !1
  117.  
  118. Clobber from: store i8 %91, i8* %93, align 1, !tbaa !1
  119. %100 = load i8, i8* %97, align 1, !tbaa !1
  120.  
  121. Def from: %100 = load i8, i8* %97, align 1, !tbaa !1
  122. store i8 %103, i8* %94, align 1, !tbaa !1
  123.  
  124. Def from: %100 = load i8, i8* %97, align 1, !tbaa !1
  125. store i8 %106, i8* %110, align 1, !tbaa !1
  126.  
  127. Def from: %100 = load i8, i8* %97, align 1, !tbaa !1
  128. store i8 %109, i8* %111, align 1, !tbaa !1
  129.  
  130. Clobber from: store i8 %109, i8* %111, align 1, !tbaa !1
  131. %114 = load i8, i8* %99, align 1, !tbaa !1
  132.  
  133. Clobber from: store i8 %109, i8* %111, align 1, !tbaa !1
  134. %116 = load i8, i8* %113, align 1, !tbaa !1
  135.  
  136. Clobber from: store i8 %109, i8* %111, align 1, !tbaa !1
  137. %118 = load i8, i8* %115, align 1, !tbaa !1
  138.  
  139. Def from: %118 = load i8, i8* %115, align 1, !tbaa !1
  140. store i8 %121, i8* %112, align 1, !tbaa !1
  141.  
  142. Def from: %118 = load i8, i8* %115, align 1, !tbaa !1
  143. store i8 %124, i8* %128, align 1, !tbaa !1
  144.  
  145. Def from: %118 = load i8, i8* %115, align 1, !tbaa !1
  146. store i8 %127, i8* %129, align 1, !tbaa !1
  147.  
  148. Clobber from: store i8 %127, i8* %129, align 1, !tbaa !1
  149. %132 = load i8, i8* %117, align 1, !tbaa !1
  150.  
  151. Clobber from: store i8 %127, i8* %129, align 1, !tbaa !1
  152. %134 = load i8, i8* %131, align 1, !tbaa !1
  153.  
  154. Clobber from: store i8 %127, i8* %129, align 1, !tbaa !1
  155. %136 = load i8, i8* %133, align 1, !tbaa !1
  156.  
  157. Def from: %136 = load i8, i8* %133, align 1, !tbaa !1
  158. store i8 %139, i8* %130, align 1, !tbaa !1
  159.  
  160. Def from: %136 = load i8, i8* %133, align 1, !tbaa !1
  161. store i8 %142, i8* %146, align 1, !tbaa !1
  162.  
  163. Def from: %136 = load i8, i8* %133, align 1, !tbaa !1
  164. store i8 %145, i8* %147, align 1, !tbaa !1
  165.  
  166. Clobber from: store i8 %145, i8* %147, align 1, !tbaa !1
  167. %150 = load i8, i8* %135, align 1, !tbaa !1
  168.  
  169. Clobber from: store i8 %145, i8* %147, align 1, !tbaa !1
  170. %152 = load i8, i8* %149, align 1, !tbaa !1
  171.  
  172. Clobber from: store i8 %145, i8* %147, align 1, !tbaa !1
  173. %154 = load i8, i8* %151, align 1, !tbaa !1
  174.  
  175. Def from: %154 = load i8, i8* %151, align 1, !tbaa !1
  176. store i8 %157, i8* %148, align 1, !tbaa !1
  177.  
  178. Def from: %154 = load i8, i8* %151, align 1, !tbaa !1
  179. store i8 %160, i8* %164, align 1, !tbaa !1
  180.  
  181. Def from: %154 = load i8, i8* %151, align 1, !tbaa !1
  182. store i8 %163, i8* %165, align 1, !tbaa !1
  183.  
  184. Printing analysis 'Exhaustive Alias Analysis Precision Evaluator' for function 'dummy_function':
  185. Pass::print not implemented for pass: 'Exhaustive Alias Analysis Precision Evaluator'!
  186. Printing analysis 'Print MemDeps of function' for function 'dummy_function':
  187. NonFuncLocal
  188. %puts = tail call i32 @puts(i8* getelementptr inbounds ([56 x i8], [56 x i8]* @str, i32 0, i32 0))
  189.  
  190. Unknown in block %.lr.ph.prol.i.preheader
  191. Unknown in block %.lr.ph.prol.i
  192. %6 = load i8, i8* %.04.prol.i, align 1, !tbaa !1, !alias.scope !4, !noalias !7
  193.  
  194. Unknown in block %.lr.ph.prol.i.preheader
  195. Unknown in block %.lr.ph.prol.i
  196. %8 = load i8, i8* %5, align 1, !tbaa !1, !alias.scope !4, !noalias !7
  197.  
  198. Unknown in block %.lr.ph.prol.i.preheader
  199. Unknown in block %.lr.ph.prol.i
  200. %10 = load i8, i8* %7, align 1, !tbaa !1, !alias.scope !4, !noalias !7
  201.  
  202. Unknown in block %.lr.ph.prol.i.preheader
  203. Unknown in block %.lr.ph.prol.i
  204. store i8 %13, i8* %.013.prol.i, align 1, !tbaa !1, !alias.scope !7, !noalias !4
  205.  
  206. Unknown in block %.lr.ph.prol.i.preheader
  207. Unknown in block %.lr.ph.prol.i
  208. store i8 %16, i8* %20, align 1, !tbaa !1, !alias.scope !7, !noalias !4
  209.  
  210. Unknown in block %.lr.ph.prol.i.preheader
  211. Unknown in block %.lr.ph.prol.i
  212. store i8 %19, i8* %21, align 1, !tbaa !1, !alias.scope !7, !noalias !4
  213.  
  214. Unknown in block %.lr.ph.i.preheader
  215. Unknown in block %.lr.ph.i
  216. %25 = load i8, i8* %.04.i, align 1, !tbaa !1, !alias.scope !4, !noalias !7
  217.  
  218. Unknown in block %.lr.ph.i.preheader
  219. Unknown in block %.lr.ph.i
  220. %27 = load i8, i8* %24, align 1, !tbaa !1, !alias.scope !4, !noalias !7
  221.  
  222. Unknown in block %.lr.ph.i.preheader
  223. Unknown in block %.lr.ph.i
  224. %29 = load i8, i8* %26, align 1, !tbaa !1, !alias.scope !4, !noalias !7
  225.  
  226. Unknown in block %.lr.ph.i.preheader
  227. Unknown in block %.lr.ph.i
  228. store i8 %32, i8* %.013.i, align 1, !tbaa !1, !alias.scope !7, !noalias !4
  229.  
  230. Unknown in block %.lr.ph.i.preheader
  231. Unknown in block %.lr.ph.i
  232. store i8 %35, i8* %39, align 1, !tbaa !1, !alias.scope !7, !noalias !4
  233.  
  234. Unknown in block %.lr.ph.i.preheader
  235. Unknown in block %.lr.ph.i
  236. store i8 %38, i8* %40, align 1, !tbaa !1, !alias.scope !7, !noalias !4
  237.  
  238. Unknown in block %.lr.ph.i.preheader
  239. Unknown in block %.lr.ph.i
  240. %43 = load i8, i8* %28, align 1, !tbaa !1, !alias.scope !4, !noalias !7
  241.  
  242. Unknown in block %.lr.ph.i.preheader
  243. Unknown in block %.lr.ph.i
  244. %45 = load i8, i8* %42, align 1, !tbaa !1, !alias.scope !4, !noalias !7
  245.  
  246. Unknown in block %.lr.ph.i.preheader
  247. Unknown in block %.lr.ph.i
  248. %47 = load i8, i8* %44, align 1, !tbaa !1, !alias.scope !4, !noalias !7
  249.  
  250. Unknown in block %.lr.ph.i.preheader
  251. Unknown in block %.lr.ph.i
  252. store i8 %50, i8* %41, align 1, !tbaa !1, !alias.scope !7, !noalias !4
  253.  
  254. Unknown in block %.lr.ph.i.preheader
  255. Unknown in block %.lr.ph.i
  256. store i8 %53, i8* %57, align 1, !tbaa !1, !alias.scope !7, !noalias !4
  257.  
  258. Unknown in block %.lr.ph.i.preheader
  259. Unknown in block %.lr.ph.i
  260. store i8 %56, i8* %58, align 1, !tbaa !1, !alias.scope !7, !noalias !4
  261.  
  262. Unknown in block %.lr.ph.i.preheader
  263. Unknown in block %.lr.ph.i
  264. %61 = load i8, i8* %46, align 1, !tbaa !1, !alias.scope !4, !noalias !7
  265.  
  266. Unknown in block %.lr.ph.i.preheader
  267. Unknown in block %.lr.ph.i
  268. %63 = load i8, i8* %60, align 1, !tbaa !1, !alias.scope !4, !noalias !7
  269.  
  270. Unknown in block %.lr.ph.i.preheader
  271. Unknown in block %.lr.ph.i
  272. %65 = load i8, i8* %62, align 1, !tbaa !1, !alias.scope !4, !noalias !7
  273.  
  274. Unknown in block %.lr.ph.i.preheader
  275. Unknown in block %.lr.ph.i
  276. store i8 %68, i8* %59, align 1, !tbaa !1, !alias.scope !7, !noalias !4
  277.  
  278. Unknown in block %.lr.ph.i.preheader
  279. Unknown in block %.lr.ph.i
  280. store i8 %71, i8* %75, align 1, !tbaa !1, !alias.scope !7, !noalias !4
  281.  
  282. Unknown in block %.lr.ph.i.preheader
  283. Unknown in block %.lr.ph.i
  284. store i8 %74, i8* %76, align 1, !tbaa !1, !alias.scope !7, !noalias !4
  285.  
  286. Unknown in block %.lr.ph.i.preheader
  287. Unknown in block %.lr.ph.i
  288. %79 = load i8, i8* %64, align 1, !tbaa !1, !alias.scope !4, !noalias !7
  289.  
  290. Unknown in block %.lr.ph.i.preheader
  291. Unknown in block %.lr.ph.i
  292. %81 = load i8, i8* %78, align 1, !tbaa !1, !alias.scope !4, !noalias !7
  293.  
  294. Unknown in block %.lr.ph.i.preheader
  295. Unknown in block %.lr.ph.i
  296. %83 = load i8, i8* %80, align 1, !tbaa !1, !alias.scope !4, !noalias !7
  297.  
  298. Unknown in block %.lr.ph.i.preheader
  299. Unknown in block %.lr.ph.i
  300. store i8 %86, i8* %77, align 1, !tbaa !1, !alias.scope !7, !noalias !4
  301.  
  302. Unknown in block %.lr.ph.i.preheader
  303. Unknown in block %.lr.ph.i
  304. store i8 %89, i8* %93, align 1, !tbaa !1, !alias.scope !7, !noalias !4
  305.  
  306. Unknown in block %.lr.ph.i.preheader
  307. Unknown in block %.lr.ph.i
  308. store i8 %92, i8* %94, align 1, !tbaa !1, !alias.scope !7, !noalias !4
  309.  
  310. Unknown in block %.lr.ph.i.preheader
  311. Unknown in block %.lr.ph.i
  312. %97 = load i8, i8* %82, align 1, !tbaa !1, !alias.scope !4, !noalias !7
  313.  
  314. Unknown in block %.lr.ph.i.preheader
  315. Unknown in block %.lr.ph.i
  316. %99 = load i8, i8* %96, align 1, !tbaa !1, !alias.scope !4, !noalias !7
  317.  
  318. Unknown in block %.lr.ph.i.preheader
  319. Unknown in block %.lr.ph.i
  320. %101 = load i8, i8* %98, align 1, !tbaa !1, !alias.scope !4, !noalias !7
  321.  
  322. Unknown
  323. store i8 %104, i8* %95, align 1, !tbaa !1, !alias.scope !7, !noalias !4
  324.  
  325. Unknown
  326. store i8 %107, i8* %111, align 1, !tbaa !1, !alias.scope !7, !noalias !4
  327.  
  328. Unknown
  329. store i8 %110, i8* %112, align 1, !tbaa !1, !alias.scope !7, !noalias !4
  330.  
  331. Unknown
  332. %115 = load i8, i8* %100, align 1, !tbaa !1, !alias.scope !4, !noalias !7
  333.  
  334. Unknown
  335. %117 = load i8, i8* %114, align 1, !tbaa !1, !alias.scope !4, !noalias !7
  336.  
  337. Unknown
  338. %119 = load i8, i8* %116, align 1, !tbaa !1, !alias.scope !4, !noalias !7
  339.  
  340. Unknown
  341. store i8 %122, i8* %113, align 1, !tbaa !1, !alias.scope !7, !noalias !4
  342.  
  343. Unknown
  344. store i8 %125, i8* %129, align 1, !tbaa !1, !alias.scope !7, !noalias !4
  345.  
  346. Unknown
  347. store i8 %128, i8* %130, align 1, !tbaa !1, !alias.scope !7, !noalias !4
  348.  
  349. Unknown
  350. %133 = load i8, i8* %118, align 1, !tbaa !1, !alias.scope !4, !noalias !7
  351.  
  352. Unknown
  353. %135 = load i8, i8* %132, align 1, !tbaa !1, !alias.scope !4, !noalias !7
  354.  
  355. Unknown
  356. %137 = load i8, i8* %134, align 1, !tbaa !1, !alias.scope !4, !noalias !7
  357.  
  358. Unknown
  359. store i8 %140, i8* %131, align 1, !tbaa !1, !alias.scope !7, !noalias !4
  360.  
  361. Unknown
  362. store i8 %143, i8* %147, align 1, !tbaa !1, !alias.scope !7, !noalias !4
  363.  
  364. Unknown
  365. store i8 %146, i8* %148, align 1, !tbaa !1, !alias.scope !7, !noalias !4
  366.  
  367. Unknown
  368. %151 = load i8, i8* %136, align 1, !tbaa !1, !alias.scope !4, !noalias !7
  369.  
  370. Unknown
  371. %153 = load i8, i8* %150, align 1, !tbaa !1, !alias.scope !4, !noalias !7
  372.  
  373. Unknown
  374. %155 = load i8, i8* %152, align 1, !tbaa !1, !alias.scope !4, !noalias !7
  375.  
  376. Unknown
  377. store i8 %158, i8* %149, align 1, !tbaa !1, !alias.scope !7, !noalias !4
  378.  
  379. Unknown
  380. store i8 %161, i8* %165, align 1, !tbaa !1, !alias.scope !7, !noalias !4
  381.  
  382. Unknown
  383. store i8 %164, i8* %166, align 1, !tbaa !1, !alias.scope !7, !noalias !4
  384.  
  385. ===== Alias Analysis Evaluator Report =====
  386. 4096 Total Alias Queries Performed
  387. 1253 no alias responses (30.5%)
  388. 2837 may alias responses (69.2%)
  389. 6 partial alias responses (0.1%)
  390. 0 must alias responses (0.0%)
  391. Alias Analysis Evaluator Pointer Alias Summary: 30%/69%/0%/0%
  392. 65 Total ModRef Queries Performed
  393. 0 no mod/ref responses (0.0%)
  394. 0 mod responses (0.0%)
  395. 1 ref responses (1.5%)
  396. 64 mod & ref responses (98.4%)
  397. Alias Analysis Evaluator Mod/Ref Summary: 0%/0%/1%/98%
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement