«llvm-codegen» etiketlenmiş sorular

5
C ++ standardı, başlatılmamış bir bool'un bir programı çökmesine izin veriyor mu?
C ++ bir "tanımsız davranış" derleyicinin istediği her şeyi yapmasına izin verebilir biliyorum. Ancak, kodun yeterince güvenli olduğunu düşündüğüm için beni şaşırtan bir çöküş yaşadım. Bu durumda, asıl sorun sadece belirli bir derleyici kullanan belirli bir platformda ve sadece optimizasyon etkinleştirildiğinde gerçekleşti. Sorunu yeniden oluşturmak ve en üst düzeye çıkarmak …

1
Rust derleyicisi neden iki değiştirilebilir başvurunun diğer adının kullanılamayacağını varsayarak kodu en iyi duruma getirmiyor?
Bildiğim kadarıyla, referans / işaretçi takma adı, derleyicinin optimize edilmiş kod üretme yeteneğini engelleyebilir, çünkü iki referansın / işaretçinin gerçekten takma adda oluşturulduğu ikili kodun doğru şekilde davranmasını sağlamalıdırlar. Örneğin, aşağıdaki C kodunda, void adds(int *a, int *b) { *a += *b; *a += *b; } bayrak clang version 6.0.0-1ubuntu2 …

2
240 veya daha fazla öğeye sahip bir dizi üzerinde döngü yaparken neden büyük bir performans etkisi var?
Rust'da bir dizi üzerinde bir toplam döngüsü çalıştırırken, CAPACITY= 240 CAPACITYise büyük bir performans düşüşü fark ettim. = 239 yaklaşık 80 kat daha hızlı. Rust'un "kısa" diziler için yaptığı özel derleme optimizasyonu var mı? İle derlendi rustc -C opt-level=3. use std::time::Instant; const CAPACITY: usize = 240; const IN_LOOPS: usize = …

4
Rust'un 128 bitlik tamsayısı "i128" 64 bitlik bir sistemde nasıl çalışır?
Rust, 128 bitlik tam sayılara sahiptir, bunlar veri türüyle gösterilir i128(ve u128işaretsiz girişler için): let a: i128 = 170141183460469231731687303715884105727; Rust bu i128değerleri 64 bitlik bir sistemde nasıl çalıştırır; örneğin bunlar üzerinde nasıl aritmetik yapar? Bildiğim kadarıyla, değer bir x86-64 CPU'nun bir yazmacına sığamayacağından, derleyici bir şekilde bir i128değer için 2 …

3
LLVM neden gereksiz bir değişken ayırıyor?
İşte bir enum tanımı ve mainişlevi olan basit bir C dosyası : enum days {MON, TUE, WED, THU}; int main() { enum days d; d = WED; return 0; } Aşağıdaki LLVM IR'ye aktarılır: define dso_local i32 @main() #0 { %1 = alloca i32, align 4 %2 = alloca i32, …
9 c  llvm  llvm-codegen 
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.