When bugpoint attempts to find the other executables it needs to run,
such as opt or clang, it tries searching the user's PATH. However,
in many cases, the 'bugpoint' executable is part of an LLVM build, and
the 'opt' executable it's looking for is in that same directory.
Many LLVM tools handle this case by using the Paths parameter of
llvm::sys::findProgramByName, passing the parent path of the currently
running executable. Do this same thing for bugpoint. However, to
preserve the current behavior exactly, first search the user's PATH,
and then search for 'opt' in the directory containing 'bugpoint'.
Test Plan:
check-llvm. Many of the existing bugpoint tests no longer need to use the
--opt-command option as a result of these changes.
Won't this pick up an opt in the PATH now if one is available? That would make the test unstable.
Similar in the other tests.