mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-24 08:24:33 +00:00
Add 'nonnull', a new parameter and return attribute which indicates that the pointer is not null. Instcombine will elide comparisons between these and null. Patch by Luqman Aden!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209185 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -2065,9 +2065,9 @@ bool llvm::isKnownNonNull(const Value *V, const TargetLibraryInfo *TLI) {
|
||||
// Alloca never returns null, malloc might.
|
||||
if (isa<AllocaInst>(V)) return true;
|
||||
|
||||
// A byval or inalloca argument is never null.
|
||||
// A byval, inalloca, or nonnull argument is never null.
|
||||
if (const Argument *A = dyn_cast<Argument>(V))
|
||||
return A->hasByValOrInAllocaAttr();
|
||||
return A->hasByValOrInAllocaAttr() || A->hasNonNullAttr();
|
||||
|
||||
// Global values are not null unless extern weak.
|
||||
if (const GlobalValue *GV = dyn_cast<GlobalValue>(V))
|
||||
|
Reference in New Issue
Block a user