[llvm-commits] [llvm] r85738 - in /llvm/trunk:	lib/Transforms/Scalar/InstructionCombining.cpp	test/Transforms/InstCombine/phi.ll
    Chris Lattner 
    clattner at apple.com
       
    Mon Nov  2 19:40:06 PST 2009
    
    
  
On Nov 2, 2009, at 6:23 AM, Duncan Sands wrote:
> Hi Chris,
>
>> -    LoadAlignment = std::max(LoadAlignment, LI->getAlignment());
>> +    LoadAlignment = std::min(LoadAlignment, LI->getAlignment());
>
> if one alignment is zero and the other is not, then zero (the  
> minimum) may
> be the wrong result.  On the other hand, if one is zero and the  
> other is
> over aligned (bigger than the ABI alignment), then zero is the right  
> thing,
> not the bigger alignment.  You need target data to get this right.
The transformation explicitly does not transform the case when some  
loads have an alignment specified and others do.  It only xforms when  
all are specified or none are.
-Chris
    
    
More information about the llvm-commits
mailing list