[llvm-commits] [llvm] r44480 - in /llvm/trunk/include/llvm: Analysis/LoopInfo.h CodeGen/MachineLoopInfo.h

Owen Anderson resistor at mac.com
Fri Nov 30 19:01:40 PST 2007


Author: resistor
Date: Fri Nov 30 21:01:39 2007
New Revision: 44480

URL: http://llvm.org/viewvc/llvm-project?rev=44480&view=rev
Log:
Fixes for MachineLoopInfo, mostly from Evan.  With these, it should be almost useable!

Modified:
    llvm/trunk/include/llvm/Analysis/LoopInfo.h
    llvm/trunk/include/llvm/CodeGen/MachineLoopInfo.h

Modified: llvm/trunk/include/llvm/Analysis/LoopInfo.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Analysis/LoopInfo.h?rev=44480&r1=44479&r2=44480&view=diff

==============================================================================
--- llvm/trunk/include/llvm/Analysis/LoopInfo.h (original)
+++ llvm/trunk/include/llvm/Analysis/LoopInfo.h Fri Nov 30 21:01:39 2007
@@ -141,7 +141,7 @@
 
   /// isLoopInvariant - Return true if the specified value is loop invariant
   ///
-  bool isLoopInvariant(Value *V) const {
+  inline bool isLoopInvariant(Value *V) const {
     if (Instruction *I = dyn_cast<Instruction>(V))
       return !contains(I->getParent());
     return true;  // All non-instructions are loop invariant
@@ -327,7 +327,7 @@
   /// by one each time through the loop.  If so, return the phi node that
   /// corresponds to it.
   ///
-  PHINode *getCanonicalInductionVariable() const {
+  inline PHINode *getCanonicalInductionVariable() const {
     BlockT *H = getHeader();
 
     BlockT *Incoming = 0, *Backedge = 0;
@@ -365,7 +365,7 @@
   /// the canonical induction variable value for the "next" iteration of the
   /// loop.  This always succeeds if getCanonicalInductionVariable succeeds.
   ///
-  Instruction *getCanonicalInductionVariableIncrement() const {
+  inline Instruction *getCanonicalInductionVariableIncrement() const {
     if (PHINode *PN = getCanonicalInductionVariable()) {
       bool P1InLoop = contains(PN->getIncomingBlock(1));
       return cast<Instruction>(PN->getIncomingValue(P1InLoop));
@@ -378,7 +378,7 @@
   /// of the loop executes N-1 times.  If the trip-count cannot be determined,
   /// this returns null.
   ///
-  Value *getTripCount() const {
+  inline Value *getTripCount() const {
     // Canonical loops will end with a 'cmp ne I, V', where I is the incremented
     // canonical induction variable and V is the trip count of the loop.
     Instruction *Inc = getCanonicalInductionVariableIncrement();
@@ -405,7 +405,7 @@
   }
   
   /// isLCSSAForm - Return true if the Loop is in LCSSA form
-  bool isLCSSAForm() const {
+  inline bool isLCSSAForm() const {
     // Sort the blocks vector so that we can use binary search to do quick
     // lookups.
     SmallPtrSet<BlockT*, 16> LoopBBs(block_begin(), block_end());

Modified: llvm/trunk/include/llvm/CodeGen/MachineLoopInfo.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/MachineLoopInfo.h?rev=44480&r1=44479&r2=44480&view=diff

==============================================================================
--- llvm/trunk/include/llvm/CodeGen/MachineLoopInfo.h (original)
+++ llvm/trunk/include/llvm/CodeGen/MachineLoopInfo.h Fri Nov 30 21:01:39 2007
@@ -39,14 +39,13 @@
 namespace llvm {
 
 // Provide overrides for Loop methods that don't make sense for machine loops.
-template<>
+template<> inline
 PHINode *LoopBase<MachineBasicBlock>::getCanonicalInductionVariable() const {
   assert(0 && "getCanonicalInductionVariable not supported for machine loops!");
   return 0;
 }
 
-template<>
-Instruction*
+template<> inline Instruction*
 LoopBase<MachineBasicBlock>::getCanonicalInductionVariableIncrement() const {
   assert(0 &&
      "getCanonicalInductionVariableIncrement not supported for machine loops!");
@@ -54,19 +53,19 @@
 }
 
 template<>
-bool LoopBase<MachineBasicBlock>::isLoopInvariant(Value *V) const {
+inline bool LoopBase<MachineBasicBlock>::isLoopInvariant(Value *V) const {
   assert(0 && "isLoopInvariant not supported for machine loops!");
   return false;
 }
 
 template<>
-Value *LoopBase<MachineBasicBlock>::getTripCount() const {
+inline Value *LoopBase<MachineBasicBlock>::getTripCount() const {
   assert(0 && "getTripCount not supported for machine loops!");
   return 0;
 }
 
 template<>
-bool LoopBase<MachineBasicBlock>::isLCSSAForm() const {
+inline bool LoopBase<MachineBasicBlock>::isLCSSAForm() const {
   assert(0 && "isLCSSAForm not supported for machine loops");
   return false;
 }
@@ -129,10 +128,6 @@
 
   virtual void releaseMemory() { LI->releaseMemory(); }
 
-  virtual void print(std::ostream &O, const Module* M = 0) const {
-    if (O) LI->print(O, M);
-  }
-
   virtual void getAnalysisUsage(AnalysisUsage &AU) const;
 
   /// removeLoop - This removes the specified top-level loop from this loop info





More information about the llvm-commits mailing list