https://sourceware.org/bugzilla/show_bug.cgi?id=18427
Bug ID: 18427 Summary: GNU as slow on hppa architecture Product: binutils Version: unspecified Status: NEW Severity: normal Priority: P2 Component: gas Assignee: unassigned at sourceware dot org Reporter: deller at gmx dot de CC: dave.anglin at bell dot net Target Milestone: --- Target: hppa Created attachment 8323 --> https://sourceware.org/bugzilla/attachment.cgi?id=8323&action=edit preprocessed assembler testcase I noticed that the GNU assembler is sometimes incredible slow with assembly of C++ files on hppa. Because of that I did a gprof analysis (using the cross-assembler for hppa running on x86_64) while running gas on a somewhat bigger assembler file (preprocessed from the debian vtk package). Here is the result, and it's pretty clear: Flat profile: Each sample counts as 0.01 seconds. % cumulative self self total time seconds seconds calls ms/call ms/call name 81.76 86.38 86.38 821598 0.11 0.11 pa_undefine_label 3.34 89.91 3.53 194747 0.02 0.02 pa_define_label 1.66 91.66 1.75 read_a_source_file 1.13 92.85 1.19 2442950 0.00 0.00 frag_offset_fixed_p 0.73 93.62 0.77 660 1.17 1.17 do_scrub_chars 0.63 94.29 0.67 symbol_print_statistics 0.55 94.87 0.58 1414839 0.00 0.00 operand 0.46 95.36 0.49 3866615 0.00 0.00 frag_now_fix ... 0.00 105.65 0.00 1 0.00 76.43 resolve_local_symbol_values 0.00 105.65 0.00 1 0.00 0.00 s_app_file 0.00 105.65 0.00 1 0.00 0.01 s_space 0.00 105.65 0.00 1 0.00 0.00 s_weakref 0.00 105.65 0.00 1 0.00 0.00 symbol_insert So, the pa_undefine_label() function seems problematic. I talked to Dave Anglin about that issue, and he came up with the attached patch. This patch seems to work and speeds up gas a lot, but it will most likely break HP-UX (which uses multiple segments). Maybe the experts here have some other idea? A gzipped-testcase which expands to a 21MB assembler-file is attached. -- You are receiving this mail because: You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils