1 /*========================== begin_copyright_notice ============================ 2 3 Copyright (C) 2017-2021 Intel Corporation 4 5 SPDX-License-Identifier: MIT 6 7 ============================= end_copyright_notice ===========================*/ 8 9 #pragma once 10 11 #include "Compiler/CodeGenContextWrapper.hpp" 12 #include "Compiler/MetaDataUtilsWrapper.h" 13 #include "common/LLVMWarningsPush.hpp" 14 #include <llvm/Pass.h> 15 #include "common/LLVMWarningsPop.hpp" 16 17 18 namespace IGC 19 { 20 bool isLegalOCLVersion(int major, int minor); 21 22 // This pass Translates SPIR metadata to IGC metadata 23 class SPIRMetaDataTranslation : public llvm::ModulePass 24 { 25 public: 26 static char ID; 27 28 SPIRMetaDataTranslation(); 29 ~SPIRMetaDataTranslation()30 ~SPIRMetaDataTranslation() {} 31 32 void WarpFunctionMetadata(llvm::Module& M); 33 bool runOnModule(llvm::Module& M) override; 34 getAnalysisUsage(llvm::AnalysisUsage & AU)35 virtual void getAnalysisUsage(llvm::AnalysisUsage& AU) const override 36 { 37 AU.addRequired<CodeGenContextWrapper>(); 38 AU.addRequired<MetaDataUtilsWrapper>(); 39 } 40 41 }; 42 43 } // namespace IGC 44