blob: 88827b2700887bcd6cac8b3b4e5fe8aa6d474e81 [file] [log] [blame]
//===- polly/MaximalStaticExpansion.h - expand memory access -*- C++ -*-======//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
// This pass fully expand the memory accesses of a Scop to get rid of
// dependencies.
//
//===----------------------------------------------------------------------===//
#ifndef POLLY_MAXIMALSTATICEXPANSION_H
#define POLLY_MAXIMALSTATICEXPANSION_H
#include "polly/ScopPass.h"
#include "llvm/IR/PassManager.h"
namespace polly {
class MaximalStaticExpansionPass
: public llvm::PassInfoMixin<MaximalStaticExpansionPass> {
public:
llvm::PreservedAnalyses run(Scop &, ScopAnalysisManager &,
ScopStandardAnalysisResults &, SPMUpdater &);
};
struct MaximalStaticExpansionPrinterPass
: llvm::PassInfoMixin<MaximalStaticExpansionPrinterPass> {
MaximalStaticExpansionPrinterPass(raw_ostream &OS) : OS(OS) {}
PreservedAnalyses run(Scop &S, ScopAnalysisManager &,
ScopStandardAnalysisResults &SAR, SPMUpdater &);
private:
llvm::raw_ostream &OS;
};
} // namespace polly
#endif /* POLLY_MAXIMALSTATICEXPANSION_H */