[LLVMdev] Crashes on Windows 8 with >4k stack frames
Ephrim Khong
dr.khong at gmail.com
Tue Jun 30 02:21:55 PDT 2015
Hi All,
we have an issue with our LLVM-based JIT compiler - executing the
compiled code corrupts memory (and subsequently crashes) if we alloca
more than 4k of variables (more than 511 8-byte ints). The same code
works on Windows 7 (32 and 64 bit), Linux, MacOS. We compile LLVM and
our program with Microsoft's Visual Studio 2010. Both debug and release
builds are affected.
The variables are created en-block at the beginning of the function with
code looking like
for (i=0; i<513; ++i) {
AllocaInst *variable =
mBuilder.CreateAlloca(Type::getInt64Ty(mContext),0,"");
mBuilder.CreateStore(GetConstI("INT4_8",0),variable);
}
We have not yet looked at the compiled machine code (same on Win 7 and
8, or differs?). But the 4k limit made us suspicious, as there were some
bug reports - some still open - regarding this limit with LLVM [1,2].
So the question is - before digging into this for more days - is there
some known issue with this, or does anyone have an idea what might go wrong?
Thanks,
Eph
[1] https://llvm.org/bugs/show_bug.cgi?id=2921
[2] https://llvm.org/bugs/show_bug.cgi?id=8919
More information about the llvm-dev
mailing list