/** * Optimize assembly code with peephole strategy. * @param O Optimization level: * - 0: No optimization * - 1: Very basic optimization, just remove silly/unused code * - 2: Safely changes and delete code for smarter outcome * - 3: Use final optimizations tracing variable contents (beta) * - 4: Dangerous deep optimizations. Must be checked by developer * @param assemblyCode Input assembly * @param labels Array with labels (they will not be removed) * @returns Assembly code processed */ export default function optimizer(O: number, assemblyCode: string, labels: string[]): string;