#ifndef LLVM_HS_SUPPORT_H #define LLVM_HS_SUPPORT_H #include "llvm-c/ExecutionEngine.h" #ifdef __cplusplus typedef llvm::StringMap LLVMFeatureMap; typedef llvm::StringMap::const_iterator LLVMFeatureIterator; extern "C" { #else typedef int LLVMFeatureMap; typedef int LLVMFeatureIterator; #endif /* Wraps the LLVMInitializeTarget macro from Target.h */ unsigned LLVMInitNativeTarget(void); /* Wraps llvm::Value::getNumUses(). */ unsigned LLVMValueGetNumUses(LLVMValueRef value); /* Wraps llvm::Instruction::getOpcode(). */ unsigned LLVMInstGetOpcode(LLVMValueRef inst); /* Wraps llvm::CmpInst::getPredicate(). */ unsigned LLVMCmpInstGetPredicate(LLVMValueRef cmpinst); #if HS_LLVM_VERSION < 700 char *LLVMGetHostCPUName(void); #endif typedef LLVMFeatureMap *LLVMFeatureMapRef; typedef LLVMFeatureIterator *LLVMFeatureIteratorRef; LLVMFeatureMapRef LLVMGetHostFeatures(); void LLVMFreeFeatures(LLVMFeatureMapRef features); LLVMFeatureIteratorRef LLVMGetFirstFeature(LLVMFeatureMapRef features); LLVMFeatureIteratorRef LLVMGetNextFeature(LLVMFeatureMapRef features, LLVMFeatureIteratorRef featureRef); const char *LLVMGetFeatureName(LLVMFeatureIteratorRef featureRef); LLVMBool LLVMGetFeatureSupport(LLVMFeatureIteratorRef featureRef); typedef unsigned LLVMEngineKind; LLVMBool LLVMCreateExecutionEngineKindForModuleCPU (LLVMExecutionEngineRef *OutEE, LLVMEngineKind kind, LLVMModuleRef M, char **OutError); void LLVMSetHasUnsafeAlgebra(LLVMValueRef Instr, LLVMBool B); void LLVMSetHasNoNaNs(LLVMValueRef Instr, LLVMBool B); void LLVMSetHasNoInfs(LLVMValueRef Instr, LLVMBool B); void LLVMSetHasNoSignedZeros(LLVMValueRef Instr, LLVMBool B); void LLVMSetHasAllowReciprocal(LLVMValueRef Instr, LLVMBool B); void LLVMSetHasAllowReassoc(LLVMValueRef Instr, LLVMBool B); void LLVMSetHasAllowContract(LLVMValueRef Instr, LLVMBool B); void LLVMSetHasApproxFunc(LLVMValueRef Instr, LLVMBool B); #ifdef __cplusplus } /* extern "C" */ #endif #endif /* LLVM_HS_SUPPORT_H */