[LLVMdev] question about SjLjEHPrepare

David Dunkle ddunkle at arxan.com
Tue Mar 27 15:47:29 PDT 2012


When testing with LLVM 3.0 I noticed a crash in LLC with a test case we are running. After examining the source, I found that the crash coming from SjLjEHPrepare.cpp, specifically from "ReplaceLandingPadVal". I can explain about the crash if needed, but I will omit that for now. 

Testing with and LLC built from the top of trunk showed no LLC crash, and the code in SjLhEHPrepare.cpp has been very much changed. The comment in revision 142800 indicates that this is a cleanup, and not a change in functionality, or at least that is how I interpreted it.

We are not prepared to move the llvm 3.1 top of trunk, so I attempted to back port  SjLjEHPrepare.cpp's new implementation to llvm 3.0, strictly for our own purposes, and not  to submit to the LLVM code line. I found after some testing that the crash in LLC is fixed. However, with this build I am seeing some cases where exceptions are thrown and not properly caught.

My question is whether SjLjEHPrepare.cpp is a stand alone pass that I can hope to port alone into llvm 3.0, or whether there are other parts of the source code that would have to be back ported along with it to have exception handling working properly.

I know this is a somewhat unorthodox approach, so thanks for bearing with me in this matter.

-David



More information about the llvm-dev mailing list