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