This patch adds the ability to use -mllvm options in the linker
wrapper when performing bitcode linking or the module compilation.
This is done by passing in the LLVM argument to the clang-linker-wrapper
tool. Inside the linker-wrapper tool we invoke the CommandLine parser
solely for forwarding command line options to the clang-linker-wrapper
to the LLVM tools that also use the CommandLine parser. The actual
arguments to the linker wrapper are parsed using the Opt library
instead.
For example, in the following command the CommandLine parser will attempt to
parse abc, while the opt parser takes -mllvm <arg> and ignores it so it is
not passed to the linker arguments.
clang-linker-wrapper -mllvm -abc -- <linker-args>
As far as I can tell this is the easiest way to forward arguments to
LLVM tool invocations. If there is a better way to pass these arguments
(such as through the LTO config) let me know.