mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-21 08:17:40 +00:00
Modify {Call,Invoke}Inst::addAttribute to take an AttrKind.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176397 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -1272,7 +1272,7 @@ public:
|
||||
void setAttributes(const AttributeSet &Attrs) { AttributeList = Attrs; }
|
||||
|
||||
/// addAttribute - adds the attribute to the list of attributes.
|
||||
void addAttribute(unsigned i, Attribute attr);
|
||||
void addAttribute(unsigned i, Attribute::AttrKind attr);
|
||||
|
||||
/// removeAttribute - removes the attribute from the list of attributes.
|
||||
void removeAttribute(unsigned i, Attribute attr);
|
||||
@@ -1291,8 +1291,7 @@ public:
|
||||
/// \brief Return true if the call should not be inlined.
|
||||
bool isNoInline() const { return hasFnAttr(Attribute::NoInline); }
|
||||
void setIsNoInline() {
|
||||
addAttribute(AttributeSet::FunctionIndex,
|
||||
Attribute::get(getContext(), Attribute::NoInline));
|
||||
addAttribute(AttributeSet::FunctionIndex, Attribute::NoInline);
|
||||
}
|
||||
|
||||
/// \brief Return true if the call can return twice
|
||||
@@ -1300,8 +1299,7 @@ public:
|
||||
return hasFnAttr(Attribute::ReturnsTwice);
|
||||
}
|
||||
void setCanReturnTwice() {
|
||||
addAttribute(AttributeSet::FunctionIndex,
|
||||
Attribute::get(getContext(), Attribute::ReturnsTwice));
|
||||
addAttribute(AttributeSet::FunctionIndex, Attribute::ReturnsTwice);
|
||||
}
|
||||
|
||||
/// \brief Determine if the call does not access memory.
|
||||
@@ -1309,8 +1307,7 @@ public:
|
||||
return hasFnAttr(Attribute::ReadNone);
|
||||
}
|
||||
void setDoesNotAccessMemory() {
|
||||
addAttribute(AttributeSet::FunctionIndex,
|
||||
Attribute::get(getContext(), Attribute::ReadNone));
|
||||
addAttribute(AttributeSet::FunctionIndex, Attribute::ReadNone);
|
||||
}
|
||||
|
||||
/// \brief Determine if the call does not access or only reads memory.
|
||||
@@ -1318,29 +1315,25 @@ public:
|
||||
return doesNotAccessMemory() || hasFnAttr(Attribute::ReadOnly);
|
||||
}
|
||||
void setOnlyReadsMemory() {
|
||||
addAttribute(AttributeSet::FunctionIndex,
|
||||
Attribute::get(getContext(), Attribute::ReadOnly));
|
||||
addAttribute(AttributeSet::FunctionIndex, Attribute::ReadOnly);
|
||||
}
|
||||
|
||||
/// \brief Determine if the call cannot return.
|
||||
bool doesNotReturn() const { return hasFnAttr(Attribute::NoReturn); }
|
||||
void setDoesNotReturn() {
|
||||
addAttribute(AttributeSet::FunctionIndex,
|
||||
Attribute::get(getContext(), Attribute::NoReturn));
|
||||
addAttribute(AttributeSet::FunctionIndex, Attribute::NoReturn);
|
||||
}
|
||||
|
||||
/// \brief Determine if the call cannot unwind.
|
||||
bool doesNotThrow() const { return hasFnAttr(Attribute::NoUnwind); }
|
||||
void setDoesNotThrow() {
|
||||
addAttribute(AttributeSet::FunctionIndex,
|
||||
Attribute::get(getContext(), Attribute::NoUnwind));
|
||||
addAttribute(AttributeSet::FunctionIndex, Attribute::NoUnwind);
|
||||
}
|
||||
|
||||
/// \brief Determine if the call cannot be duplicated.
|
||||
bool cannotDuplicate() const {return hasFnAttr(Attribute::NoDuplicate); }
|
||||
void setCannotDuplicate() {
|
||||
addAttribute(AttributeSet::FunctionIndex,
|
||||
Attribute::get(getContext(), Attribute::NoDuplicate));
|
||||
addAttribute(AttributeSet::FunctionIndex, Attribute::NoDuplicate);
|
||||
}
|
||||
|
||||
/// \brief Determine if the call returns a structure through first
|
||||
@@ -3025,7 +3018,7 @@ public:
|
||||
void setAttributes(const AttributeSet &Attrs) { AttributeList = Attrs; }
|
||||
|
||||
/// addAttribute - adds the attribute to the list of attributes.
|
||||
void addAttribute(unsigned i, Attribute attr);
|
||||
void addAttribute(unsigned i, Attribute::AttrKind attr);
|
||||
|
||||
/// removeAttribute - removes the attribute from the list of attributes.
|
||||
void removeAttribute(unsigned i, Attribute attr);
|
||||
@@ -3044,8 +3037,7 @@ public:
|
||||
/// \brief Return true if the call should not be inlined.
|
||||
bool isNoInline() const { return hasFnAttr(Attribute::NoInline); }
|
||||
void setIsNoInline() {
|
||||
addAttribute(AttributeSet::FunctionIndex,
|
||||
Attribute::get(getContext(), Attribute::NoInline));
|
||||
addAttribute(AttributeSet::FunctionIndex, Attribute::NoInline);
|
||||
}
|
||||
|
||||
/// \brief Determine if the call does not access memory.
|
||||
@@ -3053,8 +3045,7 @@ public:
|
||||
return hasFnAttr(Attribute::ReadNone);
|
||||
}
|
||||
void setDoesNotAccessMemory() {
|
||||
addAttribute(AttributeSet::FunctionIndex,
|
||||
Attribute::get(getContext(), Attribute::ReadNone));
|
||||
addAttribute(AttributeSet::FunctionIndex, Attribute::ReadNone);
|
||||
}
|
||||
|
||||
/// \brief Determine if the call does not access or only reads memory.
|
||||
@@ -3062,22 +3053,19 @@ public:
|
||||
return doesNotAccessMemory() || hasFnAttr(Attribute::ReadOnly);
|
||||
}
|
||||
void setOnlyReadsMemory() {
|
||||
addAttribute(AttributeSet::FunctionIndex,
|
||||
Attribute::get(getContext(), Attribute::ReadOnly));
|
||||
addAttribute(AttributeSet::FunctionIndex, Attribute::ReadOnly);
|
||||
}
|
||||
|
||||
/// \brief Determine if the call cannot return.
|
||||
bool doesNotReturn() const { return hasFnAttr(Attribute::NoReturn); }
|
||||
void setDoesNotReturn() {
|
||||
addAttribute(AttributeSet::FunctionIndex,
|
||||
Attribute::get(getContext(), Attribute::NoReturn));
|
||||
addAttribute(AttributeSet::FunctionIndex, Attribute::NoReturn);
|
||||
}
|
||||
|
||||
/// \brief Determine if the call cannot unwind.
|
||||
bool doesNotThrow() const { return hasFnAttr(Attribute::NoUnwind); }
|
||||
void setDoesNotThrow() {
|
||||
addAttribute(AttributeSet::FunctionIndex,
|
||||
Attribute::get(getContext(), Attribute::NoUnwind));
|
||||
addAttribute(AttributeSet::FunctionIndex, Attribute::NoUnwind);
|
||||
}
|
||||
|
||||
/// \brief Determine if the call returns a structure through first
|
||||
|
||||
@@ -331,12 +331,9 @@ CallInst::CallInst(const CallInst &CI)
|
||||
SubclassOptionalData = CI.SubclassOptionalData;
|
||||
}
|
||||
|
||||
void CallInst::addAttribute(unsigned i, Attribute attr) {
|
||||
void CallInst::addAttribute(unsigned i, Attribute::AttrKind attr) {
|
||||
AttributeSet PAL = getAttributes();
|
||||
AttrBuilder B(attr);
|
||||
LLVMContext &Context = getContext();
|
||||
PAL = PAL.addAttributes(Context, i,
|
||||
AttributeSet::get(Context, i, B));
|
||||
PAL = PAL.addAttribute(getContext(), i, attr);
|
||||
setAttributes(PAL);
|
||||
}
|
||||
|
||||
@@ -593,11 +590,9 @@ bool InvokeInst::paramHasAttr(unsigned i, Attribute::AttrKind A) const {
|
||||
return false;
|
||||
}
|
||||
|
||||
void InvokeInst::addAttribute(unsigned i, Attribute attr) {
|
||||
void InvokeInst::addAttribute(unsigned i, Attribute::AttrKind attr) {
|
||||
AttributeSet PAL = getAttributes();
|
||||
AttrBuilder B(attr);
|
||||
PAL = PAL.addAttributes(getContext(), i,
|
||||
AttributeSet::get(getContext(), i, B));
|
||||
PAL = PAL.addAttribute(getContext(), i, attr);
|
||||
setAttributes(PAL);
|
||||
}
|
||||
|
||||
|
||||
@@ -798,8 +798,7 @@ struct StrToOpt : public LibCallOptimization {
|
||||
if (isa<ConstantPointerNull>(EndPtr)) {
|
||||
// With a null EndPtr, this function won't capture the main argument.
|
||||
// It would be readonly too, except that it still may write to errno.
|
||||
CI->addAttribute(1, Attribute::get(Callee->getContext(),
|
||||
Attribute::NoCapture));
|
||||
CI->addAttribute(1, Attribute::NoCapture);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user