Are you sure it’s caused by the IRLinker? I feel this is unacceptable. I have lost the struct type information and cannot proceed with the following work. Did LLVM not consider this issue?
Are you sure it’s caused by the IRLinker? I feel this is unacceptable. I have lost the struct type information and cannot proceed with the following work. Did LLVM not consider this issue?
The names of struct types carry no semantic meaning whatsoever.
Furthermore, in your original post:
%rsvdArray = alloca %struct.anon.0*, align 8
This indicates that you are using an older version of LLVM. In more recent versions, the equivalent instruction will be %rsvdArray = alloca ptr, align 8, as the transition to opaque pointers has been completed.
I would recommend you think about how to change your algorithms to not rely on this information. I can’t make any specific recommendations, however, without further information.
LLVM will remove duplicate types, and pick one to use in the module. In other words, if you have two separate types whose definitions are identical, LLVM will pick one and drop the other one.