mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
remove the InvalidateStructLayoutInfo API, which is dead and unnecessary now
that type refinement is toast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135245 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
ed0e021643
commit
ef58218b8d
@ -147,12 +147,6 @@ unsigned LLVMElementAtOffset(LLVMTargetDataRef, LLVMTypeRef StructTy,
|
||||
unsigned long long LLVMOffsetOfElement(LLVMTargetDataRef, LLVMTypeRef StructTy,
|
||||
unsigned Element);
|
||||
|
||||
/** Struct layouts are speculatively cached. If a TargetDataRef is alive when
|
||||
types are being refined and removed, this method must be called whenever a
|
||||
struct type is removed to avoid a dangling pointer in this cache.
|
||||
See the method llvm::TargetData::InvalidateStructLayoutInfo. */
|
||||
void LLVMInvalidateStructLayout(LLVMTargetDataRef, LLVMTypeRef StructTy);
|
||||
|
||||
/** Deallocates a TargetData.
|
||||
See the destructor llvm::TargetData::~TargetData. */
|
||||
void LLVMDisposeTargetData(LLVMTargetDataRef);
|
||||
|
@ -272,12 +272,6 @@ public:
|
||||
/// information is lazily cached.
|
||||
const StructLayout *getStructLayout(const StructType *Ty) const;
|
||||
|
||||
/// InvalidateStructLayoutInfo - TargetData speculatively caches StructLayout
|
||||
/// objects. If a TargetData object is alive when types are being refined and
|
||||
/// removed, this method must be called whenever a StructType is removed to
|
||||
/// avoid a dangling pointer in this cache.
|
||||
void InvalidateStructLayoutInfo(const StructType *Ty) const;
|
||||
|
||||
/// getPreferredAlignment - Return the preferred alignment of the specified
|
||||
/// global. This includes an explicitly requested alignment (if the global
|
||||
/// has one).
|
||||
|
@ -97,10 +97,6 @@ unsigned long long LLVMOffsetOfElement(LLVMTargetDataRef TD, LLVMTypeRef StructT
|
||||
return unwrap(TD)->getStructLayout(STy)->getElementOffset(Element);
|
||||
}
|
||||
|
||||
void LLVMInvalidateStructLayout(LLVMTargetDataRef TD, LLVMTypeRef StructTy) {
|
||||
unwrap(TD)->InvalidateStructLayoutInfo(unwrap<StructType>(StructTy));
|
||||
}
|
||||
|
||||
void LLVMDisposeTargetData(LLVMTargetDataRef TD) {
|
||||
delete unwrap(TD);
|
||||
}
|
||||
|
@ -329,15 +329,6 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void InvalidateEntry(const StructType *Ty) {
|
||||
LayoutInfoTy::iterator I = LayoutInfo.find(Ty);
|
||||
if (I == LayoutInfo.end()) return;
|
||||
|
||||
I->second->~StructLayout();
|
||||
free(I->second);
|
||||
LayoutInfo.erase(I);
|
||||
}
|
||||
|
||||
StructLayout *&operator[](const StructType *STy) {
|
||||
return LayoutInfo[STy];
|
||||
}
|
||||
@ -375,16 +366,6 @@ const StructLayout *TargetData::getStructLayout(const StructType *Ty) const {
|
||||
return L;
|
||||
}
|
||||
|
||||
/// InvalidateStructLayoutInfo - TargetData speculatively caches StructLayout
|
||||
/// objects. If a TargetData object is alive when types are being refined and
|
||||
/// removed, this method must be called whenever a StructType is removed to
|
||||
/// avoid a dangling pointer in this cache.
|
||||
void TargetData::InvalidateStructLayoutInfo(const StructType *Ty) const {
|
||||
if (!LayoutMap) return; // No cache.
|
||||
|
||||
static_cast<StructLayoutMap*>(LayoutMap)->InvalidateEntry(Ty);
|
||||
}
|
||||
|
||||
std::string TargetData::getStringRepresentation() const {
|
||||
std::string Result;
|
||||
raw_string_ostream OS(Result);
|
||||
|
Loading…
Reference in New Issue
Block a user