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 Andricint main(int argc, char **argv) { return optMain(argc, argv, {}); } 26