[LLVMdev] Offset overflow on calling __chkstc and __alloca
mikhaill at microsoft.com
Fri Jan 17 15:11:32 PST 2014
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.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev