В преддверии очередной конференции C++ Siberia, я решил выложить на всеобщее оборзрение запись доклада с февральской конференции C++ Russia, проходившей в городе-герое Санкт-Петербурге.
Зачастую, знакомство с алиасингом в C++ у многих программистов начинается и заканчивается одинаково:-fno-strict-aliasing . На вопросы новичка, более опытные коллеги отвечают в стиле: «не трогай! а то все сломаешь!». Новичок и не трогает.
В докладе сделана попытка заглянуть под капот компилятора и понять, что же там, внутри? Что такое alias analysis, где он может быть полезен, в чем его преимущества и недостатки. Тема рассмотрена и со стороны программиста и со стороны разработчика компилятора. А по сему, вопрос «зачем?» был центральным.
В докладе вы найдете:
Зачастую, знакомство с алиасингом в C++ у многих программистов начинается и заканчивается одинаково:
В докладе сделана попытка заглянуть под капот компилятора и понять, что же там, внутри? Что такое alias analysis, где он может быть полезен, в чем его преимущества и недостатки. Тема рассмотрена и со стороны программиста и со стороны разработчика компилятора. А по сему, вопрос «зачем?» был центральным.
В докладе вы найдете:
- Код Quake3 и стандарт IEEE754
- Магическую константу 0x5F3759DF
- Много ассемблера x86
- Много IR кода LLVM
- Rust, Java и даже Fortran