In TrimAllocationToSize, if a block is below the minimum allocation size,
there is no new block added to the free list. Therefore on the next startFunctionBody call, a new slab must be allocated. llvm-svn: 77520
This commit is contained in:
parent
47d02732e0
commit
956a86445c
|
@ -351,9 +351,12 @@ namespace {
|
|||
iter = iter->Next;
|
||||
}
|
||||
|
||||
largest = largest - sizeof(MemoryRangeHeader);
|
||||
|
||||
// If this block isn't big enough for the allocation desired, allocate
|
||||
// another block of memory and add it to the free list.
|
||||
if (largest - sizeof(MemoryRangeHeader) < ActualSize) {
|
||||
if (largest < ActualSize ||
|
||||
largest <= FreeRangeHeader::getMinBlockSize()) {
|
||||
DOUT << "JIT: Allocating another slab of memory for function.";
|
||||
candidateBlock = allocateNewCodeSlab((size_t)ActualSize);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue