docs: private static InstructionHandle getDeepFirstInstruction(CFG cfg, BasicBlock bb) {
          InstructionHandle ih = bb.getFirstInstruction();
          if (ih != null) {
              return ih;
          }
          Iterator<Edge> iei = cfg.outgoingEdgeIterator(bb);
          while (iei.hasNext()) {
              Edge e = iei.next();
              if (EdgeTypes.FALL_THROUGH_EDGE == e.getType()) {
                  return getDeepFirstInstruction(cfg, e.getTarget());
              }
          }
          return null;
      }