def main():
    if len(argv) >= 2 and argv[1] == '-h':
        print_usage()
    elif len(argv) >= 3 and argv[1] == '-x':
        if not path.exists(argv[2]):
            raise IOError('Invalid file name.')

        scanner = ILOCScanner()
        operations, src_regs = scanner.scan_file(argv[2])

        allocator = RegisterAllocator(operations, src_regs)
        allocator.rename_regs()
        allocator.print_vrs()
    elif len(argv) >= 3 and argv[1].isdigit():
        if not path.exists(argv[2]):
            raise IOError('Invalid file name.')

        scanner = ILOCScanner()
        operations, src_regs = scanner.scan_file(argv[2])

        allocator = RegisterAllocator(operations, src_regs)
        allocator.rename_regs()
        allocator.alloc_regs(int(argv[1]))
        allocator.print_prs()
    else:
        raise ValueError('Illegal arguments.')
Example #2
0
def main():
    if len(argv) >= 2 and argv[1] == "-h":
        print(HELP)
    elif len(argv) >= 2:
        if not path.exists(argv[1]):
            raise IOError("Could not find the file {}.".format(argv[1]))

        scanner = ILOCScanner()
        operations, src_regs = scanner.scan_file(argv[1])
        scheduler = Scheduler(operations, src_regs)
        scheduler.rename_regs()
        scheduler.build_dependence_graph()
        scheduler.perform()
    else:
        print("Wrong arguments.")
Example #3
0
def main():
    if len(argv) >= 2 and argv[1] == '-h':
        print(HELP)
    elif len(argv) >= 2:
        if not path.exists(argv[1]):
            raise IOError('Could not find the file {}.'.format(argv[1]))

        scanner = ILOCScanner()
        operations, src_regs = scanner.scan_file(argv[1])
        scheduler = Scheduler(operations, src_regs)
        scheduler.rename_regs()
        scheduler.build_dependence_graph()
        scheduler.perform()
    else:
        print('Wrong arguments.')
from ILOCScanner import ILOCScanner
from RegisterAllocator import RegisterAllocator

scanner = ILOCScanner()
operations, src_regs = scanner.scan_file("report/report5.i")
# print(operations.size)

allocator = RegisterAllocator(operations, src_regs)
allocator.rename_regs()
# allocator.print_vrs()
allocator.alloc_regs(5)
allocator.print_prs()
Example #5
0
from ILOCScanner import ILOCScanner
from scheduler import Scheduler

scanner = ILOCScanner()
operations, src_regs = scanner.scan_file('report/report06.i')
scheduler = Scheduler(operations, src_regs)
scheduler.rename_regs()
scheduler.build_dependence_graph()

with open('graph.dot', 'w') as f:
    f.write(scheduler.to_graph())

scheduler.perform()