summaryrefslogtreecommitdiff
path: root/lib/VMCore/Use.cpp
diff options
context:
space:
mode:
authorJay Foad <jay.foad@gmail.com>2011-01-07 20:29:02 +0000
committerJay Foad <jay.foad@gmail.com>2011-01-07 20:29:02 +0000
commit8e3914d12e939d7c686bd121b0e2b2d39ed126d2 (patch)
tree195a8c211ef2623f284982afa3fb2ac5c595ed00 /lib/VMCore/Use.cpp
parent43eaadeea5217995c153078c04b77183d4c8c494 (diff)
downloadllvm-8e3914d12e939d7c686bd121b0e2b2d39ed126d2.tar.gz
llvm-8e3914d12e939d7c686bd121b0e2b2d39ed126d2.tar.bz2
llvm-8e3914d12e939d7c686bd121b0e2b2d39ed126d2.tar.xz
Simplify the allocation and freeing of Users' operand lists, now that
every BranchInst has a fixed number of operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123027 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/VMCore/Use.cpp')
-rw-r--r--lib/VMCore/Use.cpp33
1 files changed, 0 insertions, 33 deletions
diff --git a/lib/VMCore/Use.cpp b/lib/VMCore/Use.cpp
index fec710b394..5dfe650685 100644
--- a/lib/VMCore/Use.cpp
+++ b/lib/VMCore/Use.cpp
@@ -191,31 +191,6 @@ void *User::operator new(size_t s, unsigned Us) {
return Obj;
}
-/// Prefixed allocation - just before the first Use, allocate a NULL pointer.
-/// The destructor can detect its presence and readjust the OperandList
-/// for deletition.
-///
-void *User::operator new(size_t s, unsigned Us, bool Prefix) {
- // currently prefixed allocation only admissible for
- // unconditional branch instructions
- if (!Prefix)
- return operator new(s, Us);
-
- assert(Us == 1 && "Other than one Use allocated?");
- typedef PointerIntPair<void*, 2, Use::PrevPtrTag> TaggedPrefix;
- void *Raw = ::operator new(s + sizeof(TaggedPrefix) + sizeof(Use) * Us);
- TaggedPrefix *Pre = static_cast<TaggedPrefix*>(Raw);
- Pre->setFromOpaqueValue(0);
- void *Storage = Pre + 1; // skip over prefix
- Use *Start = static_cast<Use*>(Storage);
- Use *End = Start + Us;
- User *Obj = reinterpret_cast<User*>(End);
- Obj->OperandList = Start;
- Obj->NumOperands = Us;
- Use::initTags(Start, End);
- return Obj;
-}
-
//===----------------------------------------------------------------------===//
// User operator delete Implementation
//===----------------------------------------------------------------------===//
@@ -230,14 +205,6 @@ void User::operator delete(void *Usr) {
return;
}
//
- // check for the flag whether the destructor has detected a prefixed
- // allocation, in which case we remove the flag and delete starting
- // at OperandList
- if (reinterpret_cast<intptr_t>(Start->OperandList) & 1) {
- ::operator delete(reinterpret_cast<char*>(Start->OperandList) - 1);
- return;
- }
- //
// in all other cases just delete the nullary User (covers hung-off
// uses also
::operator delete(Usr);