llvm/include/llvm-c
Juergen Ributzka 9bc1b73c9e Add C API for thread yielding callback.
Sometimes a LLVM compilation may take more time then a client would like to
wait for. The problem is that it is not possible to safely suspend the LLVM
thread from the outside. When the timing is bad it might be possible that the
LLVM thread holds a global mutex and this would block any progress in any other
thread.

This commit adds a new yield callback function that can be registered with a
context. LLVM will try to yield by calling this callback function, but there is
no guaranteed frequency. LLVM will only do so if it can guarantee that
suspending the thread won't block any forward progress in other LLVM contexts
in the same process.

Once the client receives the call back it can suspend the thread safely and
resume it at another time.

Related to <rdar://problem/16728690>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@208945 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-16 02:33:15 +00:00
..
Transforms The LLVM C API shouldn't be including a file from the C++ API. Especially not a 2014-04-08 10:47:04 +00:00
Analysis.h Organize LLVM C API docs into doxygen modules; add docs 2012-03-21 03:54:29 +00:00
BitReader.h include/llvm-c: Whitespace. 2013-10-23 17:56:29 +00:00
BitWriter.h include/llvm-c: Whitespace. 2013-10-23 17:56:29 +00:00
Core.h Add C API for thread yielding callback. 2014-05-16 02:33:15 +00:00
Disassembler.h ARM64: initial backend import 2014-03-29 10:18:08 +00:00
ExecutionEngine.h Add target analysis passes to the codegen pipeline for MCJIT. 2014-01-23 19:23:28 +00:00
Initialization.h Extracted ObjCARC.cpp into its own library libLLVMObjCARCOpts in preparation for refactoring the ARC Optimizer. 2013-01-28 01:35:51 +00:00
IRReader.h Fix known typos 2014-01-24 17:20:08 +00:00
Linker.h Supply a C interface to the "LinkModules" method. 2012-05-09 08:55:40 +00:00
LinkTimeOptimizer.h include/llvm-c: Whitespace. 2013-10-23 17:56:29 +00:00
lto.h Move LTOModule and LTOCodeGenerator to the llvm namespace. 2014-05-03 14:59:52 +00:00
Object.h Convert getFileOffset to getOffset and move it to its only user. 2014-04-21 13:45:32 +00:00
Support.h [Modules] Fix a layering issue that is actually impacting the modules 2014-03-06 04:13:12 +00:00
Target.h [llvm-c] Remove dead typedef 2013-11-11 14:47:01 +00:00
TargetMachine.h Add target analysis passes to the codegen pipeline for MCJIT. 2014-01-23 19:23:28 +00:00