Đọc hướng dẫn sử dụng gcc, tôi thấy một họ gồm các tùy chọn tối ưu hóa -ftree-***
. Mục đích của các tùy chọn này là gì? "Cây" là gì?mục đích của "cây - ***" gia đình của các tùy chọn tối ưu hóa GCC là gì?
Trả lời
Chúng là trình tối ưu hóa chuyển hoạt động trên các cây (SSA) bên trong trình biên dịch, thay vì trên cấp RTL (đăng ký chuyển ngôn ngữ).
Đối với một cái nhìn tổng quan về điều này là về, xem tài liệu internals GCC: http://gcc.gnu.org/onlinedocs/gccint/
Đối với một giới thiệu về SSA, xem http://en.wikipedia.org/wiki/Static_single_assignment_form
Cảm ơn. Tôi có cảm giác rằng tôi đang mở một thùng giun ở đây (tôi không phải là một người biên dịch), nhưng bạn có thể xây dựng một chút về những cây SSA này không? Sự khác nhau giữa "bên trong trình biên dịch" và "ở cấp RTL" là gì? – ysap
@ysap: xem http://www.redhat.com/magazine/002dec04/features/gcc/figs/tree-ssa-phases.png từ http://www.redhat.com/magazine/002dec04/features/gcc/để biết tổng quan về các bước biên dịch gcc – Christoph
@ysap: Đây là một chủ đề lớn. Ngoài các liên kết đẹp được đăng bởi Christoph, hãy xem các liên kết tôi đã thêm vào trong chỉnh sửa của mình. – janneb
- 1. Tối ưu hóa mã SSE của GCC
- 2. Các tùy chọn GCC để tối ưu hóa trên kiến trúc CPU đã cho
- 3. Tối ưu hóa bộ phận trong gcc
- 4. OPTION trong tùy chọn của GCC "-Wl, OPTION" là gì
- 5. mục đích của tùy chọn kích hoạt cạnh của epoll là gì?
- 6. gcc -O4 cờ tối ưu hóa
- 7. Mục đích của __cxa_pure_virtual là gì?
- 8. Mục đích của 'var' là gì?
- 9. SQLite tham gia tối ưu hóa
- 10. Logic cho chương trình cây gia đình
- 11. Tùy chọn tối ưu hóa giao diện người dùng cho Android là gì?
- 12. Mục đích của requestWindowFeature() là gì?
- 13. Mục đích của character_set_connection là gì?
- 14. Vẽ cây gia đình với WPF
- 15. Mục đích của thư mục buildSrc của gradle là gì?
- 16. Mục đích của cờ AI_V4MAPPED trong getaddrinfo là gì?
- 17. Mục đích của tệp vshost.exe là gì?
- 18. Mục đích của tệp .edmx là gì?
- 19. Mục đích của tệp pdb là gì?
- 20. Mục đích của ldexp là gì?
- 21. Mục đích của is_uploaded_file() là gì?
- 22. Mục đích của Parse Vexing là gì?
- 23. Mục đích của `__metaclass__ = type` là gì?
- 24. Mục đích của config.assets.precompile là gì?
- 25. tùy chọn -lpthread của gcc
- 26. Mục đích của phiên JMS là gì?
- 27. Mục đích của HttpHeaders.TryAddWithoutValidation là gì?
- 28. Mục đích của nguyên mẫu là gì?
- 29. Mục đích của Array.GetLowerBound (int) là gì?
- 30. Mục đích của String.IsInterned là gì?
tôi tưởng tượng rằng đề cập đến cây cú pháp trừu tượng đại diện cho chương trình của bạn. –