[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