/**
   * This does not filter non-heap nodes anymore, because they should also be included in the
   * controlflow Therefore we have to ignore them later on during the dataflow analysis.
   *
   * @param params
   * @return
   */
  private static final Set<AbstractParameterNode> filterExitNode(IParamSet<?> params) {
    Set<AbstractParameterNode> result = HashSetFactory.make();

    if (params == null) {
      return result;
    }

    for (AbstractParameterNode node : params) {
      if (!node.isExit()) {
        result.add(node);
      }
    }

    return result;
  }
 public String toString() {
   if (param != null) {
     return "cfg: " + param.toString();
   } else if (bb != null) {
     return "cfg: " + Util.prettyBasicBlock(bb);
   } else if (call != null) {
     return "cfg: " + call;
   } else if (artificial != null) {
     return "cfg: " + artificial;
   } else {
     return "cfg: empty";
   }
 }