<div dir="ltr">Hi there,<div><br></div><div>The raw input IR is composed by my tool and the below one is produced by llvm opt tool with O3 optimization level. I am pretty sure that the two load instructions(

%mem_base60  and 

%mem_base66) are referring to the same memory location. How can I instruct llvm optimization pass to optimize out the 

%mem_base66 and make the subsequent code reuse the 

%mem_base60? I tried with metadata 'alias.scope' and 'noalias' and it doesn't help. Thanks for any advice.<br><div><br></div><div>392542 check_exce_succ59:                                ; preds = %check_exce_succ40<br>**392543   %mem_base60 = load i8*, i8** %mem_base_addr_ptr, align 8<br>392544   %offset161 = add i32 %call56, 4<br>392545   %11 = sext i32 %offset161 to i64<br>392546   %maddr62 = getelementptr inbounds i8, i8* %mem_base60, i64 %11<br>392547   %data_ptr63 = bitcast i8* %maddr62 to i64*<br>392548   store i64 0, i64* %data_ptr63, align 8<br>**392549   %mem_base66 = load i8*, i8** %mem_base_addr_ptr, align 8<br>392550   %offset167 = add i32 %call56, 12<br>392551   %12 = sext i32 %offset167 to i64<br>392552   %maddr68 = getelementptr inbounds i8, i8* %mem_base66, i64 %12<br>392553   %data_ptr69 = bitcast i8* %maddr68 to i32*<br>392554   store i32 %call, i32* %data_ptr69, align 8<br></div></div><div><br></div><div>BR,</div><div>Terry</div></div>