Làm thế nào để tắt tất cả các tối ưu hóa trong GCC? Sử dụng -O0 không hoạt động vì nó vẫn tối ưu hóa các câu lệnh không có hiệu ứng hoặc bất kỳ mã nào sau một vòng lặp vô hạn mà không có bất kỳ câu lệnh ngắt nào.Làm thế nào để tắt tất cả các tối ưu hóa trong GCC
8
A
Trả lời
7
Không có cách nào để làm cho gcc không bỏ qua mã và các mã không thể truy cập không có hiệu lực.
Điều bạn có thể làm là làm cho mã không thể truy cập được có thể truy cập được bằng cách sử dụng các biến dễ bay hơi.
volatile bool always_true = true;
if(always_true )
{
//infinite loop
//return something
}
//Useless code
trong ví dụ trên, gcc sẽ không optomize ra mã vô dụng vì nó không thể biết nó là Infact vô dụng
int a = 5;
int b = 5;
volatile int c = 9;
c += 37;
return a + b;
Trong ví dụ này, số nguyên c sẽ không được tối ưu hóa ra vì gcc không không thể biết đó là mã số chết.
2
Bạn phải làm cho mã của bạn gần như không thể được tối ưu hóa bởi trình biên dịch. Ví dụ:
- sử dụng
volatile
từ khóa trên các biến mà bạn muốn không được tối ưu hóa - chắc chắn rằng mã có hiệu lực thi hành, ví dụ: không chỉ là chỉ thay đổi giá trị biến mà còn in các giá trị hoặc lưu trữ nó để biến khác hay làm phép tính vào biến và lưu nó trong một biến khác
- tài liệu tham khảo/thay đổi biến trong chức năng khác để đảm bảo trình biên dịch không thể đánh giá nó không được sử dụng trong thời gian biên dịch
Các vấn đề liên quan
- 1. Cách tắt cờ tối ưu hóa cụ thể trong gcc
- 2. Làm cách nào để tắt tối ưu hóa đuôi trong gcc
- 3. Tối ưu hóa bộ phận trong gcc
- 4. Cách tắt tối ưu hóa trong LLVM
- 5. Làm thế nào để ngăn chặn gcc tối ưu hóa một số câu lệnh trong C?
- 6. Tối ưu hóa mã SSE của GCC
- 7. gcc -O4 cờ tối ưu hóa
- 8. Thứ tự các cờ tối ưu hóa GCC
- 9. Làm cách nào để vô hiệu hóa tối ưu hóa GCC khi sử dụng makefiles?
- 10. Không thể tắt trình tối ưu hóa gcc, Makefile từ tự động
- 11. Tắt tối ưu hóa cho một chức năng cụ thể trong gcc 4.2.2
- 12. Tối ưu hóa ViewState
- 13. Tại sao GCC không tối ưu hóa cấu trúc?
- 14. Tối ưu hóa điểm nổi biên dịch GCC
- 15. Tối ưu hóa tải tối ưu UITableView
- 16. GCC/Tối ưu hóa thời gian xây dựng
- 17. Tối ưu hóa các chuỗi trong Cython
- 18. Làm thế nào để vô hiệu hóa tối ưu hóa giá trị trả về trong Visual Studio 2010?
- 19. Không tối ưu hóa chuỗi nhỏ với gcc?
- 20. Tôi làm cách nào để tối ưu hóa mã này?
- 21. xcode 6.1 cách tắt tối ưu hóa (Swift)
- 22. Tối ưu hóa GCC này có đúng không?
- 23. Tối ưu hóa CALayer?
- 24. Cờ tối ưu hóa GCC cho Intel Atom
- 25. Tối ưu hóa các vòng trong Haskell
- 26. Apple LLVM 5.0 pragma tối ưu hóa
- 27. Làm thế nào để tối ưu hóa các kiểm tra testng và seleniums
- 28. Các tùy chọn GCC để tối ưu hóa trên kiến trúc CPU đã cho
- 29. Tối ưu hóa việc xây dựng một trie trên tất cả các chất nền
- 30. Tối ưu hóa ABAP
có là không có, tất cả Tôi có là -g -g strict-dwarf -Wall – user2124324
Tôi không nghĩ rằng bạn có thể tắt tất cả các tối ưu hóa. –
Thậm chí không có cờ gcc nào cũng có một số tối ưu cơ bản. Nó có ý nghĩa để loại bỏ các báo cáo không có hiệu ứng (tối ưu hóa hay không). Chỉ cần tò mò: tại sao bạn muốn giữ mã chết? –