from random import random
|
|
from typing import List, Tuple, TypeVar
|
|
|
|
from gbso.program.program import Program
|
|
|
|
DEFAULT_NUM_ITERS = 1_000_000
|
|
|
|
DEFAULT_PROB_OPCODE = 0.25
|
|
DEFAULT_PROB_OPERAND = 0.25
|
|
DEFAULT_PROB_SWAP = 0.25
|
|
DEFAULT_PROB_INSN = 0.25
|
|
|
|
DEFAULT_PROB_INSN_UNUSED = 0.1
|
|
|
|
|
|
def optimize(
|
|
prgm: Program,
|
|
num_iters: int = DEFAULT_NUM_ITERS,
|
|
prob_opcode: float = DEFAULT_PROB_OPCODE,
|
|
prob_operand: float = DEFAULT_PROB_OPERAND,
|
|
prob_swap: float = DEFAULT_PROB_SWAP,
|
|
prob_insn: float = DEFAULT_PROB_INSN,
|
|
prob_insn_unused: float = DEFAULT_PROB_INSN_UNUSED,
|
|
) -> Program:
|
|
return prgm
|