Kavindu Gimhan Zoysa via llvm-dev
2021-Sep-18 18:57 UTC
[llvm-dev] A Question on stackmap locations of a record
Hi all, *[ "gc-live"(<2 x i8 addrspace(1)*> %68, <2 x i8 addrspace(1)*> %base_ie) ]* Please consider that I have an LLVM IR which has a statepoint with the above gc-live operands. The generated stackmap record for the above statepoint has below properties. 1. only 2 locations 2. both are indirect 3. size of each location is 16 bytes 4. offsets are different. i.e. 0x30 and 0x20 As I understand, in stackmap we can see pair of locations always for a single pointer. But in this case, there should be 4 locations because we have 2 pointers in the statepoint. Can you help me to solve this? Thank you, Kavindu Kavindu Gimhan Zoysa, BSc(Hons) | ENTC | UoM, ATL | WSO2 GitHub <https://github.com/KavinduZoysa> LinkedIn <https://www.linkedin.com/in/kavindu-gimhan-zoysa-85939a122/> Medium <https://medium.com/@kavindugimhanzoysa> -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210919/d6334cf5/attachment.html>
Philip Reames via llvm-dev
2021-Sep-20 19:50 UTC
[llvm-dev] A Question on stackmap locations of a record
The lowering described appears to match the expected behavior of the statepoint you've described. It's not clear why you believe there should be four values in the lowering when that is not what you've specified in the IR. You'll need to provide a bit more context if you want help. My best guess is that you've misunderstood the documentation - maybe you've confused the stackmap format with the behavior of RS4GC? Philip On 9/18/21 11:57 AM, Kavindu Gimhan Zoysa via llvm-dev wrote:> Hi all, > > *[ "gc-live"(<2 x i8 addrspace(1)*> %68, <2 x i8 addrspace(1)*> > %base_ie) ]* > * > * > Please consider that I have an LLVM IR which has a statepoint with the > above gc-live operands. > The generated stackmap record for the above statepoint has below > properties. > > 1. only 2 locations > 2. both are indirect > 3. size of each location is 16 bytes > 4. offsets are different. i.e. 0x30 and 0x20 > > As I understand, in stackmap we can see pair of locations always > for a single pointer. But in this case, there should be 4 locations > because we have 2 pointers in the statepoint. > > Can you help me to solve this? > > Thank you, > Kavindu > > Kavindu Gimhan Zoysa, > BSc(Hons) | ENTC | UoM, > ATL | WSO2 > > GitHub <https://github.com/KavinduZoysa> LinkedIn > <https://www.linkedin.com/in/kavindu-gimhan-zoysa-85939a122/> Medium > <https://medium.com/@kavindugimhanzoysa> > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210920/c4ac8178/attachment.html>