forked from OSchip/llvm-project
Remove the bitwise XOR operator from the Attributes class. Replace it with the equivalent from the builder class.
llvm-svn: 165893
This commit is contained in:
parent
85a64c217f
commit
a05b043c4a
|
@ -236,7 +236,6 @@ public:
|
|||
|
||||
Attributes operator | (const Attributes &A) const;
|
||||
Attributes operator & (const Attributes &A) const;
|
||||
Attributes operator ^ (const Attributes &A) const;
|
||||
Attributes &operator |= (const Attributes &A);
|
||||
Attributes &operator &= (const Attributes &A);
|
||||
|
||||
|
|
|
@ -314,8 +314,8 @@ bool llvm::isInTailCallPosition(ImmutableCallSite CS, Attributes CalleeRetAttr,
|
|||
// the return. Ignore noalias because it doesn't affect the call sequence.
|
||||
const Function *F = ExitBB->getParent();
|
||||
Attributes CallerRetAttr = F->getAttributes().getRetAttributes();
|
||||
if (Attributes::Builder(CalleeRetAttr ^ CallerRetAttr)
|
||||
.removeAttribute(Attributes::NoAlias).hasAttributes())
|
||||
if (Attributes::Builder(CalleeRetAttr).removeAttribute(Attributes::NoAlias) !=
|
||||
Attributes::Builder(CallerRetAttr).removeAttribute(Attributes::NoAlias))
|
||||
return false;
|
||||
|
||||
// It's not safe to eliminate the sign / zero extension of the return value.
|
||||
|
|
|
@ -774,8 +774,10 @@ bool CodeGenPrepare::DupRetToEnableTailCallOpts(ReturnInst *RI) {
|
|||
// Conservatively require the attributes of the call to match those of the
|
||||
// return. Ignore noalias because it doesn't affect the call sequence.
|
||||
Attributes CalleeRetAttr = CS.getAttributes().getRetAttributes();
|
||||
if (Attributes::Builder(CalleeRetAttr ^ CallerRetAttr)
|
||||
.removeAttribute(Attributes::NoAlias).hasAttributes())
|
||||
if (Attributes::Builder(CalleeRetAttr).
|
||||
removeAttribute(Attributes::NoAlias) !=
|
||||
Attributes::Builder(CallerRetAttr).
|
||||
removeAttribute(Attributes::NoAlias))
|
||||
continue;
|
||||
|
||||
// Make sure the call instruction is followed by an unconditional branch to
|
||||
|
|
|
@ -99,9 +99,6 @@ Attributes Attributes::operator | (const Attributes &A) const {
|
|||
Attributes Attributes::operator & (const Attributes &A) const {
|
||||
return Attributes(Raw() & A.Raw());
|
||||
}
|
||||
Attributes Attributes::operator ^ (const Attributes &A) const {
|
||||
return Attributes(Raw() ^ A.Raw());
|
||||
}
|
||||
Attributes &Attributes::operator |= (const Attributes &A) {
|
||||
Attrs.Bits |= A.Raw();
|
||||
return *this;
|
||||
|
|
Loading…
Reference in New Issue