19 #include <llvm-c/Core.h>
24 #include <llvm/IR/Attributes.h>
25 #include <llvm/IR/Function.h>
26 #include <llvm/MC/SubtargetFeature.h>
27 #include <llvm/Support/Host.h>
35 #if defined(HAVE_DECL_LLVMGETHOSTCPUNAME) && !HAVE_DECL_LLVMGETHOSTCPUNAME
36 char *LLVMGetHostCPUName(
void) {
37 return strdup(llvm::sys::getHostCPUName().
data());
42 #if defined(HAVE_DECL_LLVMGETHOSTCPUFEATURES) && !HAVE_DECL_LLVMGETHOSTCPUFEATURES
43 char *LLVMGetHostCPUFeatures(
void) {
44 llvm::SubtargetFeatures Features;
45 llvm::StringMap<bool> HostFeatures;
47 if (llvm::sys::getHostCPUFeatures(HostFeatures))
48 for (
auto &
F : HostFeatures)
49 Features.AddFeature(
F.first(),
F.second);
51 return strdup(Features.getString().c_str());
68 #if LLVM_VERSION_MAJOR < 4
69 if (!llvm::unwrap<llvm::Function>(
F)->getAttributes().hasAttributes(Idx))
77 return LLVMGetAttributeCountAtIndex(
F, Idx);
unsigned LLVMGetAttributeCountAtIndexPG(LLVMValueRef F, uint32 Idx)