Biên dịch hai lượt là gì và nó cải thiện hiệu suất như thế nào?
Two-pass là một thuật ngữ được sử dụng trong bối cảnh tối ưu hóa trình biên dịch. Nó đề cập đến một kỹ thuật trong đó trình biên dịch thực hiện hai lần chuyển qua mã nguồn để tối ưu hóa hiệu suất của nó. Đường chuyền đầu tiên được gọi là "giao diện người dùng" và đường chuyền thứ hai được gọi là "phụ trợ".
Đường chuyền giao diện người dùng chịu trách nhiệm phân tích mã nguồn, kiểm tra cú pháp và ngữ nghĩa của nó, đồng thời tạo ra biểu diễn trung gian (IR) của mã. Sau đó, IR này được đưa vào thẻ phụ trợ, thực hiện các tối ưu hóa nâng cao hơn trên mã, chẳng hạn như hủy kiểm soát vòng lặp, nội tuyến hàm và loại bỏ mã chết.
Cách tiếp cận hai lượt cho phép trình biên dịch thực hiện các tối ưu hóa mạnh mẽ hơn mà có thể không thực hiện được với cách tiếp cận một lần. Điều này là do thẻ phụ trợ có quyền truy cập vào toàn bộ IR của chương trình, cho phép chương trình đưa ra quyết định sáng suốt hơn về cách tối ưu hóa mã.
Trình biên dịch hai thẻ thường được sử dụng trong các ứng dụng điện toán hiệu năng cao, chẳng hạn như mô phỏng khoa học và công cụ trò chơi điện tử, nơi hiệu suất là rất quan trọng. Tuy nhiên, chúng cũng có thể được sử dụng trong các loại ứng dụng khác, chẳng hạn như trình duyệt web và ứng dụng dành cho thiết bị di động, trong đó việc tối ưu hóa là quan trọng nhưng không quá quan trọng.



