Ignore:
Timestamp:
Aug 26, 2010, 4:21:24 PM (15 years ago)
Author:
[email protected]
Message:

Rolling out r64608, this regressed performance.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • assembler/ARMAssembler.cpp:

(JSC::ARMAssembler::executableCopy):

  • assembler/LinkBuffer.h:

(JSC::LinkBuffer::LinkBuffer):
(JSC::LinkBuffer::~LinkBuffer):
(JSC::LinkBuffer::performFinalization):

  • assembler/MIPSAssembler.h:

(JSC::MIPSAssembler::executableCopy):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::executableCopy):

  • bytecode/StructureStubInfo.h:

(JSC::StructureStubInfo::initGetByIdProto):
(JSC::StructureStubInfo::initGetByIdChain):
(JSC::StructureStubInfo::initGetByIdSelfList):
(JSC::StructureStubInfo::initGetByIdProtoList):
(JSC::StructureStubInfo::initPutByIdTransition):

  • jit/ExecutableAllocator.cpp:

(JSC::ExecutablePool::systemAlloc):

  • jit/ExecutableAllocator.h:

(JSC::ExecutablePool::create):
(JSC::ExecutableAllocator::ExecutableAllocator):
(JSC::ExecutableAllocator::poolForSize):
(JSC::ExecutablePool::ExecutablePool):
(JSC::ExecutablePool::poolAllocate):

  • jit/ExecutableAllocatorFixedVMPool.cpp:

(JSC::FixedVMPoolAllocator::allocInternal):

  • jit/JIT.cpp:

(JSC::JIT::privateCompile):

  • jit/JIT.h:

(JSC::JIT::compileGetByIdProto):
(JSC::JIT::compileGetByIdSelfList):
(JSC::JIT::compileGetByIdProtoList):
(JSC::JIT::compileGetByIdChainList):
(JSC::JIT::compileGetByIdChain):
(JSC::JIT::compilePutByIdTransition):
(JSC::JIT::compilePatchGetArrayLength):

  • jit/JITOpcodes.cpp:

(JSC::JIT::privateCompileCTIMachineTrampolines):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::privateCompileCTIMachineTrampolines):
(JSC::JIT::privateCompileCTINativeCall):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::stringGetByValStubGenerator):
(JSC::JIT::privateCompilePutByIdTransition):
(JSC::JIT::privateCompilePatchGetArrayLength):
(JSC::JIT::privateCompileGetByIdProto):
(JSC::JIT::privateCompileGetByIdSelfList):
(JSC::JIT::privateCompileGetByIdProtoList):
(JSC::JIT::privateCompileGetByIdChainList):
(JSC::JIT::privateCompileGetByIdChain):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::stringGetByValStubGenerator):
(JSC::JIT::privateCompilePutByIdTransition):
(JSC::JIT::privateCompilePatchGetArrayLength):
(JSC::JIT::privateCompileGetByIdProto):
(JSC::JIT::privateCompileGetByIdSelfList):
(JSC::JIT::privateCompileGetByIdProtoList):
(JSC::JIT::privateCompileGetByIdChainList):
(JSC::JIT::privateCompileGetByIdChain):

  • jit/JITStubs.cpp:

(JSC::JITThunks::tryCachePutByID):
(JSC::JITThunks::tryCacheGetByID):
(JSC::DEFINE_STUB_FUNCTION):
(JSC::getPolymorphicAccessStructureListSlot):

  • jit/JITStubs.h:
  • jit/SpecializedThunkJIT.h:

(JSC::SpecializedThunkJIT::finalize):

  • runtime/ExceptionHelpers.cpp:
  • runtime/ExceptionHelpers.h:
  • runtime/Executable.cpp:

(JSC::EvalExecutable::compileInternal):
(JSC::ProgramExecutable::compileInternal):
(JSC::FunctionExecutable::compileForCallInternal):
(JSC::FunctionExecutable::compileForConstructInternal):
(JSC::FunctionExecutable::reparseExceptionInfo):
(JSC::EvalExecutable::reparseExceptionInfo):

  • yarr/RegexJIT.cpp:

(JSC::Yarr::RegexGenerator::compile):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/jit/ExecutableAllocator.h

    r65042 r66150  
    108108    typedef Vector<Allocation, 2> AllocationList;
    109109
    110     static PassRefPtr<ExecutablePool> create(size_t n);
     110    static PassRefPtr<ExecutablePool> create(size_t n)
     111    {
     112        return adoptRef(new ExecutablePool(n));
     113    }
    111114
    112115    void* alloc(size_t n)
     
    147150    static void systemRelease(Allocation& alloc);
    148151
    149     ExecutablePool(Allocation&);
     152    ExecutablePool(size_t n);
    150153
    151154    void* poolAllocate(size_t n);
     
    165168        if (!pageSize)
    166169            intializePageSize();
    167         if (isValid()) {
     170        if (isValid())
    168171            m_smallAllocationPool = ExecutablePool::create(JIT_ALLOCATOR_LARGE_ALLOC_SIZE);
    169             if (!m_smallAllocationPool)
    170                 CRASH();
    171         }
    172172#if !ENABLE(INTERPRETER)
    173173        else
     
    186186
    187187        // If the request is large, we just provide a unshared allocator
    188         if (n > JIT_ALLOCATOR_LARGE_ALLOC_SIZE) 
     188        if (n > JIT_ALLOCATOR_LARGE_ALLOC_SIZE)
    189189            return ExecutablePool::create(n);
    190190
     
    309309};
    310310
    311 inline PassRefPtr<ExecutablePool> ExecutablePool::create(size_t n)
    312     {
    313         Allocation mem = systemAlloc(roundUpAllocationSize(n, JIT_ALLOCATOR_PAGE_SIZE));
    314         if (!mem)
    315             return 0;
    316         return adoptRef(new ExecutablePool(mem));
    317     }
    318 
    319 inline ExecutablePool::ExecutablePool(Allocation& mem)
     311inline ExecutablePool::ExecutablePool(size_t n)
    320312{
    321     ASSERT(!!mem);
     313    size_t allocSize = roundUpAllocationSize(n, JIT_ALLOCATOR_PAGE_SIZE);
     314    Allocation mem = systemAlloc(allocSize);
    322315    m_pools.append(mem);
    323316    m_freePtr = static_cast<char*>(mem.base());
    324     m_end = m_freePtr + mem.size();
     317    if (!m_freePtr)
     318        CRASH(); // Failed to allocate
     319    m_end = m_freePtr + allocSize;
    325320}
    326321
     
    331326    Allocation result = systemAlloc(allocSize);
    332327    if (!result.base())
    333         return 0; // Failed to allocate
    334 
     328        CRASH(); // Failed to allocate
     329   
    335330    ASSERT(m_end >= m_freePtr);
    336331    if ((allocSize - n) > static_cast<size_t>(m_end - m_freePtr)) {
Note: See TracChangeset for help on using the changeset viewer.