MCPcopy Create free account
hub / github.com/Samsung/UTopia / pass

Method pass

lib/rootdefanalysis/RDAnalyzer.cpp:382–401  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

380}
381
382std::set<RDNode> RDAnalyzer::pass(RDNode &Node) {
383 if (Node.isRootDefinition())
384 return {Node};
385
386 auto Prevs = getPrevs(Node);
387 // There is no path to explore, mark it not to futher tracing.
388 if (Prevs.empty()) {
389 RDNode NewNode(Node);
390 NewNode.setStopTracing(true);
391 return {NewNode};
392 }
393
394 std::set<RDNode> Result;
395 for (auto &Prev : Prevs) {
396 for (auto &Found : trace(*const_cast<RDNode *>(&Prev))) {
397 mergeRDNode(Result, Found);
398 }
399 }
400 return Result;
401}
402
403std::set<RDNode> RDAnalyzer::handleRegister(RDNode &Node, CallBase &CB) {
404 const auto *CF = util::getCalledFunction(CB);

Callers

nothing calls this directly

Calls 3

isRootDefinitionMethod · 0.80
emptyMethod · 0.80
setStopTracingMethod · 0.80

Tested by

no test coverage detected