aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2010-02-24 22:32:18 +0000
committerAnders Carlsson <andersca@mac.com>2010-02-24 22:32:18 +0000
commit83c570b5915d19aa7e7c1a74324367577539d2bc (patch)
tree56b1ec59543ebc391c4adda10adaf7b491c93171
parentd91e7339577d74c2817b166fbdcbe847103dd85e (diff)
Get rid of 'this' adjustments from the FinalOverriders class since they can be different for the same overrider in different parts of the vtable.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97068 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/CodeGen/CGVtable.cpp34
1 files changed, 0 insertions, 34 deletions
diff --git a/lib/CodeGen/CGVtable.cpp b/lib/CodeGen/CGVtable.cpp
index 17c21f40f9..35bb95d30a 100644
--- a/lib/CodeGen/CGVtable.cpp
+++ b/lib/CodeGen/CGVtable.cpp
@@ -97,10 +97,6 @@ private:
/// ReturnAdjustments - Holds return adjustments for all the overriders that
/// need to perform return value adjustments.
AdjustmentOffsetsMapTy ReturnAdjustments;
-
- /// ThisAdjustments - Holds 'this' adjustments for all the overriders that
- /// need them.
- AdjustmentOffsetsMapTy ThisAdjustments;
typedef llvm::SmallVector<uint64_t, 1> OffsetVectorTy;
@@ -174,14 +170,6 @@ public:
return ReturnAdjustments.lookup(std::make_pair(Base, MD));
}
- /// getThisAdjustmentOffset - Get the 'this' pointer adjustment offset for the
- /// method decl in the given base subobject. Returns an empty base offset if
- /// no adjustment is needed.
- BaseOffset getThisAdjustmentOffset(BaseSubobject Base,
- const CXXMethodDecl *MD) const {
- return ThisAdjustments.lookup(std::make_pair(Base, MD));
- }
-
/// dump - dump the final overriders.
void dump() {
assert(VisitedVirtualBases.empty() &&
@@ -450,17 +438,6 @@ void FinalOverriders::PropagateOverrider(const CXXMethodDecl *OldMD,
// Store the return adjustment base offset.
ReturnAdjustments[SubobjectAndMethod] = ReturnBaseOffset;
}
-
- // Check if we need a 'this' adjustment base offset as well.
- if (Offset != NewBase.getBaseOffset()) {
- BaseOffset ThisBaseOffset =
- ComputeThisAdjustmentBaseOffset(OverriddenSubobject,
- NewBase);
- assert(!ThisBaseOffset.isEmpty() &&
- "Should not get an empty 'this' adjustment!");
-
- ThisAdjustments[SubobjectAndMethod] = ThisBaseOffset;
- }
}
// Set the new overrider.
@@ -639,17 +616,6 @@ void FinalOverriders::dump(llvm::raw_ostream &Out, BaseSubobject Base) {
Out << Offset.NonVirtualOffset << " nv]";
}
- AI = ThisAdjustments.find(std::make_pair(Base, MD));
- if (AI != ThisAdjustments.end()) {
- const BaseOffset &Offset = AI->second;
-
- Out << " [this-adj: ";
- if (Offset.VirtualBase)
- Out << Offset.VirtualBase->getQualifiedNameAsString() << " vbase, ";
-
- Out << Offset.NonVirtualOffset << " nv]";
- }
-
Out << "\n";
}
}