mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-11 08:29:25 +00:00
For PR411:
Take an incremental step towards type plane elimination. This change separates types from values in the symbol tables by finally making use of the TypeSymbolTable class. This yields more natural interfaces for dealing with types and unclutters the SymbolTable class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32956 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
#include "llvm/Module.h"
|
||||
#include "llvm/DerivedTypes.h"
|
||||
#include "llvm/SymbolTable.h"
|
||||
#include "llvm/TypeSymbolTable.h"
|
||||
#include "llvm/Constant.h"
|
||||
#include "ValueMapper.h"
|
||||
using namespace llvm;
|
||||
@@ -42,11 +43,10 @@ Module *llvm::CloneModule(const Module *M, std::map<const Value*, Value*> &Value
|
||||
New->setModuleInlineAsm(M->getModuleInlineAsm());
|
||||
|
||||
// Copy all of the type symbol table entries over.
|
||||
const SymbolTable &SymTab = M->getSymbolTable();
|
||||
SymbolTable::type_const_iterator TypeI = SymTab.type_begin();
|
||||
SymbolTable::type_const_iterator TypeE = SymTab.type_end();
|
||||
for (; TypeI != TypeE; ++TypeI)
|
||||
New->addTypeName(TypeI->first, TypeI->second);
|
||||
const TypeSymbolTable &TST = M->getTypeSymbolTable();
|
||||
for (TypeSymbolTable::const_iterator TI = TST.begin(), TE = TST.end();
|
||||
TI != TE; ++TI)
|
||||
New->addTypeName(TI->first, TI->second);
|
||||
|
||||
// Copy all of the dependent libraries over.
|
||||
for (Module::lib_iterator I = M->lib_begin(), E = M->lib_end(); I != E; ++I)
|
||||
|
Reference in New Issue
Block a user