Trong khi lập cấu hình chương trình được biên dịch bằng gcc, tôi nhận thấy các chức năng như foo.isra.3
. isra
cho biết điều gì? Tôi nhận thấy rằng một trong các hàm chỉ được gọi ở một vài nơi và một trong các đối số luôn được chỉ định dưới dạng giá trị bằng chữ. Có lẽ nó có nghĩa là nó là một biến thể của hàm được tối ưu hóa cho các đối số nhất định?Hậu tố chức năng GCC "isra" có nghĩa là gì?
11
A
Trả lời
16
Theo một bình luận trên this bug report (và tương tự như ý kiến tôi có thể tìm):
ISRA là tên của biến đó được tạo ra bởi IPA SRA ...
IPA SRA là một optimization option:
-fipa-SRA
Thực hiện thay thế vô hướng xen kẽ các tập hợp, loại bỏ các tham số không sử dụng và thay thế các thông số được truyền bằng tham chiếu bởi các tham số được truyền theo giá trị.
Được bật ở các cấp -O2, -O3 và -Os.
Vì vậy, rất có thể, đó là phiên bản của hàm có các tối ưu hóa đó.
Trong trường hợp bạn đã đề cập, có thể là nó thay thế một tham chiếu truyền qua với giá trị vượt qua vì nó biết không có điểm nào để chuyển một chữ theo tham chiếu.