[LLVMdev] Offset overflow on calling __chkstc and __alloca
mikhaill at microsoft.com
Thu Jan 23 09:04:12 PST 2014
The bug is opened already, #18582.
From: Rafael Espíndola [mailto:rafael.espindola at gmail.com]
Sent: Thursday, January 23, 2014 8:50 AM
To: Mikhail Lyapunov
Cc: llvmbugs at cs.uiuc.edu; llvmdev at cs.uiuc.edu; Jeff Morgan; Yuri Dotsenko
Subject: Re: [LLVMdev] Offset overflow on calling __chkstc and __alloca
On 17 January 2014 18:11, Mikhail Lyapunov <mikhaill at microsoft.com> wrote:
> Attempting to use LLVM in jitting mode for AMD64, we met a problem.
> When the jitted routine needs a big stack frame (> 1 page), the system
> attempts to call __chkstk to probe the stack.
> This attempt results in assertion in
> RuntimeDyldELF::resolveX86_64Relocation(), case ELF::R_X86_64_PC32,
> because the RealOffset does not fit in 32 bits.
> Same happens with __alloca (when IRBuilder::CreateAlloca appears in a
> conditional block).
> Perhaps the issue can be fixed by using indirect call via 64-bit
> register or replicating service routines inside jitted block.
> Is it known issue?
> Repro is available on demand, just let us know in which form you’d
> like to get it.
Opening a bug with it is probably a good idea.
More information about the llvm-dev