X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;ds=inline;f=include%2Fllvm%2FAnalysis%2FIntervalPartition.h;h=bce84be2f4fd2cd391ea904f655f76cb6bb57240;hb=b09c146b116359616f6cbd4c8b3328607e00ff42;hp=45e282acdfd5b8f2dc72abbd1588a2bfa830848c;hpb=6fbcc26f1460eaee4e0eb8b426fc1ff0c7af11be;p=oota-llvm.git diff --git a/include/llvm/Analysis/IntervalPartition.h b/include/llvm/Analysis/IntervalPartition.h index 45e282acdfd..bce84be2f4f 100644 --- a/include/llvm/Analysis/IntervalPartition.h +++ b/include/llvm/Analysis/IntervalPartition.h @@ -1,10 +1,10 @@ //===- IntervalPartition.h - Interval partition Calculation -----*- C++ -*-===// -// +// // The LLVM Compiler Infrastructure // -// This file was developed by the LLVM research group and is distributed under -// the University of Illinois Open Source License. See LICENSE.TXT for details. -// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// //===----------------------------------------------------------------------===// // // This file contains the declaration of the IntervalPartition class, which @@ -25,13 +25,16 @@ #include "llvm/Analysis/Interval.h" #include "llvm/Pass.h" +#include + +namespace llvm { //===----------------------------------------------------------------------===// // // IntervalPartition - This class builds and holds an "interval partition" for // a function. This partition divides the control flow graph into a set of -// maximal intervals, as defined with the properties above. Intuitively, a -// BasicBlock is a (possibly nonexistent) loop with a "tail" of non looping +// maximal intervals, as defined with the properties above. Intuitively, an +// interval is a (possibly nonexistent) loop with a "tail" of non looping // nodes following it. // class IntervalPartition : public FunctionPass { @@ -43,7 +46,11 @@ class IntervalPartition : public FunctionPass { std::vector Intervals; public: - IntervalPartition() : RootInterval(0) {} + static char ID; // Pass identification, replacement for typeid + + IntervalPartition() : FunctionPass(ID), RootInterval(0) { + initializeIntervalPartitionPass(*PassRegistry::getPassRegistry()); + } // run - Calculate the interval partition for this function virtual bool runOnFunction(Function &F); @@ -54,11 +61,8 @@ public: // IntervalPartition(IntervalPartition &I, bool); - // Destructor - Free memory - ~IntervalPartition() { destroy(); } - // print - Show contents in human readable format... - virtual void print(std::ostream &O) const; + virtual void print(raw_ostream &O, const Module* = 0) const; // getRootInterval() - Return the root interval that contains the starting // block of the function. @@ -84,10 +88,10 @@ public: // Interface to Intervals vector... const std::vector &getIntervals() const { return Intervals; } -private: - // destroy - Reset state back to before function was analyzed - void destroy(); + // releaseMemory - Reset state back to before function was analyzed + void releaseMemory(); +private: // addIntervalToPartition - Add an interval to the internal list of intervals, // and then add mappings from all of the basic blocks in the interval to the // interval itself (in the IntervalMap). @@ -102,4 +106,6 @@ private: void updatePredecessors(Interval *Int); }; +} // End llvm namespace + #endif