[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug binutils/22870] slow aarch64 assembler for source with lots of .loc
From: |
aoliva at sourceware dot org |
Subject: |
[Bug binutils/22870] slow aarch64 assembler for source with lots of .loc directives |
Date: |
Wed, 21 Feb 2018 00:30:54 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=22870
--- Comment #2 from Alexandre Oliva <aoliva at sourceware dot org> ---
I suspect the source of the problem is the lack of view reset asserts.
Without that, the assembler gets an uninterrupted chain
of symbolic views, in which each view is computed based on the view
before it and the offset between the addresses in which they were
issued. Depending on the order in which the assembler attempts to
resolve each view to a constant, it could get expensive. It was never
meant for this kind of use: it was expected that most views would be
zero-asserts, so this wouldn't arise.
The issuance of view asserts was disabled in GCC, triggering this
undesirable behavior in the assembler, but I'm not sure I'd consider it
a bug in gas. GCC can and should avoid these long chains, issuing view
reset asserts after insns known to generate code. It has code to do so,
but it's disabled because a few targets had wrong lengths and need
auditing and possibly overriding in a target hook.
--
You are receiving this mail because:
You are on the CC list for the bug.