------- Comment #2 from jakub at gcc dot gnu dot org 2010-03-19 20:56 ------- The patch has been bootstrapped/regtested on x86_64-linux and i686-linux and apparently has huge effect on the debug info size.
i686 cc1 before: DW_AT_location count 305862 [28] .debug_info PROGBITS 00000000 1002ada 139b947 00 0 0 1 [33] .debug_loc PROGBITS 00000000 29059e7 f6b1fb 00 0 0 1 i686 cc1 after: DW_AT_location count 295969 [28] .debug_info PROGBITS 00000000 1002ada 1391ec0 00 0 0 1 [33] .debug_loc PROGBITS 00000000 28fc1b3 893583 00 0 0 1 I guess I should verify some random DIEs from that 10000 set of DIEs that lost DW_AT_location attribute if really all location list parts were outside of the containing block DW_AT_ranges, and similarly for some location lists that got shorter. On the simple testcase it worked well, but more verification doesn't hurt. If the patch really doesn't throw useful debug info on the floor, having .debug_loc shrink by 50% would be quite nice. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43442