2013-02-10 25 views
11

Nhìn vào việc tháo gỡ chương trình C++, tôi thấy các chức năng như _Z41__static_initialization_and_destruction_0ii.constprop.221. constprop có nghĩa là gì trong trường hợp này? Nó có vẻ giống với hậu tố isra (và đôi khi được kết hợp, ví dụ: .isra.124.constprop.226), nhưng nó có nghĩa là cái gì khác.Hậu tố hàm GCC có nghĩa là gì?

Trả lời

3

Từ nhận xét mã nguồn tôi đã đọc - chúng cho biết các chức năng đã được nhân bản trong quá trình tối ưu hóa.

EDIT: Đây có thể là câu trả lời, có thể không.

đơn giản tuyên truyền liên tục

Tập tin này thực hiện công tác tuyên truyền liên tục và sáp nhập. Nó tìm kiếm các lệnh chỉ liên quan đến các toán hạng liên tục và thay thế chúng bằng một giá trị không đổi thay vì một lệnh. Ví dụ:

add i32 1, 2 

trở thành

i32 3 

LƯU Ý: đường chuyền này có một thói quen làm cho định nghĩa là chết. Đó là một ý tưởng tốt để chạy một DIE (Dead Instruction Elimination) vượt qua đôi khi sau khi chạy pass này.

SOURCE

+0

Bạn có xảy ra cho biết những gì tối ưu hóa đang được thực hiện? – nneonneo

+0

Trả lời cập nhật ... – zaf

+0

Tuyệt. Có vẻ như nó có thể là tuyên truyền liên tục liên tục vì nó tạo ra nhiều phiên bản của các hàm. Mặc dù tài liệu dành cho LLVM, tôi đoán một điều tương tự phải áp dụng cho GCC. – nneonneo

Các vấn đề liên quan