WikiDer > Прыгающая резьба

Jump threading

В вычисление, прыгать поток это оптимизация компилятора из одного прыжка прямо во второй прыжок. Если второе условие является подмножеством первого или обратным ему, его можно исключить или пропустить через первый переход.[1] Это легко сделать за один проход программы, следуя ациклическим последовательным переходам, пока компилятор не достигнет фиксированной точки.

пример

Следующее псевдокод демонстрирует, когда прыжок может быть многопоточным.

   10. a = SomeNumber (); 20. ЕСЛИ a> 10 GOTO 50 ... 50. ЕСЛИ a> 0 GOTO 100 ...

Переход на строку 50 всегда выполняется, если выполняется переход на строку 20. Следовательно, переход в строке 20 можно смело модифицировать для перехода непосредственно к строке 100.

использованная литература