[llvm-dev] Got stuck with PC-rel branching

Friedman, Eli via llvm-dev llvm-dev at lists.llvm.org
Thu Jan 19 10:46:36 PST 2017

On 1/19/2017 10:21 AM, Peter Bel wrote:
> Hi,
> For the function call - yes, probably. But what about branching inside 
> one function (standard if-then for example)?
> For example:
> echo "int g() { int a = 1; if (a > 3) return 1; return 0; }" | clang 
> -x c - -o /tmp/a.o -c && objdump -d /tmp/a.o

Yes, the assembler tries to avoid emitting relocations for relative 
offsets within a section.  See MCAssembler::layout, particularly the bit 
at the end where it calls applyFixup().


Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project

More information about the llvm-dev mailing list