private static void collectDynamicValuePredicates(ExprNodeDesc pred, NodeProcessorCtx ctx)
          throws SemanticException {
    // create a walker which walks the tree in a DFS manner while maintaining
    // the operator stack. The dispatcher
    // generates the plan from the operator tree
    Map<SemanticRule, SemanticNodeProcessor> exprRules = new LinkedHashMap<SemanticRule, SemanticNodeProcessor>();
    exprRules.put(new RuleRegExp("R1", ExprNodeDynamicValueDesc.class.getName() + "%"), new DynamicValuePredicateProc());
    SemanticDispatcher disp = new DefaultRuleDispatcher(null, exprRules, ctx);
    SemanticGraphWalker egw = new DefaultGraphWalker(disp);
    List<Node> startNodes = new ArrayList<Node>();
    startNodes.add(pred);

    egw.startWalking(startNodes, null);
  }
Find out if this predicate constains the synthetic predicate to be removed
ql/src/java/org/apache/hadoop/hive/ql/parse/GenTezUtils.java