[llvm-commits] [poolalloc] r118512 - in /poolalloc/trunk/lib/DSA: DataStructure.cpp Local.cpp

Arushi Aggarwal aggarwa4 at illinois.edu
Tue Nov 9 09:14:22 PST 2010


Author: aggarwa4
Date: Tue Nov  9 11:14:22 2010
New Revision: 118512

URL: http://llvm.org/viewvc/llvm-project?rev=118512&view=rev
Log:
Size of a node with type VOID, should be 0.

Modified:
    poolalloc/trunk/lib/DSA/DataStructure.cpp
    poolalloc/trunk/lib/DSA/Local.cpp

Modified: poolalloc/trunk/lib/DSA/DataStructure.cpp
URL: http://llvm.org/viewvc/llvm-project/poolalloc/trunk/lib/DSA/DataStructure.cpp?rev=118512&r1=118511&r2=118512&view=diff
==============================================================================
--- poolalloc/trunk/lib/DSA/DataStructure.cpp (original)
+++ poolalloc/trunk/lib/DSA/DataStructure.cpp Tue Nov  9 11:14:22 2010
@@ -332,13 +332,12 @@
   if (!NewTy || NewTy->isVoidTy()) return;
 
   if (isCollapsedNode()) return;
-  if (isArrayNode()) {
+  if (isArrayNode() && getSize() > 0) {
     assert (getSize() && "array node has size of zero!\n");
     Offset %= getSize();
   }
   const TargetData &TD = getParentGraph()->getTargetData();
   if (Offset >= getSize()) growSize(Offset+TD.getTypeAllocSize(NewTy));
-  if (Offset >= getSize() && NewTy->isVoidTy()) growSize(Offset + 1);
 
   TyMap[Offset] = getParentGraph()->getTypeSS().getOrCreate(TyMap[Offset], NewTy);
 
@@ -374,9 +373,6 @@
   if (isCollapsedNode()) return;
   if (isArrayNode()) Offset %= getSize();
 
-  if (Offset >= getSize())
-    growSize(Offset + 1);
-
   if (!TyMap[Offset])
     TyMap[Offset] = TyIt;
   if (TyIt) {
@@ -525,7 +521,7 @@
     }
   }
   if (CurNodeH.getNode()->isArrayNode() && NH.getNode()->isArrayNode()) {
-    if(NH.getNode()->getSize() != 1 && CurNodeH.getNode()->getSize() != 1
+    if(NH.getNode()->getSize() != 0 && CurNodeH.getNode()->getSize() != 0
        && (NH.getNode()->getSize() != CurNodeH.getNode()->getSize())){
       CurNodeH.getNode()->foldNodeCompletely();
       NH.getNode()->foldNodeCompletely();
@@ -789,11 +785,9 @@
           DN = NH.getNode();
         }
 #endif
-      }
-      if (DN->getSize() < SN->getSize())
-        DN->growSize(SN->getSize());
+     }
 
-      if ((SN->isArrayNode() && !DN->isArrayNode()) ||
+     if ((SN->isArrayNode() && !DN->isArrayNode()) ||
         (!SN->isArrayNode() && DN->isArrayNode())) {
         if(SN->getSize() != 0 && DN->getSize() != 0
          && (SN->getSize() != DN->getSize())){
@@ -802,17 +796,18 @@
         }
      }
      if (SN->isArrayNode() && DN->isArrayNode()) {
-        if((SN->getSize() != DN->getSize()) && (SN->getSize() != 1) && DN->getSize() != 1) {
+        if((SN->getSize() != DN->getSize()) && (SN->getSize() != 0) && DN->getSize() != 0) {
         DN->foldNodeCompletely();
         DN = NH.getNode();
        }
     }
+    if (!DN->isNodeCompletelyFolded() && DN->getSize() < SN->getSize())
+      DN->growSize(SN->getSize());
 
 
       // Merge the type entries of the two nodes together...
       if (!DN->isNodeCompletelyFolded())
           DN->mergeTypeInfo(SN, NH.getOffset() - SrcNH.getOffset());
-
     }
 
     assert(!DN->isDeadNode());

Modified: poolalloc/trunk/lib/DSA/Local.cpp
URL: http://llvm.org/viewvc/llvm-project/poolalloc/trunk/lib/DSA/Local.cpp?rev=118512&r1=118511&r2=118512&view=diff
==============================================================================
--- poolalloc/trunk/lib/DSA/Local.cpp (original)
+++ poolalloc/trunk/lib/DSA/Local.cpp Tue Nov  9 11:14:22 2010
@@ -575,7 +575,7 @@
       // increment the offset by the actual byte offset being accessed
       Offset += (unsigned)TD.getStructLayout(STy)->getElementOffset(FieldNo);
 
-      if(!Value.getNode()->isArrayNode() || Value.getNode()->getSize() <= 1){
+      if(!Value.getNode()->isArrayNode() || Value.getNode()->getSize() <= 0){
         if (TD.getTypeAllocSize(STy) + Value.getOffset() > Value.getNode()->getSize())
           Value.getNode()->growSize(TD.getTypeAllocSize(STy) + Value.getOffset());
       }
@@ -586,19 +586,14 @@
       const Type *CurTy = ATy->getElementType();
 
       if(!isa<ArrayType>(CurTy) &&
-          Value.getNode()->getSize() <= 1) {
+          Value.getNode()->getSize() <= 0) {
         Value.getNode()->growSize(TD.getTypeAllocSize(CurTy));
-      } else if(CurTy->isVoidTy()) {
-        Value.getNode()->growSize(1);
-      } else if(isa<ArrayType>(CurTy) && Value.getNode()->getSize() <= 1){
+      } else if(isa<ArrayType>(CurTy) && Value.getNode()->getSize() <= 0){
         const Type *ETy = (cast<ArrayType>(CurTy))->getElementType();
         while(isa<ArrayType>(ETy)) {
           ETy = (cast<ArrayType>(ETy))->getElementType();
         }
         Value.getNode()->growSize(TD.getTypeAllocSize(ETy));
-        if(ETy->isVoidTy()) {
-          Value.getNode()->growSize(1);
-        }
       }
       // indexing into an array.
 
@@ -628,21 +623,16 @@
       if (!isa<Constant>(I.getOperand()) ||
           !cast<Constant>(I.getOperand())->isNullValue()) {
         Value.getNode()->setArrayMarker();
+        
 
-
-        if(!isa<ArrayType>(CurTy) && Value.getNode()->getSize() <= 1){
+        if(!isa<ArrayType>(CurTy) && Value.getNode()->getSize() <= 0){
           Value.getNode()->growSize(TD.getTypeAllocSize(CurTy));
-        } else if(CurTy->isVoidTy()) {
-          Value.getNode()->growSize(1);
-        } else if(isa<ArrayType>(CurTy) && Value.getNode()->getSize() <= 1){
+        } else if(isa<ArrayType>(CurTy) && Value.getNode()->getSize() <= 0){
           const Type *ETy = (cast<ArrayType>(CurTy))->getElementType();
           while(isa<ArrayType>(ETy)) {
             ETy = (cast<ArrayType>(ETy))->getElementType();
           }
           Value.getNode()->growSize(TD.getTypeAllocSize(ETy));
-          if(ETy->isVoidTy()) {
-            Value.getNode()->growSize(1);
-          }
         }
         if(Value.getOffset() || Offset != 0
            || (!isa<ArrayType>(CurTy)





More information about the llvm-commits mailing list