llvm-codegen

Czy standard C++ pozwala na niezainicjowaną bool ' a na awarię programu?

Wiem, że "undefined behavior" W C++ może pozwolić kompilatorowi robić wszystko, co chce. Jednak miałem awarię, która mnie za ... przypadku implementacja zakładana że wszystkie Boole będą zawierały tylko 0 LUB 1, a każda inna wartość jest niezdefiniowana?

Dlaczego kompilator Rusta nie optymalizuje kodu przy założeniu, że dwa zmienne odniesienia nie mogą być aliasem?

Z tego, co wiem, aliasing referencji/wskaźników może utrudnić kompilatorowi generowanie zoptymalizowanego kodu, ponieważ musi ... zcze analizy aliasów do optymalizacji? Czy to dlatego, że jest jeszcze szansa, że a i b mogą się nazywać, nawet w safe Rust?

Dlaczego duży wpływ na wydajność ma zapętlenie tablicy zawierającej 240 lub więcej elementów?

Podczas uruchamiania pętli sum nad tablicą w Rust, zauważyłem ogromny spadek wydajności, gdy CAPACITY > = 240. CAPACITY = ... r.len() { s += arr[i]; } sum += s; } println!("sum:{} time:{:?}", sum, now.elapsed()); }

Jak działa 128-bitowa liczba całkowita Rusta `i128` na 64-bitowym systemie?

Rust ma 128-bitowe liczby całkowite, są one oznaczone typem danych i128 (i u128 dla niepodpisanych wejść): let a: i128 = 17 ... 2 rejestrów dla jednej wartości i128? Czy zamiast tego używają jakiejś wielkiej struktury całkowitej do ich reprezentowania?