[PATCH] D32848: [ValueTracking] Introduce a version of computeKnownBits that returns a KnownBits struct. Begin using it to replace internal usages of ComputeSignBit
Craig Topper via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu May 4 00:06:31 PDT 2017
craig.topper created this revision.
This introduces a new interface for computeKnownBits that returns the KnownBits object instead of requiring it to be pre-constructed and passed in by reference.
This is a much more convenient interface as it doesn't require the caller to figure out the BitWidth to pre-construct the object. It's so convenient that I believe we can use this interface to remove the special ComputeSignBit flavor of computeKnownBits.
As a step towards that idea, this patch replaces all of the internal usages of ComputeSignBit with this new interface. As you can see from the patch there were a couple places where we called ComputeSignBit which really called computeKnownBits, and then called computeKnownBits again directly. I've reduced those places to only making one call to computeKnownBits. I bet there are probably external users that do it too.
A future patch will update the external users and remove the ComputeSignBit interface. I'll also working on moving more locations to the KnownBits returning interface for computeKnownBits.
https://reviews.llvm.org/D32848
Files:
include/llvm/Analysis/ValueTracking.h
lib/Analysis/ValueTracking.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D32848.97782.patch
Type: text/x-patch
Size: 11799 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170504/3114425f/attachment-0001.bin>
More information about the llvm-commits
mailing list