Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $ opt-3.8 -basicaa -tbaa -scoped-noalias -aa-eval -analyze -print-memdeps example.bc
- Printing analysis 'Basic Alias Analysis (stateless AA impl)' for function 'main_loop':
- Pass::print not implemented for pass: 'Basic Alias Analysis (stateless AA impl)'!
- Printing analysis 'Basic Alias Analysis (stateless AA impl)' for function 'dummy_function':
- Pass::print not implemented for pass: 'Basic Alias Analysis (stateless AA impl)'!
- Printing analysis 'Type-Based Alias Analysis':
- Pass::print not implemented for pass: 'Type-Based Alias Analysis'!
- Printing analysis 'Scoped NoAlias Alias Analysis':
- Pass::print not implemented for pass: 'Scoped NoAlias Alias Analysis'!
- Printing analysis 'Exhaustive Alias Analysis Precision Evaluator' for function 'main_loop':
- Pass::print not implemented for pass: 'Exhaustive Alias Analysis Precision Evaluator'!
- Printing analysis 'Print MemDeps of function' for function 'main_loop':
- Unknown in block %.lr.ph.prol.preheader
- Unknown in block %.lr.ph.prol
- %4 = load i8, i8* %.04.prol, align 1, !tbaa !1
- Unknown in block %.lr.ph.prol.preheader
- Unknown in block %.lr.ph.prol
- %6 = load i8, i8* %3, align 1, !tbaa !1
- Unknown in block %.lr.ph.prol.preheader
- Unknown in block %.lr.ph.prol
- %8 = load i8, i8* %5, align 1, !tbaa !1
- Unknown in block %.lr.ph.prol.preheader
- Unknown in block %.lr.ph.prol
- store i8 %11, i8* %.013.prol, align 1, !tbaa !1
- Unknown in block %.lr.ph.prol.preheader
- Unknown in block %.lr.ph.prol
- store i8 %14, i8* %18, align 1, !tbaa !1
- Unknown in block %.lr.ph.prol.preheader
- Unknown in block %.lr.ph.prol
- store i8 %17, i8* %19, align 1, !tbaa !1
- Unknown in block %.lr.ph.preheader11
- Unknown in block %.lr.ph
- %24 = load i8, i8* %.04, align 1, !tbaa !1
- Unknown in block %.lr.ph.preheader11
- Unknown in block %.lr.ph
- %26 = load i8, i8* %23, align 1, !tbaa !1
- Unknown in block %.lr.ph.preheader11
- Unknown in block %.lr.ph
- %28 = load i8, i8* %25, align 1, !tbaa !1
- Def from: %28 = load i8, i8* %25, align 1, !tbaa !1
- store i8 %31, i8* %.013, align 1, !tbaa !1
- Def from: %28 = load i8, i8* %25, align 1, !tbaa !1
- store i8 %34, i8* %38, align 1, !tbaa !1
- Def from: %28 = load i8, i8* %25, align 1, !tbaa !1
- store i8 %37, i8* %39, align 1, !tbaa !1
- Clobber from: store i8 %37, i8* %39, align 1, !tbaa !1
- %42 = load i8, i8* %27, align 1, !tbaa !1
- Clobber from: store i8 %37, i8* %39, align 1, !tbaa !1
- %44 = load i8, i8* %41, align 1, !tbaa !1
- Clobber from: store i8 %37, i8* %39, align 1, !tbaa !1
- %46 = load i8, i8* %43, align 1, !tbaa !1
- Def from: %46 = load i8, i8* %43, align 1, !tbaa !1
- store i8 %49, i8* %40, align 1, !tbaa !1
- Def from: %46 = load i8, i8* %43, align 1, !tbaa !1
- store i8 %52, i8* %56, align 1, !tbaa !1
- Def from: %46 = load i8, i8* %43, align 1, !tbaa !1
- store i8 %55, i8* %57, align 1, !tbaa !1
- Clobber from: store i8 %55, i8* %57, align 1, !tbaa !1
- %60 = load i8, i8* %45, align 1, !tbaa !1
- Clobber from: store i8 %55, i8* %57, align 1, !tbaa !1
- %62 = load i8, i8* %59, align 1, !tbaa !1
- Clobber from: store i8 %55, i8* %57, align 1, !tbaa !1
- %64 = load i8, i8* %61, align 1, !tbaa !1
- Def from: %64 = load i8, i8* %61, align 1, !tbaa !1
- store i8 %67, i8* %58, align 1, !tbaa !1
- Def from: %64 = load i8, i8* %61, align 1, !tbaa !1
- store i8 %70, i8* %74, align 1, !tbaa !1
- Def from: %64 = load i8, i8* %61, align 1, !tbaa !1
- store i8 %73, i8* %75, align 1, !tbaa !1
- Clobber from: store i8 %73, i8* %75, align 1, !tbaa !1
- %78 = load i8, i8* %63, align 1, !tbaa !1
- Clobber from: store i8 %73, i8* %75, align 1, !tbaa !1
- %80 = load i8, i8* %77, align 1, !tbaa !1
- Clobber from: store i8 %73, i8* %75, align 1, !tbaa !1
- %82 = load i8, i8* %79, align 1, !tbaa !1
- Def from: %82 = load i8, i8* %79, align 1, !tbaa !1
- store i8 %85, i8* %76, align 1, !tbaa !1
- Def from: %82 = load i8, i8* %79, align 1, !tbaa !1
- store i8 %88, i8* %92, align 1, !tbaa !1
- Def from: %82 = load i8, i8* %79, align 1, !tbaa !1
- store i8 %91, i8* %93, align 1, !tbaa !1
- Clobber from: store i8 %91, i8* %93, align 1, !tbaa !1
- %96 = load i8, i8* %81, align 1, !tbaa !1
- Clobber from: store i8 %91, i8* %93, align 1, !tbaa !1
- %98 = load i8, i8* %95, align 1, !tbaa !1
- Clobber from: store i8 %91, i8* %93, align 1, !tbaa !1
- %100 = load i8, i8* %97, align 1, !tbaa !1
- Def from: %100 = load i8, i8* %97, align 1, !tbaa !1
- store i8 %103, i8* %94, align 1, !tbaa !1
- Def from: %100 = load i8, i8* %97, align 1, !tbaa !1
- store i8 %106, i8* %110, align 1, !tbaa !1
- Def from: %100 = load i8, i8* %97, align 1, !tbaa !1
- store i8 %109, i8* %111, align 1, !tbaa !1
- Clobber from: store i8 %109, i8* %111, align 1, !tbaa !1
- %114 = load i8, i8* %99, align 1, !tbaa !1
- Clobber from: store i8 %109, i8* %111, align 1, !tbaa !1
- %116 = load i8, i8* %113, align 1, !tbaa !1
- Clobber from: store i8 %109, i8* %111, align 1, !tbaa !1
- %118 = load i8, i8* %115, align 1, !tbaa !1
- Def from: %118 = load i8, i8* %115, align 1, !tbaa !1
- store i8 %121, i8* %112, align 1, !tbaa !1
- Def from: %118 = load i8, i8* %115, align 1, !tbaa !1
- store i8 %124, i8* %128, align 1, !tbaa !1
- Def from: %118 = load i8, i8* %115, align 1, !tbaa !1
- store i8 %127, i8* %129, align 1, !tbaa !1
- Clobber from: store i8 %127, i8* %129, align 1, !tbaa !1
- %132 = load i8, i8* %117, align 1, !tbaa !1
- Clobber from: store i8 %127, i8* %129, align 1, !tbaa !1
- %134 = load i8, i8* %131, align 1, !tbaa !1
- Clobber from: store i8 %127, i8* %129, align 1, !tbaa !1
- %136 = load i8, i8* %133, align 1, !tbaa !1
- Def from: %136 = load i8, i8* %133, align 1, !tbaa !1
- store i8 %139, i8* %130, align 1, !tbaa !1
- Def from: %136 = load i8, i8* %133, align 1, !tbaa !1
- store i8 %142, i8* %146, align 1, !tbaa !1
- Def from: %136 = load i8, i8* %133, align 1, !tbaa !1
- store i8 %145, i8* %147, align 1, !tbaa !1
- Clobber from: store i8 %145, i8* %147, align 1, !tbaa !1
- %150 = load i8, i8* %135, align 1, !tbaa !1
- Clobber from: store i8 %145, i8* %147, align 1, !tbaa !1
- %152 = load i8, i8* %149, align 1, !tbaa !1
- Clobber from: store i8 %145, i8* %147, align 1, !tbaa !1
- %154 = load i8, i8* %151, align 1, !tbaa !1
- Def from: %154 = load i8, i8* %151, align 1, !tbaa !1
- store i8 %157, i8* %148, align 1, !tbaa !1
- Def from: %154 = load i8, i8* %151, align 1, !tbaa !1
- store i8 %160, i8* %164, align 1, !tbaa !1
- Def from: %154 = load i8, i8* %151, align 1, !tbaa !1
- store i8 %163, i8* %165, align 1, !tbaa !1
- Printing analysis 'Exhaustive Alias Analysis Precision Evaluator' for function 'dummy_function':
- Pass::print not implemented for pass: 'Exhaustive Alias Analysis Precision Evaluator'!
- Printing analysis 'Print MemDeps of function' for function 'dummy_function':
- NonFuncLocal
- %puts = tail call i32 @puts(i8* getelementptr inbounds ([56 x i8], [56 x i8]* @str, i32 0, i32 0))
- Unknown in block %.lr.ph.prol.i.preheader
- Unknown in block %.lr.ph.prol.i
- %6 = load i8, i8* %.04.prol.i, align 1, !tbaa !1, !alias.scope !4, !noalias !7
- Unknown in block %.lr.ph.prol.i.preheader
- Unknown in block %.lr.ph.prol.i
- %8 = load i8, i8* %5, align 1, !tbaa !1, !alias.scope !4, !noalias !7
- Unknown in block %.lr.ph.prol.i.preheader
- Unknown in block %.lr.ph.prol.i
- %10 = load i8, i8* %7, align 1, !tbaa !1, !alias.scope !4, !noalias !7
- Unknown in block %.lr.ph.prol.i.preheader
- Unknown in block %.lr.ph.prol.i
- store i8 %13, i8* %.013.prol.i, align 1, !tbaa !1, !alias.scope !7, !noalias !4
- Unknown in block %.lr.ph.prol.i.preheader
- Unknown in block %.lr.ph.prol.i
- store i8 %16, i8* %20, align 1, !tbaa !1, !alias.scope !7, !noalias !4
- Unknown in block %.lr.ph.prol.i.preheader
- Unknown in block %.lr.ph.prol.i
- store i8 %19, i8* %21, align 1, !tbaa !1, !alias.scope !7, !noalias !4
- Unknown in block %.lr.ph.i.preheader
- Unknown in block %.lr.ph.i
- %25 = load i8, i8* %.04.i, align 1, !tbaa !1, !alias.scope !4, !noalias !7
- Unknown in block %.lr.ph.i.preheader
- Unknown in block %.lr.ph.i
- %27 = load i8, i8* %24, align 1, !tbaa !1, !alias.scope !4, !noalias !7
- Unknown in block %.lr.ph.i.preheader
- Unknown in block %.lr.ph.i
- %29 = load i8, i8* %26, align 1, !tbaa !1, !alias.scope !4, !noalias !7
- Unknown in block %.lr.ph.i.preheader
- Unknown in block %.lr.ph.i
- store i8 %32, i8* %.013.i, align 1, !tbaa !1, !alias.scope !7, !noalias !4
- Unknown in block %.lr.ph.i.preheader
- Unknown in block %.lr.ph.i
- store i8 %35, i8* %39, align 1, !tbaa !1, !alias.scope !7, !noalias !4
- Unknown in block %.lr.ph.i.preheader
- Unknown in block %.lr.ph.i
- store i8 %38, i8* %40, align 1, !tbaa !1, !alias.scope !7, !noalias !4
- Unknown in block %.lr.ph.i.preheader
- Unknown in block %.lr.ph.i
- %43 = load i8, i8* %28, align 1, !tbaa !1, !alias.scope !4, !noalias !7
- Unknown in block %.lr.ph.i.preheader
- Unknown in block %.lr.ph.i
- %45 = load i8, i8* %42, align 1, !tbaa !1, !alias.scope !4, !noalias !7
- Unknown in block %.lr.ph.i.preheader
- Unknown in block %.lr.ph.i
- %47 = load i8, i8* %44, align 1, !tbaa !1, !alias.scope !4, !noalias !7
- Unknown in block %.lr.ph.i.preheader
- Unknown in block %.lr.ph.i
- store i8 %50, i8* %41, align 1, !tbaa !1, !alias.scope !7, !noalias !4
- Unknown in block %.lr.ph.i.preheader
- Unknown in block %.lr.ph.i
- store i8 %53, i8* %57, align 1, !tbaa !1, !alias.scope !7, !noalias !4
- Unknown in block %.lr.ph.i.preheader
- Unknown in block %.lr.ph.i
- store i8 %56, i8* %58, align 1, !tbaa !1, !alias.scope !7, !noalias !4
- Unknown in block %.lr.ph.i.preheader
- Unknown in block %.lr.ph.i
- %61 = load i8, i8* %46, align 1, !tbaa !1, !alias.scope !4, !noalias !7
- Unknown in block %.lr.ph.i.preheader
- Unknown in block %.lr.ph.i
- %63 = load i8, i8* %60, align 1, !tbaa !1, !alias.scope !4, !noalias !7
- Unknown in block %.lr.ph.i.preheader
- Unknown in block %.lr.ph.i
- %65 = load i8, i8* %62, align 1, !tbaa !1, !alias.scope !4, !noalias !7
- Unknown in block %.lr.ph.i.preheader
- Unknown in block %.lr.ph.i
- store i8 %68, i8* %59, align 1, !tbaa !1, !alias.scope !7, !noalias !4
- Unknown in block %.lr.ph.i.preheader
- Unknown in block %.lr.ph.i
- store i8 %71, i8* %75, align 1, !tbaa !1, !alias.scope !7, !noalias !4
- Unknown in block %.lr.ph.i.preheader
- Unknown in block %.lr.ph.i
- store i8 %74, i8* %76, align 1, !tbaa !1, !alias.scope !7, !noalias !4
- Unknown in block %.lr.ph.i.preheader
- Unknown in block %.lr.ph.i
- %79 = load i8, i8* %64, align 1, !tbaa !1, !alias.scope !4, !noalias !7
- Unknown in block %.lr.ph.i.preheader
- Unknown in block %.lr.ph.i
- %81 = load i8, i8* %78, align 1, !tbaa !1, !alias.scope !4, !noalias !7
- Unknown in block %.lr.ph.i.preheader
- Unknown in block %.lr.ph.i
- %83 = load i8, i8* %80, align 1, !tbaa !1, !alias.scope !4, !noalias !7
- Unknown in block %.lr.ph.i.preheader
- Unknown in block %.lr.ph.i
- store i8 %86, i8* %77, align 1, !tbaa !1, !alias.scope !7, !noalias !4
- Unknown in block %.lr.ph.i.preheader
- Unknown in block %.lr.ph.i
- store i8 %89, i8* %93, align 1, !tbaa !1, !alias.scope !7, !noalias !4
- Unknown in block %.lr.ph.i.preheader
- Unknown in block %.lr.ph.i
- store i8 %92, i8* %94, align 1, !tbaa !1, !alias.scope !7, !noalias !4
- Unknown in block %.lr.ph.i.preheader
- Unknown in block %.lr.ph.i
- %97 = load i8, i8* %82, align 1, !tbaa !1, !alias.scope !4, !noalias !7
- Unknown in block %.lr.ph.i.preheader
- Unknown in block %.lr.ph.i
- %99 = load i8, i8* %96, align 1, !tbaa !1, !alias.scope !4, !noalias !7
- Unknown in block %.lr.ph.i.preheader
- Unknown in block %.lr.ph.i
- %101 = load i8, i8* %98, align 1, !tbaa !1, !alias.scope !4, !noalias !7
- Unknown
- store i8 %104, i8* %95, align 1, !tbaa !1, !alias.scope !7, !noalias !4
- Unknown
- store i8 %107, i8* %111, align 1, !tbaa !1, !alias.scope !7, !noalias !4
- Unknown
- store i8 %110, i8* %112, align 1, !tbaa !1, !alias.scope !7, !noalias !4
- Unknown
- %115 = load i8, i8* %100, align 1, !tbaa !1, !alias.scope !4, !noalias !7
- Unknown
- %117 = load i8, i8* %114, align 1, !tbaa !1, !alias.scope !4, !noalias !7
- Unknown
- %119 = load i8, i8* %116, align 1, !tbaa !1, !alias.scope !4, !noalias !7
- Unknown
- store i8 %122, i8* %113, align 1, !tbaa !1, !alias.scope !7, !noalias !4
- Unknown
- store i8 %125, i8* %129, align 1, !tbaa !1, !alias.scope !7, !noalias !4
- Unknown
- store i8 %128, i8* %130, align 1, !tbaa !1, !alias.scope !7, !noalias !4
- Unknown
- %133 = load i8, i8* %118, align 1, !tbaa !1, !alias.scope !4, !noalias !7
- Unknown
- %135 = load i8, i8* %132, align 1, !tbaa !1, !alias.scope !4, !noalias !7
- Unknown
- %137 = load i8, i8* %134, align 1, !tbaa !1, !alias.scope !4, !noalias !7
- Unknown
- store i8 %140, i8* %131, align 1, !tbaa !1, !alias.scope !7, !noalias !4
- Unknown
- store i8 %143, i8* %147, align 1, !tbaa !1, !alias.scope !7, !noalias !4
- Unknown
- store i8 %146, i8* %148, align 1, !tbaa !1, !alias.scope !7, !noalias !4
- Unknown
- %151 = load i8, i8* %136, align 1, !tbaa !1, !alias.scope !4, !noalias !7
- Unknown
- %153 = load i8, i8* %150, align 1, !tbaa !1, !alias.scope !4, !noalias !7
- Unknown
- %155 = load i8, i8* %152, align 1, !tbaa !1, !alias.scope !4, !noalias !7
- Unknown
- store i8 %158, i8* %149, align 1, !tbaa !1, !alias.scope !7, !noalias !4
- Unknown
- store i8 %161, i8* %165, align 1, !tbaa !1, !alias.scope !7, !noalias !4
- Unknown
- store i8 %164, i8* %166, align 1, !tbaa !1, !alias.scope !7, !noalias !4
- ===== Alias Analysis Evaluator Report =====
- 4096 Total Alias Queries Performed
- 1253 no alias responses (30.5%)
- 2837 may alias responses (69.2%)
- 6 partial alias responses (0.1%)
- 0 must alias responses (0.0%)
- Alias Analysis Evaluator Pointer Alias Summary: 30%/69%/0%/0%
- 65 Total ModRef Queries Performed
- 0 no mod/ref responses (0.0%)
- 0 mod responses (0.0%)
- 1 ref responses (1.5%)
- 64 mod & ref responses (98.4%)
- Alias Analysis Evaluator Mod/Ref Summary: 0%/0%/1%/98%
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement