delete AsmOutStream;
delete TheTargetData;
- delete TheModule;
delete ModuleProvider;
delete CodeGenPasses;
delete PerModulePasses;
Gen->InitializeTU(TU);
TheModule = Gen->GetModule();
+ ModuleProvider = new ExistingModuleProvider(TheModule);
TheTargetData =
new llvm::TargetData(TU.getContext().Target.getTargetDescription());
}
FunctionPassManager *BackendConsumer::getCodeGenPasses() const {
if (!CodeGenPasses) {
- ModuleProvider = new ExistingModuleProvider(TheModule);
CodeGenPasses = new FunctionPassManager(ModuleProvider);
CodeGenPasses->add(new TargetData(*TheTargetData));
}
FunctionPassManager *BackendConsumer::getPerFunctionPasses() const {
if (!PerFunctionPasses) {
- PerFunctionPasses =
- new FunctionPassManager(new ExistingModuleProvider(TheModule));
+ PerFunctionPasses = new FunctionPassManager(ModuleProvider);
PerFunctionPasses->add(new TargetData(*TheTargetData));
}