code: public BasicBlock getPredecessorWithEdgeType(BasicBlock target, @Type int edgeType) {
          Edge edge = getIncomingEdgeWithType(target, edgeType);
          return edge != null ? edge.getSource() : null;
      }
docs: Get the first predecessor reachable from given edge type.
  
  @param target
  the target block
  @param edgeType
  the edge type leading from the predecessor
  @return the predecessor, or null if there is no incoming edge with the
  specified edge type