LINUX.ORG.RU

История изменений

Исправление hateyoufeel, (текущая версия) :

Встречный вопрос: компилятор обязан выдавать один и тот же асм на одинаковом коде (учитывая твои вставки)? Фазы луны / общее состояние памяти и состояние системы не влияет?

Не, в общем случае не обязан. Код аллокации регистров обычно основан на решении задачи раскрашивания графа. Тут у чувака просто граф изменился слегка или ноды в нём в другом порядке вставлены в стек при раскрашивании, и поэтому используются другие регистры.

Про это можно тут почитать: https://groups.seas.harvard.edu/courses/cs153/2018fa/lectures/Lec20-Register-alloc-I.pdf

Но мне тоже интересно, какое это имеет значение в его случае. И зачем ему такой старый компилятор 0__o

Исправление hateyoufeel, :

Встречный вопрос: компилятор обязан выдавать один и тот же асм на одинаковом коде (учитывая твои вставки)? Фазы луны / общее состояние памяти и состояние системы не влияет?

Не, в общем случае не обязан. Код аллокации регистров обычно основан на решении задачи раскрашивании графа. Тут у чувака просто граф изменился слегка или ноды в нём в другом порядке вставлены в стек при раскрашивании, и поэтому используются другие регистры.

Про это можно тут почитать: https://groups.seas.harvard.edu/courses/cs153/2018fa/lectures/Lec20-Register-alloc-I.pdf

Но мне тоже интересно, какое это имеет значение в его случае. И зачем ему такой старый компилятор 0__o

Исправление hateyoufeel, :

Встречный вопрос: компилятор обязан выдавать один и тот же асм на одинаковом коде (учитывая твои вставки)? Фазы луны / общее состояние памяти и состояние системы не влияет?

Не, в общем случае не обязан. Код аллокации регистров обычно основан на решении задачи раскрашивании графа. Тут у чувака просто граф изменился слегка или ноды в нём в другом порядке вставлены в стек при раскрашивании, и поэтому используются другие регистры.

Про это можно тут почитать: https://groups.seas.harvard.edu/courses/cs153/2018fa/lectures/Lec20-Register-alloc-I.pdf

Но мне тоже интересно, какое это имеет значение в его случае.

Исходная версия hateyoufeel, :

Встречный вопрос: компилятор обязан выдавать один и тот же асм на одинаковом коде (учитывая твои вставки)? Фазы луны / общее состояние памяти и состояние системы не влияет?

Не, в общем случае не обязан. Код аллокации регистров обычно основан на решении задачи о 5 красках через теорию графов. Тут у чувака просто граф изменился слегка или ноды в нём в другом порядке вставлены, и поэтому используются другие регистры.

Про это можно тут почитать: https://groups.seas.harvard.edu/courses/cs153/2018fa/lectures/Lec20-Register-alloc-I.pdf

Но мне тоже интересно, какое это имеет значение в его случае.