From 7c8df7aa0c02908a29f0b5e6cfccb531dccdb96b Mon Sep 17 00:00:00 2001 From: Chandler Carruth Date: Tue, 18 Sep 2012 17:49:37 +0000 Subject: Fix getCommonType in a different way from the way I fixed it when working on FCA splitting. Instead of refusing to form a common type when there are uses of a subsection of the alloca as well as a use of the entire alloca, just skip the subsection uses and continue looking for a whole-alloca use with a type that we can use. This produces slightly prettier IR I think, and also fixes the other failure in the test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164146 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Scalar/SROA.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/Transforms') diff --git a/lib/Transforms/Scalar/SROA.cpp b/lib/Transforms/Scalar/SROA.cpp index 3607d4c..c959560 100644 --- a/lib/Transforms/Scalar/SROA.cpp +++ b/lib/Transforms/Scalar/SROA.cpp @@ -1059,7 +1059,7 @@ Type *AllocaPartitioning::getCommonType(iterator I) const { if (isa(*UI->User)) continue; if (UI->BeginOffset != I->BeginOffset || UI->EndOffset != I->EndOffset) - return 0; + continue; Type *UserTy = 0; if (LoadInst *LI = dyn_cast(&*UI->User)) { -- cgit v1.1