Changes in directory llvm/lib/Transforms/Scalar:
ScalarReplAggregates.cpp updated: 1.94 -> 1.95 --- Log message: Fix PR1446: http://llvm.org/PR1446 by not scalarrepl'ing giant structures. --- Diffs of the changes: (+5 -1) ScalarReplAggregates.cpp | 6 +++++- 1 files changed, 5 insertions(+), 1 deletion(-) Index: llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp diff -u llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp:1.94 llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp:1.95 --- llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp:1.94 Sun May 6 08:37:16 2007 +++ llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp Thu May 24 13:43:04 2007 @@ -148,6 +148,8 @@ if (AllocationInst *A = dyn_cast<AllocationInst>(I)) WorkList.push_back(A); + const TargetData &TD = getAnalysis<TargetData>(); + // Process the worklist bool Changed = false; while (!WorkList.empty()) { @@ -177,7 +179,9 @@ // value cannot be decomposed at all. if (!AI->isArrayAllocation() && (isa<StructType>(AI->getAllocatedType()) || - isa<ArrayType>(AI->getAllocatedType()))) { + isa<ArrayType>(AI->getAllocatedType())) && + AI->getAllocatedType()->isSized() && + TD.getTypeSize(AI->getAllocatedType()) < 128) { // Check that all of the users of the allocation are capable of being // transformed. switch (isSafeAllocaToScalarRepl(AI)) { _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits