aboutsummaryrefslogtreecommitdiff
path: root/gdb/c-lang.c
diff options
context:
space:
mode:
authorSergei Trofimovich <siarheit@google.com>2022-04-14 08:47:00 +0100
committerSergei Trofimovich <siarheit@google.com>2022-04-14 11:26:38 +0100
commitc641fe0dcb886dc1b8a235ab2b236275ee46510a (patch)
treec528e3ca895d127b9930d5c716cc8405e702e5c7 /gdb/c-lang.c
parente6f601b74d12c84729ebe627725477b5a47e44e5 (diff)
downloadgdb-c641fe0dcb886dc1b8a235ab2b236275ee46510a.zip
gdb-c641fe0dcb886dc1b8a235ab2b236275ee46510a.tar.gz
gdb-c641fe0dcb886dc1b8a235ab2b236275ee46510a.tar.bz2
M68K: avoid quadratic slowdlow in label alignment check
Before the change tc-m68k maintained a list of seen labels. Alignment check traversed label list to resolve symbol to label. This caused quadratic slowdown as each symbol was checked against each label. Worst affected files are the ones built with debugging enabled as DWARF generates many labels. The change embeds auxiliary label information right into symbol using TC_SYMFIELD_TYPE. Before the change test from PR 29058 did not finish in 10 minutes. After the change it finishes in 2 seconds. gas/ChangeLog: PR 29058 * config/tc-m68k.h (TC_SYMFIELD_TYPE): define as m68k_tc_sy. * config/tc-m68k.c (m68k_frob_label): Use TC_SYMFIELD_TYPE to store label information.
Diffstat (limited to 'gdb/c-lang.c')
0 files changed, 0 insertions, 0 deletions