diff options
author | 2023-06-16 12:18:27 +0100 | |
---|---|---|
committer | 2023-06-21 07:59:13 +0000 | |
commit | 70bba9c9f5fbba03c62a4542411e1d938375f14e (patch) | |
tree | 0b4ef702e671db908321639d39912636603166bc /compiler/optimizing/codegen_test_utils.h | |
parent | 5bf0f68407d3467a3fbfa9ab9ae0c8fabead615b (diff) |
Remove CodeAllocator and the extra copy of generated code.
The code used to copy the final generated code twice: from assembler to
CodeAllocator, and then to CodeAllocator to SwapAllocator/JitMemory.
The assemblers never depended on the exact location of the generated
code, so just drop that feature.
Test: test.py
Change-Id: I8dc82e4926097092b9aac336a5a5d40f79dc62ca
Diffstat (limited to 'compiler/optimizing/codegen_test_utils.h')
-rw-r--r-- | compiler/optimizing/codegen_test_utils.h | 32 |
1 files changed, 4 insertions, 28 deletions
diff --git a/compiler/optimizing/codegen_test_utils.h b/compiler/optimizing/codegen_test_utils.h index 53163daabb..a8425c9915 100644 --- a/compiler/optimizing/codegen_test_utils.h +++ b/compiler/optimizing/codegen_test_utils.h @@ -167,28 +167,6 @@ class TestCodeGeneratorX86 : public x86::CodeGeneratorX86 { }; #endif -class InternalCodeAllocator : public CodeAllocator { - public: - InternalCodeAllocator() : size_(0) { } - - uint8_t* Allocate(size_t size) override { - size_ = size; - memory_.reset(new uint8_t[size]); - return memory_.get(); - } - - size_t GetSize() const { return size_; } - ArrayRef<const uint8_t> GetMemory() const override { - return ArrayRef<const uint8_t>(memory_.get(), size_); - } - - private: - size_t size_; - std::unique_ptr<uint8_t[]> memory_; - - DISALLOW_COPY_AND_ASSIGN(InternalCodeAllocator); -}; - static bool CanExecuteOnHardware(InstructionSet target_isa) { return (target_isa == kRuntimeISA) // Handle the special case of ARM, with two instructions sets (ARM32 and Thumb-2). @@ -247,8 +225,7 @@ static void VerifyGeneratedCode(InstructionSet target_isa, } template <typename Expected> -static void Run(const InternalCodeAllocator& allocator, - const CodeGenerator& codegen, +static void Run(const CodeGenerator& codegen, bool has_result, Expected expected) { InstructionSet target_isa = codegen.GetInstructionSet(); @@ -260,7 +237,7 @@ static void Run(const InternalCodeAllocator& allocator, }; CodeHolder code_holder; const void* method_code = - code_holder.MakeExecutable(allocator.GetMemory(), ArrayRef<const uint8_t>(), target_isa); + code_holder.MakeExecutable(codegen.GetCode(), ArrayRef<const uint8_t>(), target_isa); using fptr = Expected (*)(); fptr f = reinterpret_cast<fptr>(reinterpret_cast<uintptr_t>(method_code)); @@ -294,9 +271,8 @@ static void RunCodeNoCheck(CodeGenerator* codegen, register_allocator->AllocateRegisters(); } hook_before_codegen(graph); - InternalCodeAllocator allocator; - codegen->Compile(&allocator); - Run(allocator, *codegen, has_result, expected); + codegen->Compile(); + Run(*codegen, has_result, expected); } template <typename Expected> |