From a90b2c7240ef4b2db134cc3ae55210652508f073 Mon Sep 17 00:00:00 2001 From: Owen Anderson Date: Sat, 27 May 2006 00:31:37 +0000 Subject: [PATCH] A few small clean-ups, and the addition of an LCSSA statistic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28512 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Utils/LCSSA.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/Transforms/Utils/LCSSA.cpp b/lib/Transforms/Utils/LCSSA.cpp index 43f331d71b2..c8d9487a6d4 100644 --- a/lib/Transforms/Utils/LCSSA.cpp +++ b/lib/Transforms/Utils/LCSSA.cpp @@ -31,18 +31,22 @@ #include "llvm/Pass.h" #include "llvm/Function.h" #include "llvm/Instructions.h" +#include "llvm/ADT/Statistic.h" #include "llvm/Analysis/Dominators.h" #include "llvm/Analysis/LoopInfo.h" #include "llvm/Support/CFG.h" #include -#include #include using namespace llvm; namespace { + static Statistic<> NumLCSSA("lcssa", "Number of times LCSSA was applied"); + class LCSSA : public FunctionPass { public: + + LoopInfo *LI; // Loop information DominatorTree *DT; // Dominator Tree for the current Loop... DominanceFrontier *DF; // Current Dominance Frontier @@ -51,7 +55,8 @@ namespace { bool visitSubloop(Loop* L); /// This transformation requires natural loop information & requires that - /// loop preheaders be inserted into the CFG... + /// loop preheaders be inserted into the CFG. It maintains both of these, + /// as well as the CFG. It also requires dominator information. /// virtual void getAnalysisUsage(AnalysisUsage &AU) const { AU.setPreservesCFG(); @@ -102,6 +107,7 @@ bool LCSSA::visitSubloop(Loop* L) { for (std::set::iterator I = AffectedValues.begin(), E = AffectedValues.end(); I != E; ++I) { + ++NumLCSSA; // We are applying the transformation for (std::vector::iterator BBI = exitBlocks.begin(), BBE = exitBlocks.end(); BBI != BBE; ++BBI) { PHINode *phi = new PHINode((*I)->getType(), "lcssa"); -- 2.34.1