ValueTracking.cpp (194710) | ValueTracking.cpp (195340) |
---|---|
1//===- ValueTracking.cpp - Walk computations to compute properties --------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// --- 235 unchanged lines hidden (view full) --- 244 KnownOne.zextOrTrunc(BitWidth); 245 // Any top bits are known to be zero. 246 if (BitWidth > SrcBitWidth) 247 KnownZero |= APInt::getHighBitsSet(BitWidth, BitWidth - SrcBitWidth); 248 return; 249 } 250 case Instruction::BitCast: { 251 const Type *SrcTy = I->getOperand(0)->getType(); | 1//===- ValueTracking.cpp - Walk computations to compute properties --------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// --- 235 unchanged lines hidden (view full) --- 244 KnownOne.zextOrTrunc(BitWidth); 245 // Any top bits are known to be zero. 246 if (BitWidth > SrcBitWidth) 247 KnownZero |= APInt::getHighBitsSet(BitWidth, BitWidth - SrcBitWidth); 248 return; 249 } 250 case Instruction::BitCast: { 251 const Type *SrcTy = I->getOperand(0)->getType(); |
252 if (SrcTy->isInteger() || isa<PointerType>(SrcTy)) { | 252 if ((SrcTy->isInteger() || isa<PointerType>(SrcTy)) && 253 // TODO: For now, not handling conversions like: 254 // (bitcast i64 %x to <2 x i32>) 255 !isa<VectorType>(I->getType())) { |
253 ComputeMaskedBits(I->getOperand(0), Mask, KnownZero, KnownOne, TD, 254 Depth+1); 255 return; 256 } 257 break; 258 } 259 case Instruction::SExt: { 260 // Compute the bits in the result that are not present in the input. --- 838 unchanged lines hidden --- | 256 ComputeMaskedBits(I->getOperand(0), Mask, KnownZero, KnownOne, TD, 257 Depth+1); 258 return; 259 } 260 break; 261 } 262 case Instruction::SExt: { 263 // Compute the bits in the result that are not present in the input. --- 838 unchanged lines hidden --- |