Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:48:20

0001 //===- polly/MaximalStaticExpansion.h - expand memory access -*- C++ -*-======//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 //
0009 // This pass fully expand the memory accesses of a Scop to get rid of
0010 // dependencies.
0011 //
0012 //===----------------------------------------------------------------------===//
0013 
0014 #ifndef POLLY_MAXIMALSTATICEXPANSION_H
0015 #define POLLY_MAXIMALSTATICEXPANSION_H
0016 
0017 #include "polly/ScopPass.h"
0018 #include "llvm/IR/PassManager.h"
0019 
0020 namespace polly {
0021 
0022 class MaximalStaticExpansionPass
0023     : public llvm::PassInfoMixin<MaximalStaticExpansionPass> {
0024 public:
0025   llvm::PreservedAnalyses run(Scop &, ScopAnalysisManager &,
0026                               ScopStandardAnalysisResults &, SPMUpdater &);
0027 };
0028 
0029 struct MaximalStaticExpansionPrinterPass
0030     : llvm::PassInfoMixin<MaximalStaticExpansionPrinterPass> {
0031   MaximalStaticExpansionPrinterPass(raw_ostream &OS) : OS(OS) {}
0032 
0033   PreservedAnalyses run(Scop &S, ScopAnalysisManager &,
0034                         ScopStandardAnalysisResults &SAR, SPMUpdater &);
0035 
0036 private:
0037   llvm::raw_ostream &OS;
0038 };
0039 
0040 } // namespace polly
0041 
0042 #endif /* POLLY_MAXIMALSTATICEXPANSION_H */