Исправление intelfx, (текущая версия) :
Ну во-первых совершенно разные ситуации.
Что значит «совершенно разные»? В одном случае компилятор делает некие предположения насчёт поведения функции memcpy(), а именно — что в список её побочных эффектов не входит скачивание двух гигабайт прона тебе в ~/Downloads, следовательно, её можно заменить builtin'ом и развернуть в две инструкции.
А раз так, то компилятор мог бы сделать аналогичные предположения насчёт поведения своего стандартного аллокатора и заменить его вызов на подстановку заранее выделенного адреса в .rodata.
Вот мой ход рассуждений. Дальше ставится вопрос: этот ход рассуждений где-то ошибочен, или же подобная оптимизация попросту «не реализована»?
Исходная версия intelfx, :
Ну во-первых совершенно разные ситуации.
Что значит «совершенно разные»? В одном случае компилятор делает некие предположения насчёт поведения функции memcpy(): а именно — что в список её побочных эффектов не входит скачивание двух гигабайт прона тебе в ~/Downloads, следовательно, её можно заменить builtin'ом и развернуть в две инструкции.
А раз так, то компилятор мог бы сделать аналогичные предположения насчёт поведения своего стандартного аллокатора и заменить его вызов на подстановку заранее выделенного адреса в .rodata.
Вот мой ход рассуждений. Дальше ставится вопрос: этот ход рассуждений где-то ошибочен, или же подобная оптимизация попросту «не реализована»?