code: static Set<Integer> findLoadIndexes(final List<Instruction> instructions, final Predicate<LoadInstruction> isLoadIgnored) {
          return instructions.stream().filter(i -> i.getType() == Instruction.InstructionType.LOAD).map(i -> (LoadInstruction) i)
                  .filter(i -> !isLoadIgnored.test(i)).map(LoadInstruction::getNumber).collect(TreeSet::new, Set::add, Set::addAll);
      }
docs: Searches for all LOAD indexes which occur in the given instructions.
  The LOAD instruction is checked against the given predicate if it should be ignored.
  
  @param instructions  The instructions where to search
  @param isLoadIgnored The ignore predicate
  @return All found LOAD indexes