Вопросы с тегом 'llvm-codegen'

Вопросы о том, как LLVM генерирует машинный код из LLVM-IR или языков высокого уровня. Если вы спрашиваете об определенной архитектуре процессора, добавьте также соответствующий тег (например, "x86").
6

Допускает ли стандарт C++ неинициализированный bool для сбоя программы?

Я знаю, что "неопределенное поведение" в C++ может позволить компилятору делать все, что он хочет. Однако у меня произошел сбой, который удивил меня, так как я предположил, что код был достаточно безопасным. В этом случае настоящая проблема возникл...
10 янв. '19 в 1:39
1

Почему компилятор Rust не оптимизирует код, предполагая, что две изменяемые ссылки не могут иметь псевдоним?

Насколько я знаю, псевдонимы ссылок и указателей могут препятствовать способности компилятора генерировать оптимизированный код, поскольку они должны обеспечивать правильное поведение сгенерированного двоичного файла в случае, когда две ссылки/указат...
29 июл. '19 в 17:57
2

Почему при зацикливании массива с 240 или более элементами сильно сказывается производительность?

При выполнении цикла суммирования для массива в Rust я заметил огромное падение производительности, когда CAPACITY> = 240. CAPACITY = 239 примерно в 80 раз быстрее. Есть ли специальная оптимизация компиляции, которую Rust делает для "коротких" ма...
12 авг. '19 в 9:16
4

Как Rust 128-битное целое число "i128" работает в 64-битной системе?

Rust имеет 128-битные целые числа, они обозначены типом данных i128 (и u128 для беззнаковых целых): let a: i128 = 170141183460469231731687303715884105727; Как Rust заставляет эти значения i128 работать в 64-битной системе; например как это делает ...
03 авг. '19 в 16:44
3

Какие целые операции имеют более высокие альтернативные методы производительности в Rust?

При написании целочисленных функций в Rust, которые будут выполняться миллионы раз (думайте о пиксельной обработке), полезно использовать операции с максимальной производительностью - аналогично C/С++. Хотя справочное руководство объясняет изменения...
12 дек. '16 в 13:25
0

Получить размер типа LLVM/типа разыменования

Этот вопрос очень похож на этот, но я не совсем уверен, как получить размер в следующей ситуации: У меня есть тип указателя, например i32*. Теперь я хотел бы получить размер типа "указывает на", поэтому i32 (он же 4). Сейчас я использую следующий ...
26 авг. '19 в 7:09