Макс Казанцев — Коротко о Scalar Evolution: как LLVM справляется с проверками диапазонов
Ближайшая конференция C++ Russia: https://jrg.su/9Sszhd
— —
Скачать презентацию с сайта C++ Russia — https://jrg.su/A4aYMe
За безопасность всегда приходится платить, в том числе и за безопасный доступ к массивам. Из этого доклада вы узнаете, как компилятор на основе LLVM может сделать проверки диапазонов в таких языках, как Java, почти бесплатными, используя движок Scalar Evolution (SCEV).
Многие слышали что-то про SCEV, но не все знают, что это такое и как он устроен. Он является, пожалуй, одной из самых загадочных частей оптимизатора LLVM, но в то же время предоставляет большие возможности для улучшения кода.
Спикер рассказал, как SCEV устроен изнутри и как оптимизации, борющиеся с проверками диапазонов, извлекают из него пользу. Подробно разобрал несколько оптимизаций, благодаря которым можно не делать лишних проверок и за счет этого серьезно улучшить производительность кода на Java и подобных ей языкам.
Доклад для всех, кто интересуется компиляторными оптимизациями и производительностью кода!