<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>