История изменений
Исправление 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
Но мне тоже интересно, какое это имеет значение в его случае.