mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-09 10:30:47 +00:00
AutoUpgrade: upgrade from scalar TBAA format to struct-path aware TBAA format.
We treat TBAA tags as struct-path aware TBAA format when the first operand is a MDNode and the tag has 3 or more operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191593 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
#include "llvm/IR/DerivedTypes.h"
|
||||
#include "llvm/IR/InlineAsm.h"
|
||||
#include "llvm/IR/IntrinsicInst.h"
|
||||
#include "llvm/IR/LLVMContext.h"
|
||||
#include "llvm/IR/Module.h"
|
||||
#include "llvm/IR/OperandTraits.h"
|
||||
#include "llvm/IR/Operator.h"
|
||||
@@ -2123,6 +2124,8 @@ bool BitcodeReader::ParseMetadataAttachment() {
|
||||
return Error("Invalid metadata kind ID");
|
||||
Value *Node = MDValueList.getValueFwdRef(Record[i+1]);
|
||||
Inst->setMetadata(I->second, cast<MDNode>(Node));
|
||||
if (I->second == LLVMContext::MD_tbaa)
|
||||
InstsWithTBAATag.push_back(Inst);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -3134,6 +3137,9 @@ bool BitcodeReader::MaterializeModule(Module *M, std::string *ErrInfo) {
|
||||
}
|
||||
std::vector<std::pair<Function*, Function*> >().swap(UpgradedIntrinsics);
|
||||
|
||||
for (unsigned I = 0, E = InstsWithTBAATag.size(); I < E; I++)
|
||||
UpgradeInstWithTBAATag(InstsWithTBAATag[I]);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user