Lines Matching refs:root
161 buildPredicateTree(const Pred &root,
166 rootNode->kind = getPredCombinerKind(root);
167 rootNode->predicate = &root;
168 if (!root.isCombined()) {
169 rootNode->expr = root.getCondition();
178 const auto &substPred = static_cast<const SubstLeavesPred &>(root);
184 const auto &concatPred = static_cast<const ConcatPred &>(root);
192 auto combined = static_cast<const CombinedPred &>(root);
328 static std::string getCombinedCondition(const PredNode &root) {
330 if (root.kind == PredCombinerKind::Leaf)
331 return root.expr;
332 if (root.kind == PredCombinerKind::True)
334 if (root.kind == PredCombinerKind::False)
339 childExpressions.reserve(root.children.size());
340 for (const auto &child : root.children)
344 if (root.kind == PredCombinerKind::And)
346 if (root.kind == PredCombinerKind::Or)
348 if (root.kind == PredCombinerKind::Not)
350 if (root.kind == PredCombinerKind::Concat) {
353 return root.prefix + childExpressions.front() + root.suffix;
357 if (root.kind == PredCombinerKind::SubstLeaves) {
363 llvm::PrintFatalError(root.predicate->getLoc(), "unsupported predicate kind");