The runtime of value profiling (__llvm_profile_instrument_target) has dynamic memory allocation (i.e. malloc). Malloc call can be overwritten by other memory allocator through llvm.global_ctors functions. Value-instrumenting these functions can result in a deadlock.
This patch disables the value-instrumentation (for indirect-call) of functions referenced in llvm.global.ctors and llvm.global_dtors.