Lines Matching full:children

86   assert(def->getValue("children") &&
87 "CombinedPred must have a value 'children'");
88 return def->getValueAsListOfDefs("children");
109 SmallVector<PredNode *, 4> children;
157 // have children, and perform leaf substitutions inplace. Note that after
196 rootNode->children.push_back(childTree);
203 // children is known to be false(true), the result is also false(true).
204 // Furthermore, for AND(OR) combined predicates, children that are known to be
214 node->children.clear();
219 node->children.clear();
238 if (node->kind == PredCombinerKind::And && node->children.empty()) {
243 if (node->kind == PredCombinerKind::Or && node->children.empty()) {
252 llvm::SmallVector<PredNode *, 4> children;
253 std::swap(node->children, children);
255 for (auto &child : children) {
263 node->children.push_back(simplifiedChild);
287 node->children.clear();
294 node->children.push_back(simplifiedChild);
301 static std::string combineBinary(ArrayRef<std::string> children,
304 if (children.empty())
307 auto size = children.size();
309 return children.front();
313 os << '(' << children.front() << ')';
315 os << ' ' << combiner << " (" << children[i] << ')';
321 static std::string combineNot(ArrayRef<std::string> children) {
322 assert(children.size() == 1 && "expected exactly one child predicate of Neg");
323 return (Twine("!(") + children.front() + Twine(')')).str();
329 // Immediately return for non-combiner predicates that don't have children.
337 // Recurse into children.
339 childExpressions.reserve(root.children.size());
340 for (const auto &child : root.children)