Displaying 5 results from an estimated 5 matches for "picbase".
2014 Jun 26
2
[LLVMdev] cross-section differences in MC generation
I'm working on Position-independent code for 32-bit PowerPC, but
running into a problem. At the beginning of each function, there's a
pre-word that's the difference between the PICBase (.L1$pb) and the
GOT. This works fine when generating assembly output, but it fails
when generating ELF output, with the error "Cannot represent a
difference across sections" (line 847, lib/MC/ELFObjectWriter.cpp).
Roman Divacky suggested I try something with 'let EncoderMethod = .....
2014 Jun 26
2
[LLVMdev] cross-section differences in MC generation
...6, 2014, at 12:33, Justin Hibbits <jrh29 at alumni.cwru.edu> wrote:
>>
>> I'm working on Position-independent code for 32-bit PowerPC, but
>> running into a problem. At the beginning of each function, there's a
>> pre-word that's the difference between the PICBase (.L1$pb) and the
>> GOT. This works fine when generating assembly output, but it fails
>> when generating ELF output, with the error "Cannot represent a
>> difference across sections" (line 847, lib/MC/ELFObjectWriter.cpp).
>>
>> Roman Divacky suggested I tr...
2010 Oct 20
0
[LLVMdev] llvm register reload/spilling around calls
On Oct 20, 2010, at 7:46 AM, Roland Scheidegger wrote:
> On 20.10.2010 05:00, Jakob Stoklund Olesen wrote:
>> Look in X86InstrControl.td. The call instructions are all prefixed
>> by:
>>
>> let Defs = [RAX, RCX, RDX, RSI, RDI, R8, R9, R10, R11, FP0, FP1, FP2,
>> FP3, FP4, FP5, FP6, ST0, ST1, MM0, MM1, MM2, MM3, MM4, MM5, MM6, MM7,
>> XMM0, XMM1, XMM2, XMM3,
2010 Oct 20
1
[LLVMdev] llvm register reload/spilling around calls
...1$pb":
popl %eax
cmpl $0, 32(%esp)
je LBB1_2 # cond_true
LBB1_1: # return
# ...
addl $28, %esp
ret
LBB1_2: # cond_true
...
The PIC base computation (call+popl) is only used on one path through the
code, but is currently always computed in the entry block. It would be
better to sink the picbase computation down into the block for the
assertion, as it is the only one that uses it. This happens for a lot of
code with early outs.
Another example is loads of arguments, which are usually emitted into the
entry block on targets like x86. If not used in all paths through a
function, they shou...
2010 Oct 20
2
[LLVMdev] llvm register reload/spilling around calls
On 20.10.2010 05:00, Jakob Stoklund Olesen wrote:
> On Oct 19, 2010, at 6:37 PM, Roland Scheidegger wrote:
>
>> Thanks for giving it a look!
>>
>> On 19.10.2010 23:21, Jakob Stoklund Olesen wrote:
>>> On Oct 19, 2010, at 11:40 AM, Roland Scheidegger wrote:
>>>
>>>> So I saw that the code is doing lots of register
>>>>