hobbes
a language, embedded compiler, and runtime for efficient dynamic expression evaluation, data storage and analysis
Namespaces | Typedefs | Functions | Variables
llvm.H File Reference
#include <hobbes/util/array.H>
#include <llvm/Config/llvm-config.h>
#include <llvm/IR/DerivedTypes.h>
#include <llvm/IR/IRBuilder.h>
#include <llvm/IR/LLVMContext.h>
#include <llvm/IR/Module.h>
#include <llvm/IR/DataLayout.h>
#include <llvm/IR/InstIterator.h>
#include <llvm/Analysis/Passes.h>
#include <llvm/Transforms/Scalar.h>
#include <llvm/Transforms/Vectorize.h>
#include <llvm/Transforms/IPO.h>
#include <llvm/Transforms/Utils/Cloning.h>
#include <llvm/Support/TargetSelect.h>
#include <llvm/Support/TargetRegistry.h>
#include <llvm/Support/Signals.h>
#include <llvm/Bitcode/ReaderWriter.h>
#include <llvm/Support/raw_os_ostream.h>
#include <llvm/ExecutionEngine/ExecutionEngine.h>
#include <llvm/ExecutionEngine/JITEventListener.h>
#include <llvm/ExecutionEngine/SectionMemoryManager.h>
Include dependency graph for llvm.H:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 hobbes
 

Typedefs

typedef std::vector< llvm::Type * > hobbes::Types
 
typedef std::vector< llvm::Constant * > hobbes::Constants
 
typedef std::pair< std::string, llvm::Value * > hobbes::FieldValue
 
typedef std::vector< FieldValue > hobbes::RecordValue
 
typedef std::pair< std::string, llvm::Constant * > hobbes::ConstFieldValue
 
typedef std::vector< ConstFieldValue > hobbes::ConstRecordValue
 
typedef std::pair< std::vector< std::string >, Values > hobbes::UnzRecValues
 

Functions

llvm::LLVMContext & hobbes::context ()
 
llvm::Type * hobbes::voidType ()
 
llvm::Type * hobbes::boolType ()
 
llvm::Type * hobbes::charType ()
 
llvm::Type * hobbes::byteType ()
 
llvm::Type * hobbes::shortType ()
 
llvm::Type * hobbes::intType ()
 
llvm::Type * hobbes::longType ()
 
llvm::Type * hobbes::floatType ()
 
llvm::Type * hobbes::doubleType ()
 
llvm::PointerType * hobbes::ptrType (llvm::Type *ty)
 
llvm::ArrayType * hobbes::arrayType (llvm::Type *ty, size_t sz)
 
llvm::StructType * hobbes::packedRecordType (const Types &tys)
 
llvm::StructType * hobbes::recordType (const Types &tys)
 
llvm::StructType * hobbes::recordType (llvm::Type *t0)
 
llvm::StructType * hobbes::recordType (llvm::Type *t0, llvm::Type *t1)
 
llvm::StructType * hobbes::recordType (llvm::Type *t0, llvm::Type *t1, llvm::Type *t2)
 
llvm::StructType * hobbes::recordType (llvm::Type *t0, llvm::Type *t1, llvm::Type *t2, llvm::Type *t3)
 
llvm::StructType * hobbes::recordType (llvm::Type *t0, llvm::Type *t1, llvm::Type *t2, llvm::Type *t3, llvm::Type *t4)
 
llvm::StructType * hobbes::recordType (llvm::Type *t0, llvm::Type *t1, llvm::Type *t2, llvm::Type *t3, llvm::Type *t4, llvm::Type *t5)
 
llvm::StructType * hobbes::recordType (llvm::Type *t0, llvm::Type *t1, llvm::Type *t2, llvm::Type *t3, llvm::Type *t4, llvm::Type *t5, llvm::Type *t6)
 
llvm::FunctionType * hobbes::functionType (const Types &argTys, llvm::Type *rty)
 
llvm::StructType * hobbes::varArrayType (llvm::Type *elemty, size_t sz=1)
 
llvm::Value * hobbes::cast (llvm::IRBuilder<> *b, llvm::Type *ty, llvm::Value *v)
 
llvm::Constant * hobbes::ccast (llvm::Type *ty, llvm::Constant *v)
 
llvm::Constant * hobbes::cvalue (bool x)
 
llvm::Constant * hobbes::cvalue (char x)
 
llvm::Constant * hobbes::cvalue (unsigned char x)
 
llvm::Constant * hobbes::cvalue (short x)
 
llvm::Constant * hobbes::cvalue (int x)
 
llvm::Constant * hobbes::cvalue (unsigned int x)
 
llvm::Constant * hobbes::cvalue (long x)
 
llvm::Constant * hobbes::cvalue (float x)
 
llvm::Constant * hobbes::cvalue (double x)
 
llvm::ConstantInt * hobbes::civalue (bool x)
 
llvm::ConstantInt * hobbes::civalue (char x)
 
llvm::ConstantInt * hobbes::civalue (unsigned char x)
 
llvm::ConstantInt * hobbes::civalue (short x)
 
llvm::ConstantInt * hobbes::civalue (int x)
 
llvm::ConstantInt * hobbes::civalue (unsigned int x)
 
llvm::ConstantInt * hobbes::civalue (long x)
 
llvm::GlobalVariable * hobbes::prepgv (llvm::GlobalVariable *gv, unsigned int align=sizeof(void *))
 
llvm::Constant * hobbes::constant (llvm::Value *v, bool globalPtrRefs)
 
llvm::Constant * hobbes::liftAsGlobalRef (llvm::Module *m, llvm::Constant *c)
 
Constants hobbes::varArrayConstants (const Values &vs, bool globalPtrRefs)
 
Constants hobbes::liftAsGlobalRefs (llvm::Module *m, const Constants &cs)
 
llvm::Constant * hobbes::constArray (llvm::Module *m, const Constants &cs, llvm::Type *elemTy, bool boxAsGlobalRefs=false)
 
llvm::Value * hobbes::tryMkConstVarArray (llvm::IRBuilder<> *b, llvm::Module *m, llvm::Type *elemTy, const Values &vs, bool globalPtrRefs)
 
llvm::Constant * hobbes::padding (unsigned int len)
 
Constants hobbes::mergePadding (const Constants &cs, const Record::Members &ms)
 
Types hobbes::types (const Constants &cs)
 
Constants hobbes::recordUZConstants (const UnzRecValues &rps, const Record *rty)
 
llvm::Type * hobbes::toLLVM (const MonoTypePtr &, bool asArg=false)
 
Constants hobbes::liftArraysAsGlobals (llvm::Module *m, const Constants &cs, const MonoTypes &tys)
 
llvm::Constant * hobbes::constantRecord (llvm::Module *, const Constants &cs, const Record *rty)
 
llvm::Value * hobbes::tryMkConstRecord (llvm::IRBuilder<> *, llvm::Module *m, const RecordValue &rv, const Record *rty)
 
llvm::Value * hobbes::offset (llvm::IRBuilder<> *b, llvm::Value *p, llvm::Value *o0)
 
llvm::Value * hobbes::offset (llvm::IRBuilder<> *b, llvm::Value *p, int o0)
 
llvm::Value * hobbes::offset (llvm::IRBuilder<> *b, llvm::Value *p, int o0, int o1)
 
llvm::Value * hobbes::offset (llvm::IRBuilder<> *b, llvm::Value *p, int o0, llvm::Value *o1)
 
llvm::Value * hobbes::structOffset (llvm::IRBuilder<> *b, llvm::Value *p, unsigned int fieldOffset)
 
llvm::Function * hobbes::externDecl (llvm::Function *remoteFn, llvm::Module *thisModule)
 
llvm::Function * hobbes::cloneFunction (llvm::Function *f, llvm::Module *targetMod)
 
llvm::Value * hobbes::fncall (llvm::IRBuilder<> *b, llvm::Value *vfn, const Values &args)
 
llvm::Value * hobbes::fncall (llvm::IRBuilder<> *b, llvm::Value *fn, llvm::Value *arg)
 

Variables

const size_t hobbes::FUNCTION_SIZE_THRESHOLD = 64