#include "polly/Canonicalization.h"
#include "polly/LinkAllPasses.h"
#include "polly/Options.h"
#include "llvm/Analysis/GlobalsModRef.h"
#include "llvm/Analysis/ProfileSummaryInfo.h"
#include "llvm/IR/LegacyPassManager.h"
#include "llvm/Transforms/IPO.h"
#include "llvm/Transforms/IPO/FunctionAttrs.h"
#include "llvm/Transforms/InstCombine/InstCombine.h"
#include "llvm/Transforms/Scalar.h"
#include "llvm/Transforms/Scalar/EarlyCSE.h"
#include "llvm/Transforms/Scalar/IndVarSimplify.h"
#include "llvm/Transforms/Scalar/LoopRotation.h"
#include "llvm/Transforms/Scalar/Reassociate.h"
#include "llvm/Transforms/Scalar/SimplifyCFG.h"
#include "llvm/Transforms/Scalar/TailRecursionElimination.h"
#include "llvm/Transforms/Utils.h"
#include "llvm/Transforms/Utils/Mem2Reg.h"
usingnamespacellvm;
usingnamespacepolly;
static cl::opt<bool>
PollyInliner("polly-run-inliner",
cl::desc("Run an early inliner pass before Polly"), cl::Hidden,
cl::cat(PollyCategory));
void polly::registerCanonicalicationPasses(llvm::legacy::PassManagerBase &PM) { … }
static ModuleInlinerWrapperPass
buildInlinePasses(llvm::OptimizationLevel Level) { … }
FunctionPassManager
polly::buildCanonicalicationPassesForNPM(llvm::ModulePassManager &MPM,
llvm::OptimizationLevel Level) { … }
namespace {
class PollyCanonicalize final : public ModulePass { … };
}
PollyCanonicalize::~PollyCanonicalize() { … }
void PollyCanonicalize::getAnalysisUsage(AnalysisUsage &AU) const { … }
void PollyCanonicalize::releaseMemory() { … }
bool PollyCanonicalize::runOnModule(Module &M) { … }
void PollyCanonicalize::print(raw_ostream &OS, const Module *) const { … }
char PollyCanonicalize::ID = …;
Pass *polly::createPollyCanonicalizePass() { … }
INITIALIZE_PASS_BEGIN(PollyCanonicalize, "polly-canonicalize",
"Polly - Run canonicalization passes", false, false)
INITIALIZE_PASS_END(PollyCanonicalize, "polly-canonicalize",
"Polly - Run canonicalization passes", false, false)