Pertanyaan yang diberi tag «llvm-codegen»

5
Apakah standar C ++ memungkinkan bool yang tidak diinisialisasi untuk crash suatu program?
Saya tahu bahwa "perilaku tidak terdefinisi" di C ++ dapat memungkinkan kompilator melakukan apa pun yang diinginkannya. Namun, saya mengalami crash yang mengejutkan saya, karena saya berasumsi bahwa kode itu cukup aman. Dalam kasus ini, masalah sebenarnya hanya terjadi pada platform tertentu menggunakan kompiler tertentu, dan hanya jika optimasi diaktifkan. …

1
Mengapa kompiler Rust tidak mengoptimalkan kode dengan asumsi bahwa dua referensi yang bisa diubah tidak bisa alias?
Sejauh yang saya tahu, referensi / pointer aliasing dapat menghambat kemampuan kompiler untuk menghasilkan kode yang dioptimalkan, karena mereka harus memastikan biner yang dihasilkan berperilaku dengan benar dalam kasus di mana dua referensi / pointer memang alias. Misalnya, dalam kode C berikut, void adds(int *a, int *b) { *a += …


4
Bagaimana cara kerja integer 128-bit `i128` pada sistem 64-bit?
Rust memiliki integer 128-bit, ini dilambangkan dengan tipe data i128(dan u128untuk int yang tidak ditandatangani): let a: i128 = 170141183460469231731687303715884105727; Bagaimana cara Rust membuat i128nilai - nilai ini bekerja pada sistem 64-bit; misalnya bagaimana cara menghitungnya? Karena, sejauh yang saya tahu, nilai tidak dapat masuk dalam satu register CPU x86-64, …

3
Mengapa LLVM mengalokasikan variabel redundan?
Berikut adalah file C sederhana dengan definisi enum dan mainfungsi: enum days {MON, TUE, WED, THU}; int main() { enum days d; d = WED; return 0; } Ini mentranspile ke LLVM IR berikut: define dso_local i32 @main() #0 { %1 = alloca i32, align 4 %2 = alloca i32, …
9 c  llvm  llvm-codegen 
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.