mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-26 12:20:42 +00:00
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:
@@ -46,11 +46,11 @@ std::string Debugger::getProgramPath() const {
|
||||
}
|
||||
|
||||
static Module *
|
||||
getMaterializedModuleProvider(const std::string &Filename) {
|
||||
getMaterializedModuleProvider(const std::string &Filename, LLVMContext* C) {
|
||||
std::auto_ptr<MemoryBuffer> Buffer;
|
||||
Buffer.reset(MemoryBuffer::getFileOrSTDIN(Filename.c_str()));
|
||||
if (Buffer.get())
|
||||
return ParseBitcodeFile(Buffer.get());
|
||||
return ParseBitcodeFile(Buffer.get(), C);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -58,9 +58,9 @@ getMaterializedModuleProvider(const std::string &Filename) {
|
||||
/// the PATH for the specified program, loading it when found. If the
|
||||
/// specified program cannot be found, an exception is thrown to indicate the
|
||||
/// error.
|
||||
void Debugger::loadProgram(const std::string &Filename) {
|
||||
if ((Program = getMaterializedModuleProvider(Filename)) ||
|
||||
(Program = getMaterializedModuleProvider(Filename+".bc")))
|
||||
void Debugger::loadProgram(const std::string &Filename, LLVMContext* C) {
|
||||
if ((Program = getMaterializedModuleProvider(Filename, C)) ||
|
||||
(Program = getMaterializedModuleProvider(Filename+".bc", C)))
|
||||
return; // Successfully loaded the program.
|
||||
|
||||
// Search the program path for the file...
|
||||
@@ -69,9 +69,9 @@ void Debugger::loadProgram(const std::string &Filename) {
|
||||
|
||||
std::string Directory = getToken(Path, ":");
|
||||
while (!Directory.empty()) {
|
||||
if ((Program = getMaterializedModuleProvider(Directory +"/"+ Filename)) ||
|
||||
(Program = getMaterializedModuleProvider(Directory +"/"+ Filename
|
||||
+ ".bc")))
|
||||
if ((Program = getMaterializedModuleProvider(Directory +"/"+ Filename, C))
|
||||
|| (Program = getMaterializedModuleProvider(Directory +"/"+ Filename
|
||||
+ ".bc", C)))
|
||||
return; // Successfully loaded the program.
|
||||
|
||||
Directory = getToken(Path, ":");
|
||||
|
||||
Reference in New Issue
Block a user