示例#1
0
        protected override void Run()
        {
            var allocator = new GreedyRegisterAllocator(BasicBlocks, MethodCompiler.VirtualRegisters, MethodCompiler.StackLayout, Architecture, this);

            allocator.Start();

            return;
        }
        public void LiveRangeTest()
        {
            var basicBlocks = CreateBasicBlockInstructionSet();

            GreedyRegisterAllocator.NumberInstructions(basicBlocks);

            var liveRange = new LiveRange(
                new SlotIndex(basicBlocks[0].First),
                new SlotIndex(basicBlocks[0].Last),
                new List <SlotIndex>(),
                new List <SlotIndex>()
                );

            Assert.True(liveRange.IsEmpty);

            //liveRange.SplitAt(basicBlocks.)
        }
示例#3
0
        protected override void Run()
        {
            var allocator = new GreedyRegisterAllocator(BasicBlocks, MethodCompiler.VirtualRegisters, Architecture, MethodCompiler.AddStackLocal, StackFrame, CreateTraceLog);

            allocator.Start();
        }