llvm-6502/unittests/ExecutionEngine/MCJIT/CMakeLists.txt
Filip Pizlo 23ffb3ea10 Stackmaps are used for OSR exits, which is a custom kind of unwinding. Hence, they
should not be marked nounwind.

Marking them nounwind caused crashes in the WebKit FTL JIT, because if we enable 
sufficient optimizations, LLVM starts eliding compact_unwind sections (or any unwind 
data for that matter), making deoptimization via stackmaps impossible.

This changes the stackmap intrinsic to be may-throw, adds a test for exactly the 
sympton that WebKit saw, and fixes TableGen to handle un-attributed intrinsics.

Thanks to atrick and philipreames for reviewing this.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201826 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-20 23:57:31 +00:00

33 lines
513 B
CMake

set(LLVM_LINK_COMPONENTS
Analysis
Core
ExecutionEngine
IPO
JIT
MCJIT
ScalarOpts
Support
Target
nativecodegen
)
set(MCJITTestsSources
MCJITTest.cpp
MCJITCAPITest.cpp
MCJITMemoryManagerTest.cpp
MCJITMultipleModuleTest.cpp
MCJITObjectCacheTest.cpp
)
if(MSVC)
list(APPEND MCJITTestsSources MCJITTests.def)
endif()
add_llvm_unittest(MCJITTests
${MCJITTestsSources}
)
if(MINGW OR CYGWIN)
set_property(TARGET MCJITTests PROPERTY LINK_FLAGS -Wl,--export-all-symbols)
endif()