https://llvm.org/bugs/show_bug.cgi?id=27128

            Bug ID: 27128
           Summary: PowerPC64: jump tables cause failure during early
                    Linux boot
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Backend: PowerPC
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected]
    Classification: Unclassified

A recent patch to more aggressively use jump tables ([Codegen]
Decrease minimum jump table density) has shown up an issue when using
llvm to build the PowerPC64 Linux kernel.

The kernel spends a short amount of time in early boot running at a non zero
offset. We do this by relocating everything in the TOC, then undoing that when
we copy ourselves down to 0.

We don't have an issue with jump tables on gcc because they use 32bit offsets
which get added to a base address. On llvm they are 64bit addresses. Looking
closer, it looks like llvm emits similar code to gcc when using the -fpic flag.

We've avoided the complexity and overhead of building a completely relocatable
image so far, perhaps we need to revisit that.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to