mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-03 14:21:30 +00:00 
			
		
		
		
	Header files will be on the way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9298 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			38 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
//===-- ModuleProvider.cpp - Base implementation for module providers -----===//
 | 
						|
// 
 | 
						|
//                     The LLVM Compiler Infrastructure
 | 
						|
//
 | 
						|
// This file was developed by the LLVM research group and is distributed under
 | 
						|
// the University of Illinois Open Source License. See LICENSE.TXT for details.
 | 
						|
// 
 | 
						|
//===----------------------------------------------------------------------===//
 | 
						|
//
 | 
						|
// Minimal implementation of the abstract interface for providing a module.
 | 
						|
//
 | 
						|
//===----------------------------------------------------------------------===//
 | 
						|
 | 
						|
#include "llvm/ModuleProvider.h"
 | 
						|
#include "llvm/Module.h"
 | 
						|
 | 
						|
/// ctor - always have a valid Module
 | 
						|
///
 | 
						|
ModuleProvider::ModuleProvider() : TheModule(0) { }
 | 
						|
 | 
						|
/// dtor - when we leave, we take our Module with us
 | 
						|
///
 | 
						|
ModuleProvider::~ModuleProvider() {
 | 
						|
  delete TheModule;
 | 
						|
}
 | 
						|
 | 
						|
/// materializeFunction - make sure the given function is fully read.
 | 
						|
///
 | 
						|
Module* ModuleProvider::materializeModule() {
 | 
						|
  assert(TheModule && "Attempting to materialize an invalid module!");
 | 
						|
 | 
						|
  for (Module::iterator i = TheModule->begin(), e = TheModule->end();
 | 
						|
       i != e; ++i)
 | 
						|
    materializeFunction(i);
 | 
						|
 | 
						|
  return TheModule;
 | 
						|
}
 |