[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