/// Track virtual registers created for exception pointers.
DenseMap<const Value *, unsigned> CatchPadExceptionPointers;
- // Keep track of frame indices allocated for statepoints as they could be used
- // across basic block boundaries.
- // Key of the map is statepoint instruction, value is a map from spilled
- // llvm Value to the optional stack stack slot index.
- // If optional is unspecified it means that we have visited this value
- // but didn't spill it.
+ /// Keep track of frame indices allocated for statepoints as they could be
+ /// used across basic block boundaries. Key of the map is statepoint
+ /// instruction, value is a map from spilled llvm Value to the optional stack
+ /// stack slot index. If optional is unspecified it means that we have
+ /// visited this value but didn't spill it.
typedef DenseMap<const Value*, Optional<int>> StatepointSpilledValueMapTy;
DenseMap<const Instruction*, StatepointSpilledValueMapTy>
StatepointRelocatedValues;
/// StackMap section. It has no effect on the number of spill slots required
/// or the actual lowering.
static void
-removeDuplicatesGCPtrs(SmallVectorImpl<const Value *> &Bases,
- SmallVectorImpl<const Value *> &Ptrs,
- SmallVectorImpl<const GCRelocateInst *> &Relocs,
- SelectionDAGBuilder &Builder) {
+removeDuplicateGCPtrs(SmallVectorImpl<const Value *> &Bases,
+ SmallVectorImpl<const Value *> &Ptrs,
+ SmallVectorImpl<const GCRelocateInst *> &Relocs,
+ SelectionDAGBuilder &Builder) {
// This is horribly inefficient, but I don't care right now
SmallSet<SDValue, 32> Seen;
StatepointLowering.startNewStatepoint(*this);
#ifndef NDEBUG
- // We schedule gc relocates before removeDuplicatesGCPtrs since we _will_
- // encounter the duplicate gc relocates we elide in removeDuplicatesGCPtrs.
+ // We schedule gc relocates before removeDuplicateGCPtrs since we _will_
+ // encounter the duplicate gc relocates we elide in removeDuplicateGCPtrs.
for (auto *Reloc : SI.GCRelocates)
if (Reloc->getParent() == SI.StatepointInstr->getParent())
StatepointLowering.scheduleRelocCall(*Reloc);
// input. Also has the effect of removing duplicates in the original
// llvm::Value input list as well. This is a useful optimization for
// reducing the size of the StackMap section. It has no other impact.
- removeDuplicatesGCPtrs(SI.Bases, SI.Ptrs, SI.GCRelocates, *this);
+ removeDuplicateGCPtrs(SI.Bases, SI.Ptrs, SI.GCRelocates, *this);
assert(SI.Bases.size() == SI.Ptrs.size() &&
SI.Ptrs.size() == SI.GCRelocates.size());