[LLVMdev] [ARM] [PIC] optimizing the loading of hidden global variable (original) (raw)
weimingz at codeaurora.org weimingz at codeaurora.org
Thu Mar 13 21:45:57 PDT 2014
- Previous message: [LLVMdev] [ARM] [PIC] optimizing the loading of hidden global variable
- Next message: [LLVMdev] [ARM] [PIC] optimizing the loading of hidden global variable
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi Tim,
The global merge pass puts the GVs into a sturcture to guarantee their address are contiguous. It works for static GVs but for global hidden GVs, this will cause name resoltion fail during linking .o into .so
Any thoughs?
Thanks, Weiming
Hi Weiming,
On 12 March 2014 17:43, Weiming Zhao <weimingz at codeaurora.org> wrote: Clang will emit 1 GOT entry for each GV and 2 instructions to get the address:
GCC does this only for the first GV. The rest GV address are computed directly: This looks like it would be the job of lib/Transforms/GlobalMerge.cpp. It looks like ARM runs it in all cases, perhaps it doesn't understand some ELF linkage subtleties? Cheers. Tim.
- Previous message: [LLVMdev] [ARM] [PIC] optimizing the loading of hidden global variable
- Next message: [LLVMdev] [ARM] [PIC] optimizing the loading of hidden global variable
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]