[PATCH] D16204: ValueTracking: Use fixed array for assumption exclude set in Query; NFC
Philip Reames via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 27 16:47:50 PST 2016
reames accepted this revision.
reames added a reviewer: reames.
reames added a comment.
This revision is now accepted and ready to land.
LGTM w/minor comments addressed.
Comment at: lib/Analysis/ValueTracking.cpp:96
@@ +95,3 @@
+ /// Set of assumptions that should be excluded from further queries.
+ /// Many of these functions have internal versions that take an assumption
+ /// exclusion set. This is because of the potential for mutual recursion to
Comment at: lib/Analysis/ValueTracking.cpp:115
@@ +114,3 @@
+ Excluded = Q.Excluded;
+ assert(NumExcluded < Excluded.size());
+ Excluded[NumExcluded++] = NewExcl;
Place this assert after the increment as an <=. They're equivalent, but the alternative code is easier to read.
Comment at: lib/Analysis/ValueTracking.cpp:121
@@ -111,1 +120,3 @@
+ auto End = Excluded.begin() + NumExcluded;
+ return std::find(Excluded.begin(), End, Value) != End;
If you zero initialize the array, you can simply this by just scanning the extra elements. (optional)
Adding an early exit when NumExcluded == 0 is likely to be worthwhile.
More information about the llvm-commits