mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-08 06:32:24 +00:00
add a typedef
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34159 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
9182e3f205
commit
a12bd03f07
@ -208,17 +208,18 @@ TargetData::TargetData(const Module *M) {
|
||||
/// targets with cached elements should have been destroyed.
|
||||
///
|
||||
typedef std::pair<const TargetData*,const StructType*> LayoutKey;
|
||||
static ManagedStatic<std::map<LayoutKey, StructLayout*> > LayoutInfo;
|
||||
typedef std::map<LayoutKey, StructLayout*> LayoutInfoTy;
|
||||
static ManagedStatic<LayoutInfoTy> LayoutInfo;
|
||||
|
||||
|
||||
TargetData::~TargetData() {
|
||||
if (LayoutInfo.isConstructed()) {
|
||||
// Remove any layouts for this TD.
|
||||
std::map<LayoutKey, StructLayout*> &TheMap = *LayoutInfo;
|
||||
std::map<LayoutKey, StructLayout*>::iterator
|
||||
LayoutInfoTy &TheMap = *LayoutInfo;
|
||||
LayoutInfoTy::iterator
|
||||
I = TheMap.lower_bound(LayoutKey(this, (const StructType*)0));
|
||||
|
||||
for (std::map<LayoutKey, StructLayout*>::iterator E = TheMap.end();
|
||||
for (LayoutInfoTy::iterator E = TheMap.end();
|
||||
I != E && I->first.first == this; ) {
|
||||
I->second->~StructLayout();
|
||||
free(I->second);
|
||||
@ -228,10 +229,9 @@ TargetData::~TargetData() {
|
||||
}
|
||||
|
||||
const StructLayout *TargetData::getStructLayout(const StructType *Ty) const {
|
||||
std::map<LayoutKey, StructLayout*> &TheMap = *LayoutInfo;
|
||||
LayoutInfoTy &TheMap = *LayoutInfo;
|
||||
|
||||
std::map<LayoutKey, StructLayout*>::iterator
|
||||
I = TheMap.lower_bound(LayoutKey(this, Ty));
|
||||
LayoutInfoTy::iterator I = TheMap.lower_bound(LayoutKey(this, Ty));
|
||||
if (I != TheMap.end() && I->first.first == this && I->first.second == Ty)
|
||||
return I->second;
|
||||
|
||||
@ -253,8 +253,7 @@ const StructLayout *TargetData::getStructLayout(const StructType *Ty) const {
|
||||
void TargetData::InvalidateStructLayoutInfo(const StructType *Ty) const {
|
||||
if (!LayoutInfo.isConstructed()) return; // No cache.
|
||||
|
||||
std::map<LayoutKey, StructLayout*>::iterator I =
|
||||
LayoutInfo->find(LayoutKey(this, Ty));
|
||||
LayoutInfoTy::iterator I = LayoutInfo->find(LayoutKey(this, Ty));
|
||||
if (I != LayoutInfo->end()) {
|
||||
I->second->~StructLayout();
|
||||
free(I->second);
|
||||
|
Loading…
x
Reference in New Issue
Block a user