<div dir="ltr"><div>Hi all,</div><div>I would like to understand if there is an efficient way to identify the instruction that "created" a specific variable. For example,</div><div><br></div><div>define i32 @main() #0 {<br>  %1 = alloca i32, align 4<br>  %2 = alloca %struct._IO_FILE*, align 8<br>  %3 = alloca [40 x i8], align 16<br>  store i32 0, i32* %1, align 4<br>  %4 = call %struct._IO_FILE* @fopen(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i32 0, i32 0))<br>  store %struct._IO_FILE* %4, %struct._IO_FILE** %2, align 8<br>  %5 = getelementptr inbounds [40 x i8], [40 x i8]* %3, i32 0, i32 0<br>  %6 = load %struct._IO_FILE*, %struct._IO_FILE** %2, align 8<br>  %7 = call i64 @fread(i8* %5, i64 2, i64 1, %struct._IO_FILE* %6)<br>  %8 = load %struct._IO_FILE*, %struct._IO_FILE** %2, align 8<br>  %9 = call i32 @fclose(%struct._IO_FILE* %8)<br>  %10 = getelementptr inbounds [40 x i8], [40 x i8]* %3, i64 0, i64 0<br>  %11 = load i8, i8* %10, align 16<br>  <b>%12 = sext i8 %11 to i32</b><br>  %13 = icmp eq i32 %12, 66<br>  br i1 %13, label %14, label %25</div><div>}</div><div><br></div><div>Having the reference I to the instruction in bold.Can i efficiently know that the variable %11 was "created" by the %3 = alloca [40 x i8], align 16.</div><div><br></div><div>I understand that the word "created" is not the most appropriate...</div><div><br></div><div>Any suggestion?</div><div><br></div><div>Thanks<br></div></div>