Lan truyền sao chép
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 gian gán giá trị của y cho x.
Từ đoạn mã sau:
- y = x
- z = 3 + y
Copy propagation sẽ cho:
- z = 3 + x
Copy propagation 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ỏ.
Copy propagation 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. 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.