[llvm-dev] RFC: avoid relocations with PC
Joerg Sonnenberger via llvm-dev
llvm-dev at lists.llvm.org
Sun Feb 24 16:01:11 PST 2019
On Sun, Feb 24, 2019 at 11:17:57AM -0600, Shawn Landden via llvm-dev wrote:
> When PIC code uses a string, this creates a relocation that slows down
> program startup time. As long as the string is in the same compilation unit
> as the PIC code this relocation is unnecessary, as the offset of the
> compiled unit is stored in the program counter, and can be accessed by a
> stored subtraction/addition. This would mean more instructions at the call
> site, so the details I would image would require some careful coordination
> between llvm and lld.
This is happening already given support from the target architecture and
code model. Compile
const char *f(void) { return "foo"; }
for x86-64 with -fPIC for example (i.e. small code model).
Joerg
More information about the llvm-dev
mailing list