diff options
author | Owen Anderson <resistor@mac.com> | 2007-12-01 03:01:39 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2007-12-01 03:01:39 +0000 |
commit | 528b00adc44ae1f8dfd78cf95853014c6ef341a1 (patch) | |
tree | 200d9f15b49b1d83b5c5364b1addad067f16e775 /include | |
parent | e62f97c094dba44e4c259d20135167fa91912eea (diff) | |
download | external_llvm-528b00adc44ae1f8dfd78cf95853014c6ef341a1.zip external_llvm-528b00adc44ae1f8dfd78cf95853014c6ef341a1.tar.gz external_llvm-528b00adc44ae1f8dfd78cf95853014c6ef341a1.tar.bz2 |
Fixes for MachineLoopInfo, mostly from Evan. With these, it should be almost useable!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44480 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/Analysis/LoopInfo.h | 10 | ||||
-rw-r--r-- | include/llvm/CodeGen/MachineLoopInfo.h | 15 |
2 files changed, 10 insertions, 15 deletions
diff --git a/include/llvm/Analysis/LoopInfo.h b/include/llvm/Analysis/LoopInfo.h index dd66c18..0c912d4 100644 --- a/include/llvm/Analysis/LoopInfo.h +++ b/include/llvm/Analysis/LoopInfo.h @@ -141,7 +141,7 @@ public: /// 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 @@ public: /// 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 @@ public: /// 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 @@ public: /// 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 @@ public: } /// 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()); diff --git a/include/llvm/CodeGen/MachineLoopInfo.h b/include/llvm/CodeGen/MachineLoopInfo.h index 1f6b1a1..6f1dd86 100644 --- a/include/llvm/CodeGen/MachineLoopInfo.h +++ b/include/llvm/CodeGen/MachineLoopInfo.h @@ -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 @@ LoopBase<MachineBasicBlock>::getCanonicalInductionVariableIncrement() const { } 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 @@ public: 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 |