Lines Matching full:roots
13 // to identify roots.
22 // In order to support this particular transformation, all stack roots are
43 /// roots.
51 /// Roots - GC roots in the current function. Each is a pair of the
53 std::vector<std::pair<CallInst*,AllocaInst*> > Roots;
209 for (unsigned I = 0; I != Roots.size(); ++I) {
210 Constant *C = cast<Constant>(Roots[I].first->getArgOperand(1));
220 ConstantInt::get(Int32Ty, Roots.size(), false),
262 for (size_t I = 0; I != Roots.size(); I++)
263 EltTys.push_back(Roots[I].second->getAllocatedType());
272 // int32_t NumRoots; // Number of roots in stack frame.
274 // void *Meta[]; // May be absent for roots without metadata.
287 // void *Roots[]; // Stack roots (in-place array, so we pretend).
326 assert(Roots.empty() && "Not cleaned up?");
338 Roots.push_back(Pair);
343 // Number roots with metadata (usually empty) at the beginning, so that the
345 Roots.insert(Roots.begin(), MetaRoots.begin(), MetaRoots.end());
380 // If there are no roots in this function, then there is no need to add a
382 if (Roots.empty())
406 for (unsigned I = 0, E = Roots.size(); I != E; ++I) {
411 AllocaInst *OriginalAlloca = Roots[I].second;
445 for (unsigned I = 0, E = Roots.size(); I != E; ++I) {
446 Roots[I].first->eraseFromParent();
447 Roots[I].second->eraseFromParent();
450 Roots.clear();