Yume
Namespaces | Functions
compiler.cpp File Reference
#include "compiler.hpp"
#include "ast/ast.hpp"
#include "compiler/type_holder.hpp"
#include "diagnostic/errors.hpp"
#include "extra/mangle.hpp"
#include "qualifier.hpp"
#include "semantic/type_walker.hpp"
#include "ty/compatibility.hpp"
#include "ty/substitution.hpp"
#include "ty/type.hpp"
#include "ty/type_base.hpp"
#include "util.hpp"
#include "vals.hpp"
#include <algorithm>
#include <exception>
#include <limits>
#include <llvm/ADT/STLExtras.h>
#include <llvm/ADT/StringMap.h>
#include <llvm/ADT/StringMapEntry.h>
#include <llvm/ADT/StringRef.h>
#include <llvm/ADT/Twine.h>
#include <llvm/ADT/iterator.h>
#include <llvm/BinaryFormat/Dwarf.h>
#include <llvm/IR/Argument.h>
#include <llvm/IR/BasicBlock.h>
#include <llvm/IR/CallingConv.h>
#include <llvm/IR/Constant.h>
#include <llvm/IR/Constants.h>
#include <llvm/IR/DIBuilder.h>
#include <llvm/IR/DerivedTypes.h>
#include <llvm/IR/Function.h>
#include <llvm/IR/GlobalValue.h>
#include <llvm/IR/GlobalVariable.h>
#include <llvm/IR/Instruction.h>
#include <llvm/IR/Instructions.h>
#include <llvm/IR/IntrinsicInst.h>
#include <llvm/IR/LegacyPassManager.h>
#include <llvm/IR/Type.h>
#include <llvm/IR/Value.h>
#include <llvm/IR/Verifier.h>
#include <llvm/Support/Casting.h>
#include <llvm/Support/CodeGen.h>
#include <llvm/Support/ErrorHandling.h>
#include <llvm/Support/Host.h>
#include <llvm/Support/TargetSelect.h>
#include <llvm/Support/raw_ostream.h>
#include <llvm/Target/TargetOptions.h>
#include <llvm/Support/TargetRegistry.h>
#include <optional>
#include <sstream>
#include <stdexcept>
#include <type_traits>
#include <utility>
#include <variant>

Go to the source code of this file.

Namespaces

namespace  yume
 

Functions

static auto yume::make_cdtor_fn (llvm::IRBuilder<> &builder, llvm::Module &module, bool is_ctor) -> llvm::Function *
 
static auto yume::vtable_entry_for (const Fn &fn) -> VTableEntry
 
static void yume::create_vtable_for (Struct &st)
 
static auto yume::build_function_type (Compiler &compiler, const ty::Function &type) -> llvm::Type *
 
static auto yume::build_struct_type (Compiler &compiler, const ty::Struct &type) -> llvm::Type *
 
static void yume::destruct_indirect (Compiler &compiler, const InScope &v)
 
static auto constexpr yume::const_hash (const char *input) -> unsigned
 A constexpr-friendly simple string hash, for simple switches with string cases. More...
 
static auto yume::vals_to_llvm (const vector< Val > &in) -> vector< llvm::Value * >