<div dir="ltr"><div>Hi all,</div><div><br></div><div>If I run the <b>--rewrite-statepoints-for-gc, </b>against an LLVM IR with a derived pointer, that pointer is not caught by RS4GC pass as a live pointer. Is this the expected behavior?</div><div><br></div><div>This is the sample code I ran.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">define void @dummy_func() {<br>  ret void<br>}<br>define i8 addrspace(1)* @test1(i8 addrspace(1)* %obj) gc "statepoint-example" {<br>  %gep = getelementptr i8, i8 addrspace(1)* %obj, i64 20000<br>  call void @dummy_func()<br>  %p = getelementptr i8, i8 addrspace(1)* %gep, i64 -20000<br>  store i8 2, i8 addrspace(1)* %gep<br>  ret i8 addrspace(1)* %p<br>}<br>define dso_local void @main() #0 {<br>  %1 = alloca i8*, align 8<br>  %2 = call noalias i8 addrspace(1)* @malloc(i64 8) #3<br>  %3 = call i8 addrspace(1)* @test1(i8 addrspace(1)* %2)<br>  ret void<br>}<br>declare dso_local noalias i8 addrspace(1)* @malloc(i64) #1</blockquote><div><br></div><div>Since <b>%gep </b>is a derived pointer, I expect it should be identified as a live pointer for RS4GC as explained in <a href="https://releases.llvm.org/11.0.1/docs/Statepoints.html#base-derived-pointers">https://releases.llvm.org/11.0.1/docs/Statepoints.html#base-derived-pointers</a> .</div><div><br></div><div>Really appreciate your input about this.</div><div><br></div><div>Thank you,</div><div>Kavindu</div><br clear="all"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Kavindu Gimhan Zoysa,</div><div>BSc(Hons) | ENTC | UoM,<br></div><div dir="ltr">ATL | WSO2<div><br></div><div><a href="https://github.com/KavinduZoysa" target="_blank">GitHub</a> <a href="https://www.linkedin.com/in/kavindu-gimhan-zoysa-85939a122/" target="_blank">LinkedIn</a> <a href="https://medium.com/@kavindugimhanzoysa" target="_blank">Medium</a></div></div></div></div></div></div></div></div></div>