[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