<div dir="ltr"><br clear="all"><div>LLVM 3.8.0, Ubuntu 16.04.2, 64 bit is being used to instrument IR.</div><div><br></div><div>====================================================</div><div><br></div><div><div>define i32 @bar() #0 {</div><div>entry:</div><div>  %var = alloca [3 x i32], align 4</div><div>  %0 = bitcast [3 x i32]* %var to i8*</div><div>  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %0, i8* bitcast ([3 x i32]* @bar.var to i8*), i64 12, i32 4, i1 false)</div><div>  %arrayidx = getelementptr inbounds [3 x i32], [3 x i32]* %var, i64 0, i64 0</div><div>  %1 = load i32, i32* %arrayidx, align 4</div><div>  ret i32 %1</div><div>}</div></div><div><br></div><div>=====================================================</div><div><br></div><div><div>if (AllocaInst *alloca_inst = dyn_cast<AllocaInst>(&I)) {</div><div>                   .</div><div>                   .<br></div><div>                   .</div><div>                    Value* var_addr = builder.CreateBitCast(alloca_inst, Type::getInt8PtrTy(Ctx));</div><div>                   .</div><div>                   .<br></div><div>                   .</div><div>                }</div></div><div><br></div><div>=====================================================<br></div><div><br></div><div>I am receiving the following error:</div><div><br></div><div><div>Instruction does not dominate all uses!                                                </div><div>  %var = alloca [3 x i32], align 4  </div><div>  %0 = bitcast [3 x i32]* %var to i8*                </div></div><div><br></div><div>=====================================================<br></div><div><br></div><div>I can't even see any conditional statement in the IR. Can someone please point out what I am missing? </div><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><span><div><div dir="ltr"><p>Thanks & Regards,</p>
<div>Dipanjan</div></div></div></span></div></div>
</div>