Оптимизируйте код путем переупорядочения заменимых операндов

В этом примере показано, как переупорядочить заменимые операнды, чтобы сделать выражения леворекурсивными. Оставленный - рекурсивное переупорядочение сохраняет стековое пространство в памяти. Эта оптимизация повышает эффективность кода.

Модель в качестве примера

Чтобы переупорядочить заменимые операнды, создайте эту модель и назовите ее operand_order. Выходной сигнал является результатом умножения сигнала от Inport блока In1 суммой сигналов от Inport блоков In2 и In3.

Сгенерируйте код

  1. Откройте диалоговое окно Model Configuration Parameters. На вкладке Code Style выберите параметр Preserve operand order in expression.

  2. Сгенерируйте код для модели.

В operand_order.c файл, operand_order_step функция содержит этот код:

operand_order_Y.Out1 = operand_order_U.In1 * (operand_order_U.In2 +
    operand_order_U.In3);

Генератор кода сохраняет заданный порядок выражения в модели, которая увеличивает удобочитаемость кода для трассируемости кода.

Сгенерируйте код с оптимизацией

  1. Откройте диалоговое окно Model Configuration Parameters. На вкладке Code Style очистите параметр Preserve operand order in expression.

  2. Сгенерируйте код для модели.

В operand_order.c файл, operand_order_step функция содержит этот код:

operand_order_Y.Out1 = (operand_order_U.In2 + operand_order_U.In3) *
    operand_order_U.In1;

Генератор кода оптимизирует код путем переупорядочения заменимых операндов, чтобы сделать выражение леворекурсивным, которые повышают эффективность кода.

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте