[PATCH] Bug 18582 - Offset overflow on calling __chkstk and __alloca on x64

Benoit Belley benoit.belley at autodesk.com
Thu Jan 29 13:28:01 PST 2015

Thanks guys for the comments. I will experiment a little bit more and come back once I have a better understanding. It might also be a difference between the behaviour of the COFF vs ELF object files under Windows.

There is a guiding principle though that I'd like to discuss first. AFAIK, the MCJIT engine does not perform any special configuration of the target backends. It uses a vanilla pass manager to create an in-memory object file (ELF or Mach-O). That object file is essentially no different than the one that would have been generated by llc -filetype=obj. I believe that this is a desirable design goal. So, the content of the object file is either right or wrong. The answer should not depend on the intended use of the object file (JIT execution or offline compilation).

In addition, and AFAIK, it is currently a limitation of the RuntimeDyLd symbol relocators that we have to use CodeModel::Large. It is also my understanding that it is a limitation that might be lifted the future. The corollary is that we shouldn't make any assumption that CodeModel::Large implies MCJIT or vice-versa.

Is my understanding of those parts correct ?




More information about the llvm-commits mailing list