Lan truyền sao chép
Bài viết này là một bài mồ côi vì không có bài viết khác liên kết đến nó. Vui lòng tạo liên kết đến bài này từ các bài viết liên quan; có thể thử dùng công cụ tìm liên kết. (tháng 3 năm 2015) |
Trong lý thuyết chương trình dịch, copy propagation (tạm dịch: lan truyền sao chép) là quá trình thay thế đích của các lệnh gán trực tiếp bằng giá trị của nó.[1] Một lệnh gán trực tiếp là chỉ dẫn có dạng x = y
, nghĩa là chỉ đơn giản gán giá trị của y
cho x
.
Từ đoạn mã sau:
- y = x
- z = 3 + y
Lan truyền sao chép sẽ cho:
- z = 3 + x
Lan truyền sao chép thường sử dụng reaching definitions, use-def chains và def-use chains khi tính toán những vị trí xuất hiện của đích có thể sửa một cách an toàn, thao tác gán có thể được loại bỏ.
Lan truyền sao chép là một phương pháp tối ưu thường được sử dụng sau khi các phương pháp khác đã thực hiện xong. Một số phương pháp tối ưu—chẳng han loại bỏ biểu thức con chung[1] -- bắt buộc copy propagation phải được chạy sau đó để đạt được sự tăng hiệu năng.
Tham khảo
sửa- ^ a b Aho, Alfred V.; Lam, Monica S.; Sethi, Ravi; Ullman, Jeffrey D. (2007). Compilers, Principles, Techniques, & Tools Second edition. ISBN 0-321-48681-1.
Đọc thêm
sửa- Muchnick, Steven S. Advanced Compiler Design and Implementation. Morgan Kaufmann. 1997.