llvm/lib
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
..
Analysis Add C API for thread yielding callback. 2014-05-16 02:33:15 +00:00
AsmParser Revert "[ms-cxxabi] Add a new calling convention that swaps 'this' and 'sret'" 2014-05-09 22:56:42 +00:00
Bitcode IR: Don't allow non-default visibility on local linkage 2014-05-07 22:57:20 +00:00
CodeGen Remove the Options query functions and just access our Options directly. 2014-05-16 00:32:52 +00:00
DebugInfo [DWARF parser] Use enums instead of bitfields in DILineInfoSpecifier. 2014-05-15 21:24:32 +00:00
ExecutionEngine [RuntimeDyld] Fix handling of i386 PC-rel external relocations. This fixes 2014-05-13 22:09:07 +00:00
IR Add C API for thread yielding callback. 2014-05-16 02:33:15 +00:00
IRReader
LineEditor
Linker Split GlobalValue into GlobalValue and GlobalObject. 2014-05-13 18:45:48 +00:00
LTO Move EmitDwarfAdvanceLineAddr and EmitDwarfAdvanceFrameAddr to the obj streamer. 2014-05-12 14:43:25 +00:00
MC Move more MC options into the MCTargetOptions structure. 2014-05-15 23:27:49 +00:00
Object [obj2yaml][ELF] Do not print empty Link and Info fields for ELF sections. 2014-05-15 18:04:02 +00:00
Option Protect the ArgList dtor 2014-04-20 23:59:00 +00:00
ProfileData ProfileData: Allow multiple profiles in RawInstrProfReader 2014-05-16 00:38:00 +00:00
Support MemoryBuffer: don't force mmap when stat fails 2014-05-09 08:57:32 +00:00
TableGen Use a vector of unique_ptrs to fix a memory leak introduced in r208179. 2014-05-08 09:29:28 +00:00
Target Implement global merge optimization for global variables. 2014-05-15 23:45:42 +00:00
Transforms Implement global merge optimization for global variables. 2014-05-15 23:45:42 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile