summaryrefslogtreecommitdiff
path: root/lib/CodeGen/StackMaps.cpp
diff options
context:
space:
mode:
authorJuergen Ributzka <juergen@apple.com>2014-05-01 22:21:24 +0000
committerJuergen Ributzka <juergen@apple.com>2014-05-01 22:21:24 +0000
commit23fc1727e755feb734e500214ca193b5d01007ff (patch)
tree16a2bb2981d2493716937ab67c17b44402cb995c /lib/CodeGen/StackMaps.cpp
parentd4b4f2d3402c0e94730646eb63874fa5265602f5 (diff)
downloadllvm-23fc1727e755feb734e500214ca193b5d01007ff.tar.gz
llvm-23fc1727e755feb734e500214ca193b5d01007ff.tar.bz2
llvm-23fc1727e755feb734e500214ca193b5d01007ff.tar.xz
[Stackmaps] Replace the custom ConstantPool class with a MapVector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@207803 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/StackMaps.cpp')
-rw-r--r--lib/CodeGen/StackMaps.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/lib/CodeGen/StackMaps.cpp b/lib/CodeGen/StackMaps.cpp
index 337982bc15..81a336eeda 100644
--- a/lib/CodeGen/StackMaps.cpp
+++ b/lib/CodeGen/StackMaps.cpp
@@ -209,7 +209,8 @@ void StackMaps::recordStackMapOpers(const MachineInstr &MI, uint64_t ID,
if (I->LocType == Location::Constant &&
((I->Offset + (int64_t(1)<<31)) >> 32) != 0) {
I->LocType = Location::ConstantIndex;
- I->Offset = ConstPool.getConstantIndex(I->Offset);
+ auto Result = ConstPool.insert(std::make_pair(I->Offset, I->Offset));
+ I->Offset = Result.first - ConstPool.begin();
}
}
@@ -334,9 +335,9 @@ void StackMaps::serializeToStackMapSection() {
DEBUG(dbgs() << WSMP << "#functions = " << FnStackSize.size() << '\n');
AP.OutStreamer.EmitIntValue(FnStackSize.size(), 4);
// Num constants.
- DEBUG(dbgs() << WSMP << "#constants = " << ConstPool.getNumConstants()
+ DEBUG(dbgs() << WSMP << "#constants = " << ConstPool.size()
<< '\n');
- AP.OutStreamer.EmitIntValue(ConstPool.getNumConstants(), 4);
+ AP.OutStreamer.EmitIntValue(ConstPool.size(), 4);
// Num callsites.
DEBUG(dbgs() << WSMP << "#callsites = " << CSInfos.size() << '\n');
AP.OutStreamer.EmitIntValue(CSInfos.size(), 4);
@@ -349,8 +350,8 @@ void StackMaps::serializeToStackMapSection() {
}
// Constant pool entries.
- for (unsigned i = 0; i < ConstPool.getNumConstants(); ++i)
- AP.OutStreamer.EmitIntValue(ConstPool.getConstant(i), 8);
+ for (auto Constant : ConstPool)
+ AP.OutStreamer.EmitIntValue(Constant.second, 8);
// Callsite entries.
for (CallsiteInfoList::const_iterator CSII = CSInfos.begin(),
@@ -473,4 +474,5 @@ void StackMaps::serializeToStackMapSection() {
AP.OutStreamer.AddBlankLine();
CSInfos.clear();
+ ConstPool.clear();
}