Add a pointer to the owning LLVMContext to Module. This requires threading LLVMContext through a lot

of the bitcode reader and ASM parser APIs, as well as supporting it in all of the tools.

Patches for Clang and LLVM-GCC to follow.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74614 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Owen Anderson
2009-07-01 16:58:40 +00:00
parent 4fb75e5425
commit 8b477ed579
60 changed files with 276 additions and 145 deletions

View File

@@ -15,6 +15,7 @@
#ifndef BRAINF_H
#define BRAINF_H
#include "llvm/LLVMContext.h"
#include "llvm/Module.h"
#include "llvm/Support/IRBuilder.h"
@@ -38,7 +39,7 @@ class BrainF {
/// containing the resulting code.
/// On error, it calls abort.
/// The caller must delete the returned module.
Module *parse(std::istream *in1, int mem, CompileFlags cf);
Module *parse(std::istream *in1, int mem, CompileFlags cf, LLVMContext* C);
protected:
/// The different symbols in the BrainF language
@@ -64,7 +65,7 @@ class BrainF {
static const char *testreg;
/// Put the brainf function preamble and other fixed pieces of code
void header();
void header(LLVMContext* C);
/// The main loop for parsing. It calls itself recursively
/// to handle the depth of nesting of "[]".