diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2020-04-25 12:57:07 +0200 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2020-05-15 19:41:07 +0200 |
commit | f89f7da999f362e4213c69923328dd1033276e59 (patch) | |
tree | 63f17f52b9d77ffec7c62fe9c5332603d83f007f /llvm/lib/Bitcode/Reader/BitcodeReader.cpp | |
parent | 9de4ee3815db2b49960e931bcc3c0cc6a28ad0de (diff) | |
download | llvm-f89f7da999f362e4213c69923328dd1033276e59.zip llvm-f89f7da999f362e4213c69923328dd1033276e59.tar.gz llvm-f89f7da999f362e4213c69923328dd1033276e59.tar.bz2 |
[IR] Convert null-pointer-is-valid into an enum attribute
The "null-pointer-is-valid" attribute needs to be checked by many
pointer-related combines. To make the check more efficient, convert
it from a string into an enum attribute.
In the future, this attribute may be replaced with data layout
properties.
Differential Revision: https://reviews.llvm.org/D78862
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
-rw-r--r-- | llvm/lib/Bitcode/Reader/BitcodeReader.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp index 21759c5..c3c4996 100644 --- a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp +++ b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp @@ -1469,6 +1469,8 @@ static Attribute::AttrKind getAttrFromCode(uint64_t Code) { return Attribute::NoCfCheck; case bitc::ATTR_KIND_NO_UNWIND: return Attribute::NoUnwind; + case bitc::ATTR_KIND_NULL_POINTER_IS_VALID: + return Attribute::NullPointerIsValid; case bitc::ATTR_KIND_OPT_FOR_FUZZING: return Attribute::OptForFuzzing; case bitc::ATTR_KIND_OPTIMIZE_FOR_SIZE: @@ -1654,7 +1656,7 @@ Error BitcodeReader::parseAttributeGroupBlock() { } } - UpgradeFramePointerAttributes(B); + UpgradeAttributes(B); MAttributeGroups[GrpID] = AttributeList::get(Context, Idx, B); break; } |