Home | History | Annotate | Download | only in Core

Lines Matching refs:sym

373 void SymbolReaper::markDependentsLive(SymbolRef sym) {
375 SymbolMapTy::iterator LI = TheLiving.find(sym);
381 if (const SymbolRefSmallVectorTy *Deps = SymMgr.getDependentSymbols(sym)) {
391 void SymbolReaper::markLive(SymbolRef sym) {
392 TheLiving[sym] = NotProcessed;
393 TheDead.erase(sym);
394 markDependentsLive(sym);
401 void SymbolReaper::markInUse(SymbolRef sym) {
402 if (isa<SymbolMetadata>(sym))
403 MetadataInUse.insert(sym);
406 bool SymbolReaper::maybeDead(SymbolRef sym) {
407 if (isLive(sym))
410 TheDead.insert(sym);
442 bool SymbolReaper::isLive(SymbolRef sym) {
443 if (TheLiving.count(sym)) {
444 markDependentsLive(sym);
450 switch (sym->getKind()) {
452 KnownLive = isLiveRegion(cast<SymbolRegionValue>(sym)->getRegion());
458 KnownLive = isLive(cast<SymbolDerived>(sym)->getParentSymbol());
461 KnownLive = isLiveRegion(cast<SymbolExtent>(sym)->getRegion());
464 KnownLive = MetadataInUse.count(sym) &&
465 isLiveRegion(cast<SymbolMetadata>(sym)->getRegion());
467 MetadataInUse.erase(sym);
470 KnownLive = isLive(cast<SymIntExpr>(sym)->getLHS());
473 KnownLive = isLive(cast<IntSymExpr>(sym)->getRHS());
476 KnownLive = isLive(cast<SymSymExpr>(sym)->getLHS()) &&
477 isLive(cast<SymSymExpr>(sym)->getRHS());
480 KnownLive = isLive(cast<SymbolCast>(sym)->getOperand());
485 markLive(sym);