mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-12 01:25:10 +00:00
Revamp the ValueMapper interfaces in a couple ways:
1. Take a flags argument instead of a bool. This makes it more clear to the reader what it is used for. 2. Add a flag that says that "remapping a value not in the map is ok". 3. Reimplement MapValue to share a bunch of code and be a lot more efficient. For lookup failures, don't drop null values into the map. 4. Using the new flag a bunch of code can vaporize in LinkModules and LoopUnswitch, kill it. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123058 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -89,8 +89,7 @@ Module *llvm::CloneModule(const Module *M,
|
||||
GlobalVariable *GV = cast<GlobalVariable>(VMap[I]);
|
||||
if (I->hasInitializer())
|
||||
GV->setInitializer(cast<Constant>(MapValue(I->getInitializer(),
|
||||
VMap,
|
||||
true)));
|
||||
VMap, RF_None)));
|
||||
GV->setLinkage(I->getLinkage());
|
||||
GV->setThreadLocal(I->isThreadLocal());
|
||||
GV->setConstant(I->isConstant());
|
||||
@@ -121,7 +120,7 @@ Module *llvm::CloneModule(const Module *M,
|
||||
GlobalAlias *GA = cast<GlobalAlias>(VMap[I]);
|
||||
GA->setLinkage(I->getLinkage());
|
||||
if (const Constant* C = I->getAliasee())
|
||||
GA->setAliasee(cast<Constant>(MapValue(C, VMap, true)));
|
||||
GA->setAliasee(cast<Constant>(MapValue(C, VMap, RF_None)));
|
||||
}
|
||||
|
||||
// And named metadata....
|
||||
@@ -130,7 +129,8 @@ Module *llvm::CloneModule(const Module *M,
|
||||
const NamedMDNode &NMD = *I;
|
||||
NamedMDNode *NewNMD = New->getOrInsertNamedMetadata(NMD.getName());
|
||||
for (unsigned i = 0, e = NMD.getNumOperands(); i != e; ++i)
|
||||
NewNMD->addOperand(cast<MDNode>(MapValue(NMD.getOperand(i), VMap, true)));
|
||||
NewNMD->addOperand(cast<MDNode>(MapValue(NMD.getOperand(i), VMap,
|
||||
RF_None)));
|
||||
}
|
||||
|
||||
return New;
|
||||
|
Reference in New Issue
Block a user