mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-12 16:25:18 +00:00
Revert 99881, it brooke smooshlab's llvm-gcc-i386-darwin9.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99882 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -134,7 +134,6 @@ class BumpPtrAllocator {
|
|||||||
static MallocSlabAllocator DefaultSlabAllocator;
|
static MallocSlabAllocator DefaultSlabAllocator;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
typedef void (*DTorFunction)(void*);
|
|
||||||
BumpPtrAllocator(size_t size = 4096, size_t threshold = 4096,
|
BumpPtrAllocator(size_t size = 4096, size_t threshold = 4096,
|
||||||
SlabAllocator &allocator = DefaultSlabAllocator);
|
SlabAllocator &allocator = DefaultSlabAllocator);
|
||||||
~BumpPtrAllocator();
|
~BumpPtrAllocator();
|
||||||
@@ -143,11 +142,6 @@ public:
|
|||||||
/// to the beginning of it, freeing all memory allocated so far.
|
/// to the beginning of it, freeing all memory allocated so far.
|
||||||
void Reset();
|
void Reset();
|
||||||
|
|
||||||
/// Reset - like Reset(), but call DTorFunction for each allocated
|
|
||||||
/// object. This assumes that all objects allocated with this allocator
|
|
||||||
/// had the same size and alignment specified here.
|
|
||||||
void Reset(size_t Size, size_t Alignment, DTorFunction DTor);
|
|
||||||
|
|
||||||
/// Allocate - Allocate space at the specified alignment.
|
/// Allocate - Allocate space at the specified alignment.
|
||||||
///
|
///
|
||||||
void *Allocate(size_t Size, size_t Alignment);
|
void *Allocate(size_t Size, size_t Alignment);
|
||||||
|
@@ -82,11 +82,6 @@ void LiveIntervals::getAnalysisUsage(AnalysisUsage &AU) const {
|
|||||||
MachineFunctionPass::getAnalysisUsage(AU);
|
MachineFunctionPass::getAnalysisUsage(AU);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void VNInfoDTor(void* Ptr)
|
|
||||||
{
|
|
||||||
reinterpret_cast<VNInfo*>(Ptr)->~VNInfo();
|
|
||||||
}
|
|
||||||
|
|
||||||
void LiveIntervals::releaseMemory() {
|
void LiveIntervals::releaseMemory() {
|
||||||
// Free the live intervals themselves.
|
// Free the live intervals themselves.
|
||||||
for (DenseMap<unsigned, LiveInterval*>::iterator I = r2iMap_.begin(),
|
for (DenseMap<unsigned, LiveInterval*>::iterator I = r2iMap_.begin(),
|
||||||
@@ -96,7 +91,7 @@ void LiveIntervals::releaseMemory() {
|
|||||||
r2iMap_.clear();
|
r2iMap_.clear();
|
||||||
|
|
||||||
// Release VNInfo memroy regions after all VNInfo objects are dtor'd.
|
// Release VNInfo memroy regions after all VNInfo objects are dtor'd.
|
||||||
VNInfoAllocator.Reset((unsigned)sizeof(VNInfo), alignof<VNInfo>(), VNInfoDTor);
|
VNInfoAllocator.Reset();
|
||||||
while (!CloneMIs.empty()) {
|
while (!CloneMIs.empty()) {
|
||||||
MachineInstr *MI = CloneMIs.back();
|
MachineInstr *MI = CloneMIs.back();
|
||||||
CloneMIs.pop_back();
|
CloneMIs.pop_back();
|
||||||
|
@@ -78,21 +78,6 @@ void BumpPtrAllocator::Reset() {
|
|||||||
End = ((char*)CurSlab) + CurSlab->Size;
|
End = ((char*)CurSlab) + CurSlab->Size;
|
||||||
}
|
}
|
||||||
|
|
||||||
void BumpPtrAllocator::Reset(size_t Size, size_t Alignment, DTorFunction DTor) {
|
|
||||||
if (Alignment == 0) Alignment = 1;
|
|
||||||
MemSlab *Slab = CurSlab;
|
|
||||||
while (Slab) {
|
|
||||||
char *End = Slab == CurSlab ? CurPtr : (char*)Slab + Slab->Size;
|
|
||||||
for (char *Ptr = (char*)Slab+1; Ptr < End; Ptr += Size) {
|
|
||||||
Ptr = AlignPtr(Ptr, Alignment);
|
|
||||||
if (Ptr + Size <= End)
|
|
||||||
DTor(Ptr);
|
|
||||||
}
|
|
||||||
Slab = Slab->NextPtr;
|
|
||||||
}
|
|
||||||
Reset();
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Allocate - Allocate space at the specified alignment.
|
/// Allocate - Allocate space at the specified alignment.
|
||||||
///
|
///
|
||||||
void *BumpPtrAllocator::Allocate(size_t Size, size_t Alignment) {
|
void *BumpPtrAllocator::Allocate(size_t Size, size_t Alignment) {
|
||||||
|
Reference in New Issue
Block a user