mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-30 23:20:54 +00:00
Follow up to 260439, Speculative fix to clang builders
It looks like clang has a couple of test cases which caught the fact LVI was not slightly more precise after 260439. When looking at the failures, it struck me as wasteful to be querying nullness of a constant via LVI, so instead of tweaking the clang tests, let's just stop querying constants from this source. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260451 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
2465700839
commit
18fb862ea7
@ -312,8 +312,11 @@ bool CorrelatedValuePropagation::processCallSite(CallSite CS) {
|
||||
|
||||
for (Value *V : CS.args()) {
|
||||
PointerType *Type = dyn_cast<PointerType>(V->getType());
|
||||
|
||||
// Try to mark pointer typed parameters as non-null. We skip the
|
||||
// relatively expensive analysis for constants which are obviously either
|
||||
// null or non-null to start with.
|
||||
if (Type && !CS.paramHasAttr(ArgNo + 1, Attribute::NonNull) &&
|
||||
!isa<Constant>(V) &&
|
||||
LVI->getPredicateAt(ICmpInst::ICMP_EQ, V,
|
||||
ConstantPointerNull::get(Type),
|
||||
CS.getInstruction()) == LazyValueInfo::False)
|
||||
|
Loading…
Reference in New Issue
Block a user