Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | [ValueTracking] Extend r251146 to catch a fairly common case | James Molloy | 2015-10-26 | 1 | -0/+13 |
Even though we may not know the value of the shifter operand, it's possible we know the shifter operand is non-zero. This can allow us to infer more known bits - for example: %1 = load %p !range {1, 5} %2 = shl %q, %1 We don't know %1, but we do know that it is nonzero so %2[0] is known zero, and importantly %2 is known non-zero. Calling isKnownNonZero is nontrivially expensive so use an Optional to run it lazily and cache its result. llvm-svn: 251294 |