Как GCC (не Clang) делает эту оптимизацию, решая, что хранилище одного члена структуры не может повлиять на члена другогC++

Программы на C++. Форум разработчиков
Anonymous
Как GCC (не Clang) делает эту оптимизацию, решая, что хранилище одного члена структуры не может повлиять на члена другог

Сообщение Anonymous »

Это рассматриваемый код: < /p>

Код: Выделить всё

struct Cell
{
Cell* U;
Cell* D;
void Detach();
};

void Cell::Detach()
{
U->D = D;
D->U = U;
}
< /code>
clang -14 -o3 производит: < /p>
mov     rax, qword ptr [rdi]          

Подробнее здесь: [url]https://stackoverflow.com/questions/71343461/how-does-gcc-not-clang-make-this-optimization-deciding-that-a-store-to-one-str[/url]

Вернуться в «C++»