Инструменты для отображения разливов в коде переменного тока

Есть ли инструмент, где у меня есть разливы в моем коде c?

Я имею в виду посмотреть, какой блок кода потенциально может создать регистр переместить в память.

РЕДАКТИРОВАТЬ: в чем заключается утечка:

В процессе компиляции вашего кода в какой-то момент вам придется выполнить распределение регистров. Компилятор создаст граф интерференции («переменные» - это узлы, и они связаны, если они живы одновременно). С этого момента существует линейный процесс, который будет раскрашивать график: для каждой переменной назначьте регистр, который не будет мешать другим переменным ... Если у вас недостаточно регистров для раскрашивания графика, алгоритм завершится ошибкой

Есть ли какой-нибудь инструмент, позволяющий найти утечки в моем коде c?

Я имею в виду посмотреть, какой блок кода потенциально может заставить регистр перемещаться в память.

РЕДАКТИРОВАТЬ: что такое утечка:

В файле процесс компиляции вашего кода в какой-то момент вам нужно будет выполнить распределение регистров. Компилятор создаст граф интерференции («переменные» - это узлы, и они связаны, если они живы одновременно). С этого момента существует линейный процесс, который будет раскрашивать график: для каждой переменной назначьте регистр, который не будет мешать другим переменным ... Если у вас недостаточно регистров для раскрашивания графика, алгоритм завершится ошибкой

Есть ли какой-нибудь инструмент, позволяющий найти утечки в моем коде c?

Я имею в виду посмотреть, какой блок кода потенциально может заставить регистр перемещаться в память.

РЕДАКТИРОВАТЬ: что такое утечка:

В файле процесс компиляции вашего кода в какой-то момент вам нужно будет выполнить распределение регистров. Компилятор создаст граф интерференции («переменные» - это узлы, и они связаны, если они живы одновременно). С этого момента существует линейный процесс, который будет раскрашивать график: для каждой переменной назначьте регистр, который не будет мешать другим переменным ... Если у вас недостаточно регистров для раскрашивания графика, алгоритм завершится ошибкой Компилятор создаст граф интерференции («переменные» - это узлы, и они связаны, если они живы одновременно). С этого момента существует линейный процесс, который будет раскрашивать график: для каждой переменной назначьте регистр, который не будет мешать другим переменным ... Если у вас недостаточно регистров для раскрашивания графика, алгоритм завершится ошибкой Компилятор создаст граф интерференции («переменные» - это узлы, и они связаны, если они живы одновременно). С этого момента существует линейный процесс, который будет раскрашивать график: для каждой переменной назначьте регистр, который не будет мешать другим переменным ... Если у вас недостаточно регистров для раскрашивания графика, алгоритм завершится ошибкой и переменная (регистр) будет удалена (перемещена в память).

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

Когда если вы хотите оптимизировать код, вам следует искать такие вещи, так как утечка даст дополнительное время для чтения / записи памяти. Я искал инструмент или флаг компилятора, который мог бы сказать мне, где происходит утечка, чтобы я мог оптимизировать.

5
задан Guillaume Massé 4 December 2010 в 20:58
поделиться