1*700637cbSDimitry Andric //===- AMDGPURemoveIncompatibleFunctions.h ----------------------*- C++- *-===// 2*700637cbSDimitry Andric // 3*700637cbSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*700637cbSDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 5*700637cbSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*700637cbSDimitry Andric // 7*700637cbSDimitry Andric //===----------------------------------------------------------------------===// 8*700637cbSDimitry Andric 9*700637cbSDimitry Andric #ifndef LLVM_LIB_TARGET_AMDGPU_REMOVEINCOMPATIBLEFUNCTIONS_H 10*700637cbSDimitry Andric #define LLVM_LIB_TARGET_AMDGPU_REMOVEINCOMPATIBLEFUNCTIONS_H 11*700637cbSDimitry Andric 12*700637cbSDimitry Andric #include "llvm/IR/PassManager.h" 13*700637cbSDimitry Andric #include "llvm/Target/TargetMachine.h" 14*700637cbSDimitry Andric 15*700637cbSDimitry Andric namespace llvm { 16*700637cbSDimitry Andric class AMDGPURemoveIncompatibleFunctionsPass 17*700637cbSDimitry Andric : public PassInfoMixin<AMDGPURemoveIncompatibleFunctionsPass> { 18*700637cbSDimitry Andric const TargetMachine *TM; 19*700637cbSDimitry Andric 20*700637cbSDimitry Andric public: AMDGPURemoveIncompatibleFunctionsPass(const TargetMachine & TM)21*700637cbSDimitry Andric AMDGPURemoveIncompatibleFunctionsPass(const TargetMachine &TM) : TM(&TM) {} 22*700637cbSDimitry Andric PreservedAnalyses run(Module &M, ModuleAnalysisManager &MAM); 23*700637cbSDimitry Andric }; 24*700637cbSDimitry Andric } // namespace llvm 25*700637cbSDimitry Andric 26*700637cbSDimitry Andric #endif // LLVM_LIB_TARGET_AMDGPU_REMOVEINCOMPATIBLEFUNCTIONS_H 27