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

5
Допускает ли стандарт C ++ неинициализированный bool для сбоя программы?
Я знаю, что «неопределенное поведение» в C ++ может позволить компилятору делать все, что он захочет. Однако у меня произошел сбой, который удивил меня, так как я предположил, что код достаточно безопасен. В этом случае настоящая проблема возникла только на конкретной платформе, использующей определенный компилятор, и только если была включена …

1
Почему компилятор Rust не оптимизирует код, предполагая, что две изменяемые ссылки не могут иметь псевдоним?
Насколько я знаю, псевдонимы ссылок / указателей могут препятствовать способности компилятора генерировать оптимизированный код, поскольку они должны обеспечивать правильное поведение сгенерированного двоичного файла в случае, когда две ссылки / указатели действительно являются псевдонимами. Например, в следующем коде C, void adds(int *a, int *b) { *a += *b; *a += *b; …

2
Почему при зацикливании массива с 240 или более элементами сильно сказывается производительность?
При выполнении цикла суммы над массивом в Rust я заметил огромное падение производительности, когда CAPACITY> = 240. CAPACITY= 239 примерно в 80 раз быстрее. Есть ли специальная оптимизация компиляции, которую Rust делает для «коротких» массивов? Составлено с rustc -C opt-level=3. use std::time::Instant; const CAPACITY: usize = 240; const IN_LOOPS: usize …

4
Как 128-битное целое число i128 в Rust работает в 64-битной системе?
Rust имеет 128-битные целые числа, они обозначаются типом данных i128(и u128для целых чисел без знака): let a: i128 = 170141183460469231731687303715884105727; Как Rust заставляет эти i128значения работать в 64-битной системе; например, как он делает с ними арифметические операции? Поскольку, насколько мне известно, значение не может поместиться в один регистр процессора x86-64, …

1
Когда в Rust следует использовать inline?
В Rust есть "встроенный" атрибут, который можно использовать в одном из этих трех вариантов: #[inline] #[inline(always)] #[inline(never)] Когда их следует использовать? В справочнике Rust мы видим раздел встроенных атрибутов, в котором говорится Компилятор автоматически встраивает функции на основе внутренней эвристики. Неправильное встраивание функций может фактически замедлить работу программы, поэтому использовать …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.