Proteus
Programmable JIT compilation and optimization for C/C++ using LLVM
Loading...
Searching...
No Matches
Classes | Namespaces | Macros | Functions
CoreLLVM.hpp File Reference
#include <llvm/CodeGen/CommandFlags.h>
#include <llvm/IR/DebugInfo.h>
#include <llvm/IR/Module.h>
#include <llvm/IR/PassManager.h>
#include <llvm/Linker/Linker.h>
#include <llvm/MC/TargetRegistry.h>
#include <llvm/Passes/PassBuilder.h>
#include <llvm/Support/TargetSelect.h>
#include <llvm/Target/TargetMachine.h>
#include <llvm/Transforms/IPO/GlobalDCE.h>
#include <llvm/Transforms/IPO/Internalize.h>
#include <llvm/Transforms/IPO/StripDeadPrototypes.h>
#include <llvm/Transforms/IPO/StripSymbols.h>
#include <llvm/Transforms/Utils/ModuleUtils.h>
#include "proteus/Error.h"
#include "proteus/CoreLLVMDevice.hpp"
Include dependency graph for CoreLLVM.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  proteus::InitLLVMTargets
 

Namespaces

namespace  proteus
 
namespace  proteus::detail
 

Macros

#define STRINGIFY_HELPER(x)   #x
 
#define STRINGIFY(x)   STRINGIFY_HELPER(x)
 

Functions

Expected< std::unique_ptr< TargetMachine > > proteus::detail::createTargetMachine (Module &M, StringRef Arch, unsigned OptLevel=3)
 
void proteus::detail::runOptimizationPassPipeline (Module &M, StringRef Arch, char OptLevel='3', unsigned CodegenOptLevel=3)
 
void proteus::optimizeIR (Module &M, StringRef Arch, char OptLevel, unsigned CodegenOptLevel)
 
std::unique_ptr< Module > proteus::linkModules (LLVMContext &Ctx, SmallVector< std::unique_ptr< Module > > &LinkedModules)
 
void proteus::runCleanupPassPipeline (Module &M)
 
void proteus::pruneIR (Module &M, bool UnsetExternallyInitialized=true)
 
void proteus::internalize (Module &M, StringRef PreserveFunctionName)
 

Macro Definition Documentation

◆ STRINGIFY

#define STRINGIFY (   x)    STRINGIFY_HELPER(x)

◆ STRINGIFY_HELPER

#define STRINGIFY_HELPER (   x)    #x