//===- LoopDependenceAnalysis.cpp - LDA Implementation ----------*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // This is the (beginning) of an implementation of a loop dependence analysis // framework, which is used to detect dependences in memory accesses in loops. // // Please note that this is work in progress and the interface is subject to // change. // // TODO: adapt as implementation progresses. // //===----------------------------------------------------------------------===// #define DEBUG_TYPE "lda" #include "llvm/Analysis/LoopDependenceAnalysis.h" #include "llvm/Analysis/LoopPass.h" #include "llvm/Analysis/ScalarEvolution.h" using namespace llvm; LoopPass *llvm::createLoopDependenceAnalysisPass() { return new LoopDependenceAnalysis(); } static RegisterPass R("lda", "Loop Dependence Analysis", false, true); char LoopDependenceAnalysis::ID = 0; //===----------------------------------------------------------------------===// // LoopDependenceAnalysis Implementation //===----------------------------------------------------------------------===// bool LoopDependenceAnalysis::runOnLoop(Loop *L, LPPassManager &) { this->L = L; SE = &getAnalysis(); return false; } void LoopDependenceAnalysis::getAnalysisUsage(AnalysisUsage &AU) const { AU.setPreservesAll(); AU.addRequired(); }