We are seeing use cases in outputting both ifs text stub and elf stub files from a single shared object in Fuchsia's build system. Instead of generating 2 llvm-ifs invocations, which will make llvm-ifs parse input ELF files twice, it is more efficient to just make llvm-ifs capable to generate every supported output format in a single run.
This patch adds "output-ifs", "output-elf" and "output-tbd" flags while still retain old "output-format", "output" flags just in case for compatibility. We can remove these old flags in a later revision.
Does this mean that if someone passes --output-elf=foo --output-elf=bar we won't take this branch because OutputELFFilePath.getNumOccurrences() == 2?