xref: /llvm-project/llvm/include/llvm/CodeGen/InterleavedAccess.h (revision cd6e462d012f289cc4ec12927ca8198f9ed1469e)
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