mstorsjo added a comment. In https://reviews.llvm.org/D43184#1039385, @rnk wrote:
> In https://reviews.llvm.org/D43184#1039354, @mstorsjo wrote: > > > Ok - I'll put it on the backburner, and maybe see if I'd try implementing > > the linker part of fixing unannotated data imports at some point. > > > I'm not sure that's feasible. If we'd just fix the RTTI vtable case, this still would need to be implemented in the linker, right? That's what I meant originally - implementing enough of that to handle RTTI, optionally giving the larger usecase a shot. > At least for x86, global addresses can be folded in ways that mean the linker > cannot relax them. You can go the other way, though. If we start by assuming > all data is imported, you can often relax an __imp_sym load to a LEA > sym(%rip). This increases register pressure and generates worse code, but it > has conceivable use cases. Hmm, I think it seems like GCC does something like that. When accessing data symbols that aren't known to be DSO local, it seems to produce code like this: "movq .refptr.a(%rip), %rax; mov (%rax), %rax". My x86-fu is rather weak but I guess that's pretty much what you meant? Anyway, good to know about that case. Repository: rC Clang https://reviews.llvm.org/D43184 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits