llvm-6502/lib/IR
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
..
AsmWriter.cpp Revert "[ms-cxxabi] Add a new calling convention that swaps 'this' and 'sret'" 2014-05-09 22:56:42 +00:00
AsmWriter.h
AttributeImpl.h
Attributes.cpp
AutoUpgrade.cpp
BasicBlock.cpp
CMakeLists.txt
ConstantFold.cpp
ConstantFold.h
ConstantRange.cpp
Constants.cpp
ConstantsContext.h
Core.cpp Add C API for thread yielding callback. 2014-05-16 02:33:15 +00:00
DataLayout.cpp
DebugInfo.cpp
DebugLoc.cpp
DiagnosticInfo.cpp
DiagnosticPrinter.cpp
DIBuilder.cpp DebugInfo: Add FIXME regarding DILexicalBlock uniquing fields. 2014-05-15 20:09:55 +00:00
Dominators.cpp
Function.cpp Split GlobalValue into GlobalValue and GlobalObject. 2014-05-13 18:45:48 +00:00
GCOV.cpp
Globals.cpp Implement global merge optimization for global variables. 2014-05-15 23:45:42 +00:00
GVMaterializer.cpp
InlineAsm.cpp
Instruction.cpp
Instructions.cpp
IntrinsicInst.cpp
IRBuilder.cpp
IRPrintingPasses.cpp
LeakDetector.cpp
LeaksContext.h
LegacyPassManager.cpp Add C API for thread yielding callback. 2014-05-16 02:33:15 +00:00
LLVMBuild.txt
LLVMContext.cpp Add C API for thread yielding callback. 2014-05-16 02:33:15 +00:00
LLVMContextImpl.cpp Add C API for thread yielding callback. 2014-05-16 02:33:15 +00:00
LLVMContextImpl.h Add C API for thread yielding callback. 2014-05-16 02:33:15 +00:00
Makefile
Mangler.cpp
MDBuilder.cpp
Metadata.cpp
Module.cpp
Pass.cpp Revert "[PM] Add pass run listeners to the pass manager." 2014-05-15 17:49:20 +00:00
PassManager.cpp Add C API for thread yielding callback. 2014-05-16 02:33:15 +00:00
PassRegistry.cpp
SymbolTableListTraitsImpl.h
Type.cpp
TypeFinder.cpp
Use.cpp
User.cpp
Value.cpp Assert that we don't RAUW a Constant with a ConstantExpr that contains it. 2014-05-13 01:23:21 +00:00
ValueSymbolTable.cpp
ValueTypes.cpp
Verifier.cpp musttail: Fix the verification of alignment attributes 2014-05-15 23:58:57 +00:00