mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
Rename Instruction::dropUnknownMetadata() to dropUnknownNonDebugMetadata()
and make it always preserve debug locations, since all callers wanted this behavior anyway. This is addressing a post-commit review feedback for r245589. NFC (inside the LLVM tree). llvm-svn: 245622
This commit is contained in:
parent
f40aa3d262
commit
578302805a
@ -204,20 +204,22 @@ public:
|
||||
void setMetadata(unsigned KindID, MDNode *Node);
|
||||
void setMetadata(StringRef Kind, MDNode *Node);
|
||||
|
||||
/// \brief Drop unknown metadata.
|
||||
/// Drop all unknown metadata except for debug locations.
|
||||
/// @{
|
||||
/// Passes are required to drop metadata they don't understand. This is a
|
||||
/// convenience method for passes to do so.
|
||||
void dropUnknownMetadata(ArrayRef<unsigned> KnownIDs);
|
||||
void dropUnknownMetadata() {
|
||||
return dropUnknownMetadata(None);
|
||||
void dropUnknownNonDebugMetadata(ArrayRef<unsigned> KnownIDs);
|
||||
void dropUnknownNonDebugMetadata() {
|
||||
return dropUnknownNonDebugMetadata(None);
|
||||
}
|
||||
void dropUnknownMetadata(unsigned ID1) {
|
||||
return dropUnknownMetadata(makeArrayRef(ID1));
|
||||
void dropUnknownNonDebugMetadata(unsigned ID1) {
|
||||
return dropUnknownNonDebugMetadata(makeArrayRef(ID1));
|
||||
}
|
||||
void dropUnknownMetadata(unsigned ID1, unsigned ID2) {
|
||||
void dropUnknownNonDebugMetadata(unsigned ID1, unsigned ID2) {
|
||||
unsigned IDs[] = {ID1, ID2};
|
||||
return dropUnknownMetadata(IDs);
|
||||
return dropUnknownNonDebugMetadata(IDs);
|
||||
}
|
||||
/// @}
|
||||
|
||||
/// setAAMetadata - Sets the metadata on this instruction from the
|
||||
/// AAMDNodes structure.
|
||||
|
@ -1057,14 +1057,10 @@ MDNode *Instruction::getMetadataImpl(StringRef Kind) const {
|
||||
return getMetadataImpl(getContext().getMDKindID(Kind));
|
||||
}
|
||||
|
||||
void Instruction::dropUnknownMetadata(ArrayRef<unsigned> KnownIDs) {
|
||||
void Instruction::dropUnknownNonDebugMetadata(ArrayRef<unsigned> KnownIDs) {
|
||||
SmallSet<unsigned, 5> KnownSet;
|
||||
KnownSet.insert(KnownIDs.begin(), KnownIDs.end());
|
||||
|
||||
// Drop debug if needed
|
||||
if (!KnownSet.erase(LLVMContext::MD_dbg))
|
||||
DbgLoc = DebugLoc();
|
||||
|
||||
if (!hasMetadataHashEntry())
|
||||
return; // Nothing to remove!
|
||||
|
||||
|
@ -754,7 +754,6 @@ Instruction *InstCombiner::visitLoadInst(LoadInst &LI) {
|
||||
6, AA, &AATags)) {
|
||||
if (LoadInst *NLI = dyn_cast<LoadInst>(AvailableVal)) {
|
||||
unsigned KnownIDs[] = {
|
||||
LLVMContext::MD_dbg,
|
||||
LLVMContext::MD_tbaa,
|
||||
LLVMContext::MD_alias_scope,
|
||||
LLVMContext::MD_noalias,
|
||||
|
@ -1780,7 +1780,6 @@ static void patchReplacementInstruction(Instruction *I, Value *Repl) {
|
||||
// regions, and so we need a conservative combination of the noalias
|
||||
// scopes.
|
||||
static const unsigned KnownIDs[] = {
|
||||
LLVMContext::MD_dbg,
|
||||
LLVMContext::MD_tbaa,
|
||||
LLVMContext::MD_alias_scope,
|
||||
LLVMContext::MD_noalias,
|
||||
|
@ -743,7 +743,6 @@ bool MemCpyOpt::performCallSlotOptzn(Instruction *cpy,
|
||||
// FIXME: MD_tbaa_struct and MD_mem_parallel_loop_access should also be
|
||||
// handled here, but combineMetadata doesn't support them yet
|
||||
unsigned KnownIDs[] = {
|
||||
LLVMContext::MD_dbg,
|
||||
LLVMContext::MD_tbaa,
|
||||
LLVMContext::MD_alias_scope,
|
||||
LLVMContext::MD_noalias,
|
||||
|
@ -293,7 +293,7 @@ void MergedLoadStoreMotion::hoistInstruction(BasicBlock *BB,
|
||||
|
||||
// Intersect optional metadata.
|
||||
HoistCand->intersectOptionalDataWith(ElseInst);
|
||||
HoistCand->dropUnknownMetadata(LLVMContext::MD_dbg);
|
||||
HoistCand->dropUnknownNonDebugMetadata();
|
||||
|
||||
// Prepend point for instruction insert
|
||||
Instruction *HoistPt = BB->getTerminator();
|
||||
@ -472,7 +472,7 @@ bool MergedLoadStoreMotion::sinkStore(BasicBlock *BB, StoreInst *S0,
|
||||
BasicBlock::iterator InsertPt = BB->getFirstInsertionPt();
|
||||
// Intersect optional metadata.
|
||||
S0->intersectOptionalDataWith(S1);
|
||||
S0->dropUnknownMetadata(LLVMContext::MD_dbg);
|
||||
S0->dropUnknownNonDebugMetadata();
|
||||
|
||||
// Create the new store to be inserted at the join point.
|
||||
StoreInst *SNew = (StoreInst *)(S0->clone());
|
||||
|
@ -1290,7 +1290,7 @@ bool llvm::removeUnreachableBlocks(Function &F) {
|
||||
|
||||
void llvm::combineMetadata(Instruction *K, const Instruction *J, ArrayRef<unsigned> KnownIDs) {
|
||||
SmallVector<std::pair<unsigned, MDNode *>, 4> Metadata;
|
||||
K->dropUnknownMetadata(KnownIDs);
|
||||
K->dropUnknownNonDebugMetadata(KnownIDs);
|
||||
K->getAllMetadataOtherThanDebugLoc(Metadata);
|
||||
for (unsigned i = 0, n = Metadata.size(); i < n; ++i) {
|
||||
unsigned Kind = Metadata[i].first;
|
||||
|
@ -1093,7 +1093,6 @@ static bool HoistThenElseCodeToIf(BranchInst *BI,
|
||||
I2->replaceAllUsesWith(I1);
|
||||
I1->intersectOptionalDataWith(I2);
|
||||
unsigned KnownIDs[] = {
|
||||
LLVMContext::MD_dbg,
|
||||
LLVMContext::MD_tbaa,
|
||||
LLVMContext::MD_range,
|
||||
LLVMContext::MD_fpmath,
|
||||
@ -2200,7 +2199,7 @@ bool llvm::FoldBranchToCommonDest(BranchInst *BI, unsigned BonusInstThreshold) {
|
||||
// only given the branch precondition.
|
||||
// For an analogous reason, we must also drop all the metadata whose
|
||||
// semantics we don't understand.
|
||||
NewBonusInst->dropUnknownMetadata(LLVMContext::MD_dbg);
|
||||
NewBonusInst->dropUnknownNonDebugMetadata();
|
||||
|
||||
PredBlock->getInstList().insert(PBI, NewBonusInst);
|
||||
NewBonusInst->takeName(BonusInst);
|
||||
|
@ -3118,7 +3118,6 @@ namespace {
|
||||
K->mutateType(getVecTypeForPair(L->getType(), H->getType()));
|
||||
|
||||
unsigned KnownIDs[] = {
|
||||
LLVMContext::MD_dbg,
|
||||
LLVMContext::MD_tbaa,
|
||||
LLVMContext::MD_alias_scope,
|
||||
LLVMContext::MD_noalias,
|
||||
|
Loading…
Reference in New Issue
Block a user