bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug gas/18427] New: GNU as slow on hppa architecture


From: deller at gmx dot de
Subject: [Bug gas/18427] New: GNU as slow on hppa architecture
Date: Mon, 18 May 2015 19:15:17 +0000

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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]