Changes in directory llvm/lib/Transforms/Scalar:
ScalarReplAggregates.cpp updated: 1.83 -> 1.84 --- Log message: Fix Transforms/ScalarRepl/union-pointer.ll --- Diffs of the changes: (+7 -6) ScalarReplAggregates.cpp | 13 +++++++------ 1 files changed, 7 insertions(+), 6 deletions(-) Index: llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp diff -u llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp:1.83 llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp:1.84 --- llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp:1.83 Tue Apr 10 22:27:24 2007 +++ llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp Wed Apr 11 10:45:25 2007 @@ -1002,6 +1002,11 @@ ConstantInt::get(Type::Int32Ty, Elt), "tmp", SI); } + } else if (isa<PointerType>(AllocaType)) { + // If the alloca type is a pointer, then all the elements must be + // pointers. + if (SV->getType() != AllocaType) + SV = new BitCastInst(SV, AllocaType, SV->getName(), SI); } else { Value *Old = new LoadInst(NewAI, NewAI->getName()+".in", SI); @@ -1013,12 +1018,8 @@ if (SV->getType()->isFloatingPoint()) SV = new BitCastInst(SV, IntegerType::get(SrcWidth), SV->getName(), SI); - else if (isa<PointerType>(SV->getType())) { - if (isa<PointerType>(AllocaType)) - SV = new BitCastInst(SV, AllocaType, SV->getName(), SI); - else - SV = new PtrToIntInst(SV, TD.getIntPtrType(), SV->getName(), SI); - } + else if (isa<PointerType>(SV->getType())) + SV = new PtrToIntInst(SV, TD.getIntPtrType(), SV->getName(), SI); // Always zero extend the value if needed. if (SV->getType() != AllocaType) _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits