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