Lines Matching defs:VMap

44 BasicBlock *llvm::CloneBasicBlock(const BasicBlock *BB, ValueToValueMapTy &VMap,
63 VMap[&I] = NewInst; // Add instruction map to value.
87 ValueToValueMapTy &VMap,
102 NewFunc->setPersonalityFn(MapValue(OldFunc->getPersonalityFn(), VMap,
107 NewFunc->setPrefixData(MapValue(OldFunc->getPrefixData(), VMap,
113 NewFunc->setPrologueData(MapValue(OldFunc->getPrologueData(), VMap,
121 // Clone any argument attributes that are present in the VMap.
123 if (Argument *NewArg = dyn_cast<Argument>(VMap[&OldArg])) {
190 ValueToValueMapTy &VMap,
199 *MapMetadata(MD.second, VMap, RemapFlag, TypeMapper,
205 ValueToValueMapTy &VMap, RemapFlags RemapFlag,
222 CloneBasicBlock(&BB, VMap, NameSuffix, &NewFunc, CodeInfo);
225 VMap[&BB] = CBB;
236 VMap[OldBBAddr] = BlockAddress::get(&NewFunc, CBB);
245 // references as we go. This uses VMap to do all the hard work.
247 BB = cast<BasicBlock>(VMap[&OldFunc.front()])->getIterator(),
253 RemapInstruction(&II, VMap, RemapFlag, TypeMapper, Materializer,
255 RemapDbgRecordRange(II.getModule(), II.getDbgRecordRange(), VMap,
261 // VMap values.
263 ValueToValueMapTy &VMap,
274 assert(VMap.count(&I) && "No mapping from source argument specified!");
279 CloneFunctionAttributesInto(NewFunc, OldFunc, VMap, ModuleLevelChanges,
325 CloneFunctionMetadataInto(*NewFunc, *OldFunc, VMap, RemapFlag, TypeMapper,
328 CloneFunctionBodyInto(*NewFunc, *OldFunc, VMap, RemapFlag, Returns,
356 MapMetadata(Unit, VMap, RF_None, TypeMapper, Materializer);
363 /// module. Also, any references specified in the VMap are changed to refer to
365 /// the function are in the VMap, the arguments are deleted from the resultant
366 /// function. The VMap is updated to include mappings from all of the
369 Function *llvm::CloneFunction(Function *F, ValueToValueMapTy &VMap,
374 // the VMap. If so, we need to not add the arguments to the arg ty vector
377 if (VMap.count(&I) == 0) // Haven't mapped the argument to anything yet?
393 if (VMap.count(&I) == 0) { // Is this argument preserved?
395 VMap[&I] = &*DestI++; // Add mapping to VMap
399 CloneFunctionInto(NewF, F, VMap, CloneFunctionChangeType::LocalChangesOnly,
410 ValueToValueMapTy &VMap;
422 : NewFunc(newFunc), OldFunc(oldFunc), VMap(valueMap),
512 WeakTrackingVH &BBEntry = VMap[BB];
536 VMap[OldBBAddr] = BlockAddress::get(NewFunc, NewBB);
583 RemapInstruction(NewInst, VMap,
593 VMap[&*II] = V;
602 VMap[&*II] = NewInst; // Add instruction map to value.
635 Value *V = VMap.lookup(BI->getCondition());
642 VMap[OldTI] = BranchInst::Create(Dest, NewBB);
651 Value *V = VMap.lookup(SI->getCondition());
657 VMap[OldTI] = BranchInst::Create(Dest, NewBB);
671 VMap[OldTI] = NewInst; // Add instruction map to value.
705 ValueToValueMapTy &VMap,
720 assert(VMap.count(&II) && "No mapping from source argument specified!");
723 PruningFunctionCloner PFC(NewFunc, OldFunc, VMap, ModuleLevelChanges,
758 Value *V = VMap.lookup(&BI);
771 if (isa<PHINode>(VMap[&PN]))
779 RemapInstruction(NewBB->getTerminator(), VMap,
790 BasicBlock *NewBB = cast<BasicBlock>(VMap[OldBB]);
798 PHINode *PN = cast<PHINode>(VMap[OPN]);
800 Value *V = VMap.lookup(PN->getIncomingBlock(pred));
803 MapValue(PN->getIncomingValue(pred), VMap,
857 assert(VMap[&*OldI] == PN && "VMap mismatch");
858 VMap[&*OldI] = NV;
878 auto *NewI = dyn_cast_or_null<Instruction>(VMap.lookup(&I));
888 // Did not erase it? Restore the new instruction into VMap previously
890 VMap[&I] = NewI;
906 cast_or_null<DbgVariableIntrinsic>(VMap.lookup(DVI)))
907 RemapInstruction(NewDVI, VMap,
914 Function::iterator Begin = cast<BasicBlock>(VMap[StartingBB])->getIterator();
917 RemapDbgRecordRange(I.getModule(), I.getDbgRecordRange(), VMap,
991 for (Function::iterator I = cast<BasicBlock>(VMap[StartingBB])->getIterator(),
1006 Function *NewFunc, const Function *OldFunc, ValueToValueMapTy &VMap,
1009 CloneAndPruneIntoFromInst(NewFunc, OldFunc, &OldFunc->front().front(), VMap,
1013 /// Remaps instructions in \p Blocks using the mapping in \p VMap.
1015 ValueToValueMapTy &VMap) {
1019 RemapDbgRecordRange(Inst.getModule(), Inst.getDbgRecordRange(), VMap,
1021 RemapInstruction(&Inst, VMap,
1033 Loop *OrigLoop, ValueToValueMapTy &VMap,
1050 BasicBlock *NewPH = CloneBasicBlock(OrigPH, VMap, NameSuffix, F);
1052 VMap[OrigPH] = NewPH;
1082 BasicBlock *NewBB = CloneBasicBlock(BB, VMap, NameSuffix, F);
1083 VMap[BB] = NewBB;
1099 LMap[CurLoop]->moveToHeader(cast<BasicBlock>(VMap[BB]));
1103 DT->changeImmediateDominator(cast<BasicBlock>(VMap[BB]),
1104 cast<BasicBlock>(VMap[IDomBB]));