/*------------------------------------------------------------------------- * * llvmjit_wrap.cpp * Parts of the LLVM interface not (yet) exposed to C. * * Copyright (c) 2016-2019, PostgreSQL Global Development Group * * IDENTIFICATION * src/backend/lib/llvm/llvmjit_wrap.cpp * *------------------------------------------------------------------------- */ extern "C" { #include "postgres.h" } #include #include #include "jit/llvmjit.h" /* * C-API extensions. */ #if defined(HAVE_DECL_LLVMGETHOSTCPUNAME) && !HAVE_DECL_LLVMGETHOSTCPUNAME char *LLVMGetHostCPUName(void) { return strdup(llvm::sys::getHostCPUName().data()); } #endif #if defined(HAVE_DECL_LLVMGETHOSTCPUFEATURES) && !HAVE_DECL_LLVMGETHOSTCPUFEATURES char *LLVMGetHostCPUFeatures(void) { llvm::SubtargetFeatures Features; llvm::StringMap HostFeatures; if (llvm::sys::getHostCPUFeatures(HostFeatures)) for (auto &F : HostFeatures) Features.AddFeature(F.first(), F.second); return strdup(Features.getString().c_str()); } #endif