xref: /freebsd/contrib/llvm-project/llvm/tools/opt/opt.cpp (revision 0fca6ea1d4eea4c934cfff25ac9ee8ad6fe95583)
10b57cec5SDimitry Andric //===- opt.cpp - The LLVM Modular Optimizer -------------------------------===//
20b57cec5SDimitry Andric //
30b57cec5SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
40b57cec5SDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
50b57cec5SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
60b57cec5SDimitry Andric //
70b57cec5SDimitry Andric //===----------------------------------------------------------------------===//
80b57cec5SDimitry Andric //
90b57cec5SDimitry Andric // Optimizations may be specified an arbitrary number of times on the command
100b57cec5SDimitry Andric // line, They are run in the order specified.
110b57cec5SDimitry Andric //
120b57cec5SDimitry Andric //===----------------------------------------------------------------------===//
130b57cec5SDimitry Andric 
14*0fca6ea1SDimitry Andric #include "llvm/ADT/ArrayRef.h"
15*0fca6ea1SDimitry Andric #include <functional>
160b57cec5SDimitry Andric 
17*0fca6ea1SDimitry Andric namespace llvm {
18*0fca6ea1SDimitry Andric class PassBuilder;
190b57cec5SDimitry Andric }
200b57cec5SDimitry Andric 
21*0fca6ea1SDimitry Andric extern "C" int optMain(int argc, char **argv,
22*0fca6ea1SDimitry Andric                        llvm::ArrayRef<std::function<void(llvm::PassBuilder &)>>
23*0fca6ea1SDimitry Andric                            PassBuilderCallbacks);
245ffd83dbSDimitry Andric 
main(int argc,char ** argv)25*0fca6ea1SDimitry Andric int main(int argc, char **argv) { return optMain(argc, argv, {}); }
26