mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-03-03 14:31:10 +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 long long LLVMOffsetOfElement(LLVMTargetDataRef, LLVMTypeRef StructTy,
|
||||||
unsigned Element);
|
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.
|
/** Deallocates a TargetData.
|
||||||
See the destructor llvm::TargetData::~TargetData. */
|
See the destructor llvm::TargetData::~TargetData. */
|
||||||
void LLVMDisposeTargetData(LLVMTargetDataRef);
|
void LLVMDisposeTargetData(LLVMTargetDataRef);
|
||||||
|
@ -272,12 +272,6 @@ public:
|
|||||||
/// information is lazily cached.
|
/// information is lazily cached.
|
||||||
const StructLayout *getStructLayout(const StructType *Ty) const;
|
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
|
/// getPreferredAlignment - Return the preferred alignment of the specified
|
||||||
/// global. This includes an explicitly requested alignment (if the global
|
/// global. This includes an explicitly requested alignment (if the global
|
||||||
/// has one).
|
/// has one).
|
||||||
|
@ -97,10 +97,6 @@ unsigned long long LLVMOffsetOfElement(LLVMTargetDataRef TD, LLVMTypeRef StructT
|
|||||||
return unwrap(TD)->getStructLayout(STy)->getElementOffset(Element);
|
return unwrap(TD)->getStructLayout(STy)->getElementOffset(Element);
|
||||||
}
|
}
|
||||||
|
|
||||||
void LLVMInvalidateStructLayout(LLVMTargetDataRef TD, LLVMTypeRef StructTy) {
|
|
||||||
unwrap(TD)->InvalidateStructLayoutInfo(unwrap<StructType>(StructTy));
|
|
||||||
}
|
|
||||||
|
|
||||||
void LLVMDisposeTargetData(LLVMTargetDataRef TD) {
|
void LLVMDisposeTargetData(LLVMTargetDataRef TD) {
|
||||||
delete unwrap(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) {
|
StructLayout *&operator[](const StructType *STy) {
|
||||||
return LayoutInfo[STy];
|
return LayoutInfo[STy];
|
||||||
}
|
}
|
||||||
@ -375,16 +366,6 @@ const StructLayout *TargetData::getStructLayout(const StructType *Ty) const {
|
|||||||
return L;
|
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 TargetData::getStringRepresentation() const {
|
||||||
std::string Result;
|
std::string Result;
|
||||||
raw_string_ostream OS(Result);
|
raw_string_ostream OS(Result);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user