rubyx/test/risc/test_standard_allocator1.rb
Torsten f13e6dcf57 fix releasing in allocator
fell into hash new trap, which reuses the object you give it. not good for mutable objects like the array.
also previous logic was broken in terms of machine vs ssa names
2020-03-22 14:31:43 +02:00

24 lines
698 B
Ruby

require_relative "../helper"
module Risc
class TestStandardAllocator1 < MiniTest::Test
include SlotMachineCompile
def setup
coll = compile_slot( "class Space ; def main(); main{return 'Ho'};return 'Hi'; end; end;")
@compiler = coll.to_risc.method_compilers
@allocator = Platform.for(:arm).allocator(@compiler)
end
def test_main
assert_equal :main , @compiler.callable.name
end
def test_allocate_runs
assert_nil @allocator.allocate_regs
assert_equal 0 , @allocator.used_regs.length
end
def test_live_length
live = @allocator.walk_and_mark(@compiler.risc_instructions)
assert_equal 10 , live.length
end
end
end