1*5f757f3fSDimitry Andric //===--- llvm/CodeGen/SelectOptimize.h ---------------------------*- C++ -*-==// 2*5f757f3fSDimitry Andric // 3*5f757f3fSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*5f757f3fSDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 5*5f757f3fSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*5f757f3fSDimitry Andric // 7*5f757f3fSDimitry Andric //===----------------------------------------------------------------------===// 8*5f757f3fSDimitry Andric /// 9*5f757f3fSDimitry Andric /// \file 10*5f757f3fSDimitry Andric /// This file contains the declaration of the SelectOptimizePass class, 11*5f757f3fSDimitry Andric /// its corresponding pass name is `select-optimize`. 12*5f757f3fSDimitry Andric /// 13*5f757f3fSDimitry Andric //===----------------------------------------------------------------------===// 14*5f757f3fSDimitry Andric 15*5f757f3fSDimitry Andric #ifndef LLVM_CODEGEN_SELECTOPTIMIZE_H 16*5f757f3fSDimitry Andric #define LLVM_CODEGEN_SELECTOPTIMIZE_H 17*5f757f3fSDimitry Andric 18*5f757f3fSDimitry Andric #include "llvm/IR/PassManager.h" 19*5f757f3fSDimitry Andric 20*5f757f3fSDimitry Andric namespace llvm { 21*5f757f3fSDimitry Andric 22*5f757f3fSDimitry Andric class TargetMachine; 23*5f757f3fSDimitry Andric 24*5f757f3fSDimitry Andric class SelectOptimizePass : public PassInfoMixin<SelectOptimizePass> { 25*5f757f3fSDimitry Andric const TargetMachine *TM; 26*5f757f3fSDimitry Andric 27*5f757f3fSDimitry Andric public: SelectOptimizePass(const TargetMachine * TM)28*5f757f3fSDimitry Andric explicit SelectOptimizePass(const TargetMachine *TM) : TM(TM) {} 29*5f757f3fSDimitry Andric PreservedAnalyses run(Function &F, FunctionAnalysisManager &FAM); 30*5f757f3fSDimitry Andric }; 31*5f757f3fSDimitry Andric 32*5f757f3fSDimitry Andric } // namespace llvm 33*5f757f3fSDimitry Andric 34*5f757f3fSDimitry Andric #endif // LLVM_CODEGEN_SELECTOPTIMIZE_H 35