[llvm-commits] CVS: llvm/include/llvm/Analysis/DSNode.h DSSupport.h

Chris Lattner lattner at cs.uiuc.edu
Thu Feb 13 13:10:01 PST 2003


Changes in directory llvm/include/llvm/Analysis:

DSNode.h updated: 1.21 -> 1.22
DSSupport.h updated: 1.14 -> 1.15

---
Log message:

Move node forwarding code from being inlined to being out-of-line.

This brings a 11.6% speedup to steens, and a 3.6 overall speedup to ds-aa


---
Diffs of the changes:

Index: llvm/include/llvm/Analysis/DSNode.h
diff -u llvm/include/llvm/Analysis/DSNode.h:1.21 llvm/include/llvm/Analysis/DSNode.h:1.22
--- llvm/include/llvm/Analysis/DSNode.h:1.21	Tue Feb 11 17:11:51 2003
+++ llvm/include/llvm/Analysis/DSNode.h	Thu Feb 13 13:08:57 2003
@@ -276,22 +276,7 @@
   if (!N || N->ForwardNH.isNull())
     return N;
 
-  // Handle node forwarding here!
-  DSNode *Next = N->ForwardNH.getNode();  // Cause recursive shrinkage
-  Offset += N->ForwardNH.getOffset();
-
-  if (--N->NumReferrers == 0) {
-    // Removing the last referrer to the node, sever the forwarding link
-    N->stopForwarding();
-  }
-
-  N = Next;
-  N->NumReferrers++;
-  if (N->Size <= Offset) {
-    assert(N->Size <= 1 && "Forwarded to shrunk but not collapsed node?");
-    Offset = 0;
-  }
-  return N;
+  return HandleForwarding();
 }
 
 inline void DSNodeHandle::setNode(DSNode *n) {


Index: llvm/include/llvm/Analysis/DSSupport.h
diff -u llvm/include/llvm/Analysis/DSSupport.h:1.14 llvm/include/llvm/Analysis/DSSupport.h:1.15
--- llvm/include/llvm/Analysis/DSSupport.h:1.14	Tue Feb 11 17:11:51 2003
+++ llvm/include/llvm/Analysis/DSSupport.h	Thu Feb 13 13:08:58 2003
@@ -112,6 +112,8 @@
   inline DSNodeHandle &getLink(unsigned Num);
 
   inline void setLink(unsigned Num, const DSNodeHandle &NH);
+private:
+  DSNode *HandleForwarding() const;
 };
 
 namespace std {





More information about the llvm-commits mailing list