[IR] Add support for memory attribute
This implements IR and bitcode support for the memory attribute, as specified in https://reviews.llvm.org/D135597. The new attribute is not used for anything yet (and as such, the old memory attributes are unaffected). Differential Revision: https://reviews.llvm.org/D135592
This commit is contained in:
@@ -55,6 +55,7 @@
|
||||
#include "llvm/IR/IntrinsicsARM.h"
|
||||
#include "llvm/IR/LLVMContext.h"
|
||||
#include "llvm/IR/Metadata.h"
|
||||
#include "llvm/IR/ModRef.h"
|
||||
#include "llvm/IR/Module.h"
|
||||
#include "llvm/IR/ModuleSummaryIndex.h"
|
||||
#include "llvm/IR/Operator.h"
|
||||
@@ -1878,6 +1879,8 @@ static Attribute::AttrKind getAttrFromCode(uint64_t Code) {
|
||||
return Attribute::InReg;
|
||||
case bitc::ATTR_KIND_JUMP_TABLE:
|
||||
return Attribute::JumpTable;
|
||||
case bitc::ATTR_KIND_MEMORY:
|
||||
return Attribute::Memory;
|
||||
case bitc::ATTR_KIND_MIN_SIZE:
|
||||
return Attribute::MinSize;
|
||||
case bitc::ATTR_KIND_NAKED:
|
||||
@@ -2122,6 +2125,8 @@ Error BitcodeReader::parseAttributeGroupBlock() {
|
||||
B.addUWTableAttr(UWTableKind(Record[++i]));
|
||||
else if (Kind == Attribute::AllocKind)
|
||||
B.addAllocKindAttr(static_cast<AllocFnKind>(Record[++i]));
|
||||
else if (Kind == Attribute::Memory)
|
||||
B.addMemoryAttr(MemoryEffects::createFromIntValue(Record[++i]));
|
||||
} else if (Record[i] == 3 || Record[i] == 4) { // String attribute
|
||||
bool HasValue = (Record[i++] == 4);
|
||||
SmallString<64> KindStr;
|
||||
|
||||
Reference in New Issue
Block a user