Макс Казанцев
Компания: Сбер
За безопасность всегда приходится платить, в том числе и за безопасный доступ к массивам. Из этого доклада вы узнаете, как компилятор на основе LLVM может сделать проверки диапазонов в таких языках, как Java, почти бесплатными, используя движок Scalar Evolution (SCEV).
Многие слышали что-то про SCEV, но не все знают, что это такое и как он устроен. Он является, пожалуй, одной из самых загадочных частей оптимизатора LLVM, но в то же время предоставляет большие возможности для улучшения кода.
Расскажу, как SCEV устроен изнутри и как оптимизации, борющиеся с проверками диапазонов, извлекают из него пользу. Подробно разберем несколько оптимизаций, благодаря которым можно не делать лишних проверок и за счет этого серьезно улучшить производительность кода на Java и подобных ей языкам.
Жду всех, кто интересуется компиляторными оптимизациями и производительностью кода!
Компания: Сбер
Компания: Сбер