mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-22 17:03:32 +00:00
IR: Remove Value::intersectOptionalDataWith, replace all calls with calls to Instruction::andIRFlags.
The two functions are functionally equivalent. Differential Revision: https://reviews.llvm.org/D22830 llvm-svn: 280884
This commit is contained in:
parent
c5e53b2a53
commit
8f1dd5c41e
llvm
include/llvm/IR
lib/Transforms
@ -442,11 +442,6 @@ public:
|
||||
return SubclassOptionalData == V->SubclassOptionalData;
|
||||
}
|
||||
|
||||
/// \brief Clear any optional flags not set in the given Value.
|
||||
void intersectOptionalDataWith(const Value *V) {
|
||||
SubclassOptionalData &= V->SubclassOptionalData;
|
||||
}
|
||||
|
||||
/// \brief Return true if there is a value handle associated with this value.
|
||||
bool hasValueHandle() const { return HasValueHandle; }
|
||||
|
||||
|
@ -696,7 +696,7 @@ private:
|
||||
else
|
||||
OtherGep = cast<GetElementPtrInst>(
|
||||
cast<StoreInst>(OtherInst)->getPointerOperand());
|
||||
ClonedGep->intersectOptionalDataWith(OtherGep);
|
||||
ClonedGep->andIRFlags(OtherGep);
|
||||
}
|
||||
|
||||
// Replace uses of Gep with ClonedGep in Repl.
|
||||
@ -843,7 +843,7 @@ private:
|
||||
MSSA->removeMemoryAccess(OldMA);
|
||||
}
|
||||
|
||||
Repl->intersectOptionalDataWith(I);
|
||||
Repl->andIRFlags(I);
|
||||
combineKnownMetadata(Repl, I);
|
||||
I->replaceAllUsesWith(Repl);
|
||||
// Also invalidate the Alias Analysis cache.
|
||||
|
@ -260,7 +260,7 @@ void MergedLoadStoreMotion::hoistInstruction(BasicBlock *BB,
|
||||
assert(HoistCand->getParent() != BB);
|
||||
|
||||
// Intersect optional metadata.
|
||||
HoistCand->intersectOptionalDataWith(ElseInst);
|
||||
HoistCand->andIRFlags(ElseInst);
|
||||
HoistCand->dropUnknownNonDebugMetadata();
|
||||
|
||||
// Prepend point for instruction insert
|
||||
@ -434,7 +434,7 @@ bool MergedLoadStoreMotion::sinkStore(BasicBlock *BB, StoreInst *S0,
|
||||
// Hoist the instruction.
|
||||
BasicBlock::iterator InsertPt = BB->getFirstInsertionPt();
|
||||
// Intersect optional metadata.
|
||||
S0->intersectOptionalDataWith(S1);
|
||||
S0->andIRFlags(S1);
|
||||
S0->dropUnknownNonDebugMetadata();
|
||||
|
||||
// Create the new store to be inserted at the join point.
|
||||
|
@ -1230,7 +1230,7 @@ static bool HoistThenElseCodeToIf(BranchInst *BI,
|
||||
BIParent->getInstList().splice(BI->getIterator(), BB1->getInstList(), I1);
|
||||
if (!I2->use_empty())
|
||||
I2->replaceAllUsesWith(I1);
|
||||
I1->intersectOptionalDataWith(I2);
|
||||
I1->andIRFlags(I2);
|
||||
unsigned KnownIDs[] = {LLVMContext::MD_tbaa,
|
||||
LLVMContext::MD_range,
|
||||
LLVMContext::MD_fpmath,
|
||||
|
@ -3148,7 +3148,7 @@ namespace {
|
||||
LLVMContext::MD_noalias, LLVMContext::MD_fpmath,
|
||||
LLVMContext::MD_invariant_group};
|
||||
combineMetadata(K, H, KnownIDs);
|
||||
K->intersectOptionalDataWith(H);
|
||||
K->andIRFlags(H);
|
||||
|
||||
for (unsigned o = 0; o < NumOperands; ++o)
|
||||
K->setOperand(o, ReplacedOperands[o]);
|
||||
|
Loading…
x
Reference in New Issue
Block a user