JDK-8340786 introduced a predicate iterator that work together with visitors. This task should replace the existing predicate walking code found for Loop Peeling with a new PredicateVisitor that uses the PredicateIterator class. In follow-up tasks, we can do the same replacement for Main/Post loops, Loop Unswitching/Removing useless assertion predicate and Loop Unrolling.
Once these replacements are done, we can remove the UCTs for Template Assertion Predicates and fix the Template Assertion Predicate matching in a single place (i.e. TemplateAssertionPredicate::is_predicate()).