Привет! Меня зовут Владислав, я разрабатываю компиляторы в YADRO. В этой статье я расскажу вам про алиасинг памяти в C++: как он развивался, к чему пришел сейчас и что комитет по стандартизации языка думает делать с алиасингом в будущем. По пути я немного затрону алиасинг в других языках, рассмотрю связанные случаи undefined behavior, а также пропозалы C++, которые, как ожидалось, проблемы с алиасингом решат.
Рубрика «алиасинг»
Алиасинг памяти в C++: прошлое, настоящее, будущее
2026-06-10 в 12:42, admin, рубрики: C, c++, undefined behaviour, алиасинг, Компиляторы, производительностьТроллейбус из буханки или alias analysis в LLVM
2016-07-24 в 12:37, admin, рубрики: alias analysis, C, c++, LLVM, алиасинг, выстрелить в ногу, КодоБред, Компиляторы, ненормальное программирование, никто не читает теги
В преддверии очередной конференции C++ Siberia, я решил выложить на всеобщее оборзрение запись доклада с февральской конференции C++ Russia, проходившей в городе-герое Санкт-Петербурге.
Зачастую, знакомство с алиасингом в C++ у многих программистов начинается и заканчивается одинаково: -fno-strict-aliasing. На вопросы новичка, более опытные коллеги отвечают в стиле: «не трогай! а то все сломаешь!». Новичок и не трогает.
В докладе была сделана попытка заглянуть под капот компилятора и понять, что же там, внутри. Что такое алиасинг, где он может быть полезен и какие реальные преимущества дает. Тема была рассмотрена и со стороны программиста и со стороны разработчика компилятора. А по сему, вопрос «зачем?» был центральным.
В докладе вы найдете:
- Код Quake3
- Магическую константу 0x5F3759DF
- Много ассемблера
- Много IR кода LLVM
- Rust, Java и даже Fortran
